mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-08 00:02:20 +03:00
fix(dashboard): correct loadPresets ReferenceError in CostOverviewTab
This commit is contained in:
@@ -259,7 +259,7 @@ export default function CostOverviewTab() {
|
||||
}
|
||||
}
|
||||
|
||||
void loadPresets();
|
||||
void loadRange();
|
||||
|
||||
return () => {
|
||||
active = false;
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "مرحبًا",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "الإعدادات",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "بالنسبة لنماذج عائلة GitHub Codex، احتفظ بالنموذج كـ gh/codex-model; يقوم جهاز التوجيه بتحديد/الاستجابات تلقائيًا.",
|
||||
"troubleshootingTestConnection": "استخدم لوحة المعلومات > الموفرون > اختبار الاتصال قبل الاختبار من بيئات تطوير متكاملة أو عملاء خارجيين.",
|
||||
"troubleshootingCircuitBreaker": "إذا أظهر مقدم الخدمة أن قاطع الدائرة مفتوح، فانتظر حتى فترة التهدئة أو راجع صفحة الصحة للحصول على التفاصيل.",
|
||||
"troubleshootingOAuth": "بالنسبة لموفري OAuth، قم بإعادة المصادقة إذا انتهت صلاحية الرموز المميزة. تحقق من مؤشر حالة بطاقة المزود."
|
||||
"troubleshootingOAuth": "بالنسبة لموفري OAuth، قم بإعادة المصادقة إذا انتهت صلاحية الرموز المميزة. تحقق من مؤشر حالة بطاقة المزود.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "سياسة الخصوصية",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Добре дошли",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Настройки",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "За модели от семейството на GitHub Codex, запазете модела като gh/codex-model; рутерът избира /отговаря автоматично.",
|
||||
"troubleshootingTestConnection": "Използвайте Табло > Доставчици > Тестване на връзката, преди да тествате от IDE или външни клиенти.",
|
||||
"troubleshootingCircuitBreaker": "Ако доставчикът покаже отворен прекъсвач, изчакайте охлаждането или проверете страницата Health за подробности.",
|
||||
"troubleshootingOAuth": "За доставчици на OAuth, повторно удостоверяване, ако токените изтекат. Проверете индикатора за състояние на картата на доставчика."
|
||||
"troubleshootingOAuth": "За доставчици на OAuth, повторно удостоверяване, ако токените изтекат. Проверете индикатора за състояние на картата на доставчика.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Политика за поверителност",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2323,7 +2323,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Welcome",
|
||||
@@ -2844,7 +2855,9 @@
|
||||
"zedImportNetworkError": "Zed Import Network Error",
|
||||
"zedImportNone": "Zed Import None",
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing"
|
||||
"zedImporting": "Zed Importing",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
@@ -4191,7 +4204,9 @@
|
||||
"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."
|
||||
"protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
@@ -4687,7 +4702,20 @@
|
||||
"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}."
|
||||
"callLogsInfo": "Call logs are also saved as JSON files to {dataDir} and rotated based on {retentionDays} and {maxEntries}.",
|
||||
"updatePipelineFailed": "Failed to update pipeline logging",
|
||||
"capturePipeline": "Capture pipeline payloads for new requests",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}"
|
||||
},
|
||||
"endpointOptions": {
|
||||
"speech": "Speech",
|
||||
@@ -4708,5 +4736,42 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Vítejte",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Nastavení",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Pro modely z rodiny Codex ponechte model jako gh/codex-model; router automaticky vybere /responses.",
|
||||
"troubleshootingTestConnection": "Před testováním z IDE nebo externích klientů použijte Nstěnka > Poskytovatelé > Test Připojení.",
|
||||
"troubleshootingCircuitBreaker": "Pokud poskytovatel zobrazuje vypnutý jistič, počkejte na ochlazení nebo si pro podrobnosti prohlédněte stránku Stav.",
|
||||
"troubleshootingOAuth": "U poskytovatelů OAuth proveďte opětovné ověření, pokud platnost tokenů vyprší. Zkontrolujte indikátor stavu karty poskytovatele."
|
||||
"troubleshootingOAuth": "U poskytovatelů OAuth proveďte opětovné ověření, pokud platnost tokenů vyprší. Zkontrolujte indikátor stavu karty poskytovatele.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Zásady ochrany osobních údajů",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Velkommen",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Indstillinger",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "For GitHub Codex-familiemodeller skal du beholde modellen som gh/codex-model; routeren vælger /svar automatisk.",
|
||||
"troubleshootingTestConnection": "Brug Dashboard > Udbydere > Test forbindelse, før du tester fra IDE'er eller eksterne klienter.",
|
||||
"troubleshootingCircuitBreaker": "Hvis en udbyder viser en afbryder åben, skal du vente på nedkøling eller tjekke Health-siden for detaljer.",
|
||||
"troubleshootingOAuth": "For OAuth-udbydere skal du godkende igen, hvis tokens udløber. Tjek udbyderkortets statusindikator."
|
||||
"troubleshootingOAuth": "For OAuth-udbydere skal du godkende igen, hvis tokens udløber. Tjek udbyderkortets statusindikator.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Privatlivspolitik",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Willkommen",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Einstellungen",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Behalten Sie für Modelle der GitHub Codex-Familie das Modell bei gh/codex-model; Der Router wählt /responses automatisch aus.",
|
||||
"troubleshootingTestConnection": "Verwenden Sie Dashboard > Anbieter > Verbindung testen, bevor Sie Tests mit IDEs oder externen Clients durchführen.",
|
||||
"troubleshootingCircuitBreaker": "Wenn ein Anbieter anzeigt, dass der Leistungsschalter geöffnet ist, warten Sie auf die Abklingzeit oder schauen Sie auf der Seite „Zustand“ nach, um Einzelheiten zu erfahren.",
|
||||
"troubleshootingOAuth": "Führen Sie bei OAuth-Anbietern eine erneute Authentifizierung durch, wenn die Token ablaufen. Überprüfen Sie die Statusanzeige der Anbieterkarte."
|
||||
"troubleshootingOAuth": "Führen Sie bei OAuth-Anbietern eine erneute Authentifizierung durch, wenn die Token ablaufen. Überprüfen Sie die Statusanzeige der Anbieterkarte.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Datenschutzrichtlinie",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5037,6 +5037,7 @@
|
||||
"semanticCacheHit": "Semantic cache hit (served by OmniRoute)",
|
||||
"upstreamResponse": "Upstream provider response",
|
||||
"noApiKey": "No API key",
|
||||
"requestedRoutedTitle": "Requested {requested}, routed as {routed}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Bienvenido",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Configuración",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Para los modelos de la familia GitHub Codex, mantenga el modelo como gh/codex-model; El enrutador selecciona/respuestas automáticamente.",
|
||||
"troubleshootingTestConnection": "Utilice Panel > Proveedores > Probar conexión antes de realizar pruebas desde IDE o clientes externos.",
|
||||
"troubleshootingCircuitBreaker": "Si un proveedor muestra el disyuntor abierto, espere el tiempo de reutilización o consulte la página de Salud para obtener más detalles.",
|
||||
"troubleshootingOAuth": "Para los proveedores de OAuth, vuelva a autenticarse si los tokens caducan. Verifique el indicador de estado de la tarjeta del proveedor."
|
||||
"troubleshootingOAuth": "Para los proveedores de OAuth, vuelva a autenticarse si los tokens caducan. Verifique el indicador de estado de la tarjeta del proveedor.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Política de privacidad",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2323,7 +2323,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Welcome",
|
||||
@@ -2844,7 +2855,9 @@
|
||||
"zedImportNetworkError": "Zed Import Network Error",
|
||||
"zedImportNone": "Zed Import None",
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing"
|
||||
"zedImporting": "Zed Importing",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
@@ -4191,7 +4204,9 @@
|
||||
"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."
|
||||
"protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
@@ -4687,7 +4702,20 @@
|
||||
"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}."
|
||||
"callLogsInfo": "Call logs are also saved as JSON files to {dataDir} and rotated based on {retentionDays} and {maxEntries}.",
|
||||
"updatePipelineFailed": "Failed to update pipeline logging",
|
||||
"capturePipeline": "Capture pipeline payloads for new requests",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}"
|
||||
},
|
||||
"endpointOptions": {
|
||||
"speech": "Speech",
|
||||
@@ -4708,5 +4736,42 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Tervetuloa",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Asetukset",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Säilytä GitHub Codex -perheen mallien mallina muodossa gh/codex-model; reititin valitsee / vastaa automaattisesti.",
|
||||
"troubleshootingTestConnection": "Käytä Dashboard > Providers > Test Connection ennen testaamista IDE:istä tai ulkoisista asiakkaista.",
|
||||
"troubleshootingCircuitBreaker": "Jos palveluntarjoaja näyttää katkaisijan auki, odota jäähtymistä tai katso lisätietoja Terveys-sivulta.",
|
||||
"troubleshootingOAuth": "OAuth-palveluntarjoajat todenna uudelleen, jos tunnukset vanhenevat. Tarkista palveluntarjoajan kortin tilailmaisin."
|
||||
"troubleshootingOAuth": "OAuth-palveluntarjoajat todenna uudelleen, jos tunnukset vanhenevat. Tarkista palveluntarjoajan kortin tilailmaisin.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Tietosuojakäytäntö",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Bienvenue",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Paramètres",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Pour les modèles de la famille GitHub Codex, conservez le modèle sous la forme gh/codex-model ; Le routeur sélectionne /réponses automatiquement.",
|
||||
"troubleshootingTestConnection": "Utilisez Tableau de bord > Fournisseurs > Tester la connexion avant de tester à partir d'IDE ou de clients externes.",
|
||||
"troubleshootingCircuitBreaker": "Si un fournisseur indique que le disjoncteur est ouvert, attendez le temps de recharge ou consultez la page Santé pour plus de détails.",
|
||||
"troubleshootingOAuth": "Pour les fournisseurs OAuth, réauthentifiez-vous si les jetons expirent. Vérifiez l'indicateur d'état de la carte du fournisseur."
|
||||
"troubleshootingOAuth": "Pour les fournisseurs OAuth, réauthentifiez-vous si les jetons expirent. Vérifiez l'indicateur d'état de la carte du fournisseur.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Politique de confidentialité",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2323,7 +2323,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Welcome",
|
||||
@@ -2844,7 +2855,9 @@
|
||||
"zedImportNetworkError": "Zed Import Network Error",
|
||||
"zedImportNone": "Zed Import None",
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing"
|
||||
"zedImporting": "Zed Importing",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
@@ -4191,7 +4204,9 @@
|
||||
"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."
|
||||
"protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
@@ -4687,7 +4702,20 @@
|
||||
"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}."
|
||||
"callLogsInfo": "Call logs are also saved as JSON files to {dataDir} and rotated based on {retentionDays} and {maxEntries}.",
|
||||
"updatePipelineFailed": "Failed to update pipeline logging",
|
||||
"capturePipeline": "Capture pipeline payloads for new requests",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}"
|
||||
},
|
||||
"endpointOptions": {
|
||||
"speech": "Speech",
|
||||
@@ -4708,5 +4736,42 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "ברוך הבא",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "הגדרות",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "עבור מודלים של משפחת GitHub Codex, שמור את הדגם בתור gh/codex-model; הנתב בוחר / תגובות באופן אוטומטי.",
|
||||
"troubleshootingTestConnection": "השתמש בלוח מחוונים > ספקים > בדוק חיבור לפני בדיקה מ-IDEs או לקוחות חיצוניים.",
|
||||
"troubleshootingCircuitBreaker": "אם ספק מציג מפסק פתוח, המתן להתקררות או בדוק את דף הבריאות לפרטים.",
|
||||
"troubleshootingOAuth": "עבור ספקי OAuth, בצע אימות מחדש אם פג תוקפם של אסימונים. בדוק את מחוון מצב כרטיס הספק."
|
||||
"troubleshootingOAuth": "עבור ספקי OAuth, בצע אימות מחדש אם פג תוקפם של אסימונים. בדוק את מחוון מצב כרטיס הספק.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "מדיניות פרטיות",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "स्वागत है",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "सेटिंग्स",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "GitHub कोडेक्स-फ़ैमिली मॉडल के लिए, मॉडल को gh/codex-model के रूप में रखें; राउटर स्वचालित रूप से/प्रतिक्रियाओं का चयन करता है।",
|
||||
"troubleshootingTestConnection": "आईडीई या बाहरी क्लाइंट से परीक्षण करने से पहले डैशबोर्ड > प्रदाता > परीक्षण कनेक्शन का उपयोग करें।",
|
||||
"troubleshootingCircuitBreaker": "यदि कोई प्रदाता सर्किट ब्रेकर खुला दिखाता है, तो कूलडाउन की प्रतीक्षा करें या विवरण के लिए स्वास्थ्य पृष्ठ देखें।",
|
||||
"troubleshootingOAuth": "OAuth प्रदाताओं के लिए, यदि टोकन समाप्त हो जाते हैं तो पुनः प्रमाणित करें। प्रदाता कार्ड स्थिति संकेतक की जाँच करें।"
|
||||
"troubleshootingOAuth": "OAuth प्रदाताओं के लिए, यदि टोकन समाप्त हो जाते हैं तो पुनः प्रमाणित करें। प्रदाता कार्ड स्थिति संकेतक की जाँच करें।",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "गोपनीयता नीति",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Üdvözöljük",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Beállítások elemre",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "A GitHub Codex-családhoz tartozó modelleknél tartsa a modellt gh/codex-model; a router automatikusan kiválasztja a /válaszokat.",
|
||||
"troubleshootingTestConnection": "Az IDE-kből vagy külső kliensekből történő tesztelés előtt használja az Irányítópult > Szolgáltatók > Kapcsolat tesztelése menüpontot.",
|
||||
"troubleshootingCircuitBreaker": "Ha a szolgáltató azt mutatja, hogy az áramkör megszakítója nyitva van, várja meg a lehűlést, vagy nézze meg az Egészség oldalt a részletekért.",
|
||||
"troubleshootingOAuth": "OAuth-szolgáltatók esetén hitelesítse újra, ha a tokenek lejárnak. Ellenőrizze a szolgáltatói kártya állapotjelzőjét."
|
||||
"troubleshootingOAuth": "OAuth-szolgáltatók esetén hitelesítse újra, ha a tokenek lejárnak. Ellenőrizze a szolgáltatói kártya állapotjelzőjét.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Adatvédelmi szabályzat",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Selamat datang",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Pengaturan",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Untuk model keluarga GitHub Codex, pertahankan model sebagai gh/codex-model; router memilih / merespons secara otomatis.",
|
||||
"troubleshootingTestConnection": "Gunakan Dasbor > Penyedia > Uji Koneksi sebelum menguji dari IDE atau klien eksternal.",
|
||||
"troubleshootingCircuitBreaker": "Jika penyedia menunjukkan pemutus sirkuit terbuka, tunggu hingga cooldown atau periksa halaman Kesehatan untuk detailnya.",
|
||||
"troubleshootingOAuth": "Untuk penyedia OAuth, autentikasi ulang jika masa berlaku token habis. Periksa indikator status kartu penyedia."
|
||||
"troubleshootingOAuth": "Untuk penyedia OAuth, autentikasi ulang jika masa berlaku token habis. Periksa indikator status kartu penyedia.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Kebijakan Privasi",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2323,7 +2323,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Welcome",
|
||||
@@ -2844,7 +2855,9 @@
|
||||
"zedImportNetworkError": "Zed Import Network Error",
|
||||
"zedImportNone": "Zed Import None",
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing"
|
||||
"zedImporting": "Zed Importing",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
@@ -4191,7 +4204,9 @@
|
||||
"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."
|
||||
"protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
@@ -4687,7 +4702,20 @@
|
||||
"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}."
|
||||
"callLogsInfo": "Call logs are also saved as JSON files to {dataDir} and rotated based on {retentionDays} and {maxEntries}.",
|
||||
"updatePipelineFailed": "Failed to update pipeline logging",
|
||||
"capturePipeline": "Capture pipeline payloads for new requests",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}"
|
||||
},
|
||||
"endpointOptions": {
|
||||
"speech": "Speech",
|
||||
@@ -4708,5 +4736,42 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Benvenuto",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Impostazioni",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Per i modelli della famiglia GitHub Codex, mantieni il modello come gh/codex-model; il router seleziona/risponde automaticamente.",
|
||||
"troubleshootingTestConnection": "Utilizza Dashboard > Provider > Verifica connessione prima di effettuare test da IDE o client esterni.",
|
||||
"troubleshootingCircuitBreaker": "Se un fornitore mostra l'interruttore aperto, attendi il raffreddamento o controlla la pagina Salute per i dettagli.",
|
||||
"troubleshootingOAuth": "Per i provider OAuth, eseguire nuovamente l'autenticazione se i token scadono. Controlla l'indicatore di stato della carta del fornitore."
|
||||
"troubleshootingOAuth": "Per i provider OAuth, eseguire nuovamente l'autenticazione se i token scadono. Controlla l'indicatore di stato della carta del fornitore.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "politica sulla riservatezza",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "ようこそ",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "設定",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "GitHub Codex ファミリ モデルの場合、モデルを gh/codex-model として保持します。ルーターは自動的に選択/応答します。",
|
||||
"troubleshootingTestConnection": "IDE または外部クライアントからテストする前に、[ダッシュボード] > [プロバイダー] > [接続のテスト] を使用します。",
|
||||
"troubleshootingCircuitBreaker": "プロバイダーがサーキット ブレーカーが開いていることを示している場合は、クールダウンするまで待つか、詳細について [ヘルス] ページを確認してください。",
|
||||
"troubleshootingOAuth": "OAuth プロバイダーの場合、トークンの有効期限が切れた場合は再認証します。プロバイダー カードのステータス インジケーターを確認します。"
|
||||
"troubleshootingOAuth": "OAuth プロバイダーの場合、トークンの有効期限が切れた場合は再認証します。プロバイダー カードのステータス インジケーターを確認します。",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "プライバシーポリシー",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "환영합니다",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "설정",
|
||||
@@ -3969,7 +3982,9 @@
|
||||
"troubleshootingCodexFamily": "GitHub Codex 계열 모델의 경우 모델을 gh/codex-model로 유지합니다. 라우터는 /responses를 자동으로 선택합니다.",
|
||||
"troubleshootingTestConnection": "IDE 또는 외부 클라이언트에서 테스트하기 전에 대시보드 > 공급자 > 연결 테스트를 사용하세요.",
|
||||
"troubleshootingCircuitBreaker": "공급자가 회로 차단기를 열었다고 표시하는 경우 대기 시간을 기다리거나 상태 페이지에서 자세한 내용을 확인하세요.",
|
||||
"troubleshootingOAuth": "OAuth 공급자의 경우 토큰이 만료되면 다시 인증하세요. 공급자 카드 상태 표시기를 확인하십시오."
|
||||
"troubleshootingOAuth": "OAuth 공급자의 경우 토큰이 만료되면 다시 인증하세요. 공급자 카드 상태 표시기를 확인하십시오.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "개인 정보 보호 정책",
|
||||
@@ -4360,5 +4375,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2323,7 +2323,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Welcome",
|
||||
@@ -2844,7 +2855,9 @@
|
||||
"zedImportNetworkError": "Zed Import Network Error",
|
||||
"zedImportNone": "Zed Import None",
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing"
|
||||
"zedImporting": "Zed Importing",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
@@ -4191,7 +4204,9 @@
|
||||
"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."
|
||||
"protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
@@ -4687,7 +4702,20 @@
|
||||
"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}."
|
||||
"callLogsInfo": "Call logs are also saved as JSON files to {dataDir} and rotated based on {retentionDays} and {maxEntries}.",
|
||||
"updatePipelineFailed": "Failed to update pipeline logging",
|
||||
"capturePipeline": "Capture pipeline payloads for new requests",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}"
|
||||
},
|
||||
"endpointOptions": {
|
||||
"speech": "Speech",
|
||||
@@ -4708,5 +4736,42 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Selamat datang",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "tetapan",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Untuk model keluarga Codex GitHub, kekalkan model sebagai gh/codex-model; penghala memilih /membalas secara automatik.",
|
||||
"troubleshootingTestConnection": "Gunakan Papan Pemuka > Pembekal > Uji Sambungan sebelum menguji daripada IDE atau pelanggan luaran.",
|
||||
"troubleshootingCircuitBreaker": "Jika pembekal menunjukkan pemutus litar terbuka, tunggu masa bertenang atau semak halaman Kesihatan untuk mendapatkan butiran.",
|
||||
"troubleshootingOAuth": "Untuk pembekal OAuth, sahkan semula jika token tamat tempoh. Semak penunjuk status kad pembekal."
|
||||
"troubleshootingOAuth": "Untuk pembekal OAuth, sahkan semula jika token tamat tempoh. Semak penunjuk status kad pembekal.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Dasar Privasi",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Welkom",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Instellingen",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Voor modellen uit de GitHub Codex-familie behoudt u het model als gh/codex-model; router selecteert /responses automatisch.",
|
||||
"troubleshootingTestConnection": "Gebruik Dashboard > Providers > Verbinding testen voordat u gaat testen vanaf IDE's of externe clients.",
|
||||
"troubleshootingCircuitBreaker": "Als een provider aangeeft dat de stroomonderbreker open is, wacht dan op de cooldown of kijk op de Gezondheidspagina voor meer informatie.",
|
||||
"troubleshootingOAuth": "Voor OAuth-providers geldt dat u opnieuw moet verifiëren als tokens verlopen. Controleer de statusindicator van de providerkaart."
|
||||
"troubleshootingOAuth": "Voor OAuth-providers geldt dat u opnieuw moet verifiëren als tokens verlopen. Controleer de statusindicator van de providerkaart.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Privacybeleid",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Velkommen",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Innstillinger",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "For GitHub Codex-familiemodeller, behold modellen som gh/codex-model; ruteren velger /responser automatisk.",
|
||||
"troubleshootingTestConnection": "Bruk Dashboard > Leverandører > Test tilkobling før du tester fra IDE-er eller eksterne klienter.",
|
||||
"troubleshootingCircuitBreaker": "Hvis en leverandør viser at strømbryteren er åpen, vent på nedkjøling eller sjekk helsesiden for detaljer.",
|
||||
"troubleshootingOAuth": "For OAuth-leverandører, autentiser på nytt hvis tokens utløper. Sjekk leverandørkortets statusindikator."
|
||||
"troubleshootingOAuth": "For OAuth-leverandører, autentiser på nytt hvis tokens utløper. Sjekk leverandørkortets statusindikator.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Personvernerklæring",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Maligayang pagdating",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Mga setting",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Para sa mga modelo ng pamilya ng GitHub Codex, panatilihing gh/codex-model ang modelo; awtomatikong pinipili /tugon ng router.",
|
||||
"troubleshootingTestConnection": "Gamitin ang Dashboard > Mga Provider > Subukan ang Koneksyon bago subukan mula sa mga IDE o external na kliyente.",
|
||||
"troubleshootingCircuitBreaker": "Kung ipinapakita ng provider na bukas ang circuit breaker, hintayin ang cooldown o tingnan ang page ng Health para sa mga detalye.",
|
||||
"troubleshootingOAuth": "Para sa mga provider ng OAuth, muling i-authenticate kung mag-e-expire ang mga token. Suriin ang tagapagpahiwatig ng katayuan ng provider card."
|
||||
"troubleshootingOAuth": "Para sa mga provider ng OAuth, muling i-authenticate kung mag-e-expire ang mga token. Suriin ang tagapagpahiwatig ng katayuan ng provider card.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Patakaran sa Privacy",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Witamy",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Ustawienia",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "W przypadku modeli z rodziny GitHub Codex zachowaj model jako gh/codex-model; router wybiera opcję /odpowiada automatycznie.",
|
||||
"troubleshootingTestConnection": "Użyj Panelu sterowania > Dostawcy > Testuj połączenie przed testowaniem z IDE lub klientów zewnętrznych.",
|
||||
"troubleshootingCircuitBreaker": "Jeśli dostawca pokazuje, że wyłącznik jest otwarty, poczekaj na ochłodzenie lub sprawdź stronę Zdrowie, aby uzyskać szczegółowe informacje.",
|
||||
"troubleshootingOAuth": "W przypadku dostawców OAuth należy ponownie uwierzytelnić, jeśli tokeny wygasną. Sprawdź wskaźnik stanu karty dostawcy."
|
||||
"troubleshootingOAuth": "W przypadku dostawców OAuth należy ponownie uwierzytelnić, jeśli tokeny wygasną. Sprawdź wskaźnik stanu karty dostawcy.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Polityka prywatności",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2263,7 +2263,18 @@
|
||||
"a": "A",
|
||||
"offset": "Offset",
|
||||
"limit": "Limit",
|
||||
"tab": "Tab"
|
||||
"tab": "Tab",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Bem-vindo",
|
||||
@@ -2785,7 +2796,9 @@
|
||||
"testingModel": "Testing Model",
|
||||
"unhideModel": "Unhide Model",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Configurações",
|
||||
@@ -4176,7 +4189,9 @@
|
||||
"troubleshootingCodexFamily": "Para modelos da família GitHub Codex, mantenha o modelo como gh/codex-model; o roteador seleciona /responses automaticamente.",
|
||||
"troubleshootingTestConnection": "Use Painel > Provedores > Testar Conexão antes de testar por IDEs ou clientes externos.",
|
||||
"troubleshootingCircuitBreaker": "Se um provedor mostrar circuit breaker aberto, aguarde o cooldown ou verifique a página Health para detalhes.",
|
||||
"troubleshootingOAuth": "Para provedores OAuth, autentique novamente se os tokens expirarem. Verifique o indicador de status no card do provedor."
|
||||
"troubleshootingOAuth": "Para provedores OAuth, autentique novamente se os tokens expirarem. Verifique o indicador de status no card do provedor.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Política de Privacidade",
|
||||
@@ -4507,5 +4522,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2235,7 +2235,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Bem vindo",
|
||||
@@ -2755,7 +2766,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Configurações",
|
||||
@@ -4039,7 +4052,9 @@
|
||||
"troubleshootingCodexFamily": "Para modelos da família GitHub Codex, mantenha o modelo como gh/codex-model; roteador seleciona /respostas automaticamente.",
|
||||
"troubleshootingTestConnection": "Use Painel > Provedores > Testar conexão antes de testar em IDEs ou clientes externos.",
|
||||
"troubleshootingCircuitBreaker": "Se um provedor mostrar o disjuntor aberto, aguarde o resfriamento ou verifique a página de integridade para obter detalhes.",
|
||||
"troubleshootingOAuth": "Para provedores OAuth, autentique novamente se os tokens expirarem. Verifique o indicador de status do cartão do provedor."
|
||||
"troubleshootingOAuth": "Para provedores OAuth, autentique novamente se os tokens expirarem. Verifique o indicador de status do cartão do provedor.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Política de Privacidade",
|
||||
@@ -4375,5 +4390,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Bun venit",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Setări",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Pentru modelele din familia GitHub Codex, păstrați modelul ca gh/codex-model; routerul selectează/răspunde automat.",
|
||||
"troubleshootingTestConnection": "Utilizați Tabloul de bord > Furnizori > Testați conexiunea înainte de a testa de la IDE-uri sau clienți externi.",
|
||||
"troubleshootingCircuitBreaker": "Dacă un furnizor arată întrerupătorul deschis, așteptați răcirea sau verificați pagina Sănătate pentru detalii.",
|
||||
"troubleshootingOAuth": "Pentru furnizorii OAuth, re-autentificați-vă dacă tokenurile expiră. Verificați indicatorul de stare a cardului furnizorului."
|
||||
"troubleshootingOAuth": "Pentru furnizorii OAuth, re-autentificați-vă dacă tokenurile expiră. Verificați indicatorul de stare a cardului furnizorului.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Politica de confidențialitate",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2187,7 +2187,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Добро пожаловать",
|
||||
@@ -2707,7 +2718,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Настройки",
|
||||
@@ -3991,7 +4004,9 @@
|
||||
"troubleshootingCodexFamily": "Для моделей семейства GitHub Codex сохраните модель как gh/codex-model; Маршрутизатор выбирает / отвечает автоматически.",
|
||||
"troubleshootingTestConnection": "Используйте «Панель мониторинга» > «Поставщики» > «Проверить соединение» перед тестированием из IDE или внешних клиентов.",
|
||||
"troubleshootingCircuitBreaker": "Если поставщик услуг показывает, что автоматический выключатель разомкнут, дождитесь охлаждения или посетите страницу «Здоровье» для получения подробной информации.",
|
||||
"troubleshootingOAuth": "Для поставщиков OAuth выполните повторную аутентификацию, если срок действия токенов истечет. Проверьте индикатор состояния карты провайдера."
|
||||
"troubleshootingOAuth": "Для поставщиков OAuth выполните повторную аутентификацию, если срок действия токенов истечет. Проверьте индикатор состояния карты провайдера.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Политика конфиденциальности",
|
||||
@@ -4382,5 +4397,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Vitajte",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Nastavenia",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Pre modely rodiny GitHub Codex ponechajte model ako gh/codex-model; router vyberá / odpovedá automaticky.",
|
||||
"troubleshootingTestConnection": "Pred testovaním z IDE alebo externých klientov použite Dashboard > Providers > Test Connection.",
|
||||
"troubleshootingCircuitBreaker": "Ak poskytovateľ zobrazí istič otvorený, počkajte na vychladnutie alebo skontrolujte stránku Zdravie, kde nájdete podrobnosti.",
|
||||
"troubleshootingOAuth": "V prípade poskytovateľov OAuth znova overte, ak platnosť tokenov vyprší. Skontrolujte indikátor stavu karty poskytovateľa."
|
||||
"troubleshootingOAuth": "V prípade poskytovateľov OAuth znova overte, ak platnosť tokenov vyprší. Skontrolujte indikátor stavu karty poskytovateľa.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Zásady ochrany osobných údajov",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Välkommen",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Inställningar",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "För GitHub Codex-familjens modeller, behåll modellen som gh/codex-model; routern väljer /svarar automatiskt.",
|
||||
"troubleshootingTestConnection": "Använd Dashboard > Leverantörer > Testa anslutning innan du testar från IDE:er eller externa klienter.",
|
||||
"troubleshootingCircuitBreaker": "Om en leverantör visar att strömbrytaren är öppen, vänta på nedkylning eller kolla Health-sidan för detaljer.",
|
||||
"troubleshootingOAuth": "För OAuth-leverantörer, autentisera på nytt om tokens löper ut. Kontrollera leverantörskortets statusindikator."
|
||||
"troubleshootingOAuth": "För OAuth-leverantörer, autentisera på nytt om tokens löper ut. Kontrollera leverantörskortets statusindikator.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Sekretesspolicy",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2323,7 +2323,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Welcome",
|
||||
@@ -2844,7 +2855,9 @@
|
||||
"zedImportNetworkError": "Zed Import Network Error",
|
||||
"zedImportNone": "Zed Import None",
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing"
|
||||
"zedImporting": "Zed Importing",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
@@ -4191,7 +4204,9 @@
|
||||
"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."
|
||||
"protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
@@ -4687,7 +4702,20 @@
|
||||
"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}."
|
||||
"callLogsInfo": "Call logs are also saved as JSON files to {dataDir} and rotated based on {retentionDays} and {maxEntries}.",
|
||||
"updatePipelineFailed": "Failed to update pipeline logging",
|
||||
"capturePipeline": "Capture pipeline payloads for new requests",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}"
|
||||
},
|
||||
"endpointOptions": {
|
||||
"speech": "Speech",
|
||||
@@ -4708,5 +4736,42 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2323,7 +2323,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Welcome",
|
||||
@@ -2844,7 +2855,9 @@
|
||||
"zedImportNetworkError": "Zed Import Network Error",
|
||||
"zedImportNone": "Zed Import None",
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing"
|
||||
"zedImporting": "Zed Importing",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
@@ -4191,7 +4204,9 @@
|
||||
"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."
|
||||
"protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
@@ -4687,7 +4702,20 @@
|
||||
"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}."
|
||||
"callLogsInfo": "Call logs are also saved as JSON files to {dataDir} and rotated based on {retentionDays} and {maxEntries}.",
|
||||
"updatePipelineFailed": "Failed to update pipeline logging",
|
||||
"capturePipeline": "Capture pipeline payloads for new requests",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}"
|
||||
},
|
||||
"endpointOptions": {
|
||||
"speech": "Speech",
|
||||
@@ -4708,5 +4736,42 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2323,7 +2323,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Welcome",
|
||||
@@ -2844,7 +2855,9 @@
|
||||
"zedImportNetworkError": "Zed Import Network Error",
|
||||
"zedImportNone": "Zed Import None",
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing"
|
||||
"zedImporting": "Zed Importing",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
@@ -4191,7 +4204,9 @@
|
||||
"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."
|
||||
"protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
@@ -4687,7 +4702,20 @@
|
||||
"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}."
|
||||
"callLogsInfo": "Call logs are also saved as JSON files to {dataDir} and rotated based on {retentionDays} and {maxEntries}.",
|
||||
"updatePipelineFailed": "Failed to update pipeline logging",
|
||||
"capturePipeline": "Capture pipeline payloads for new requests",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}"
|
||||
},
|
||||
"endpointOptions": {
|
||||
"speech": "Speech",
|
||||
@@ -4708,5 +4736,42 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "ยินดีต้อนรับ",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "การตั้งค่า",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "สำหรับโมเดลตระกูล GitHub Codex ให้เก็บโมเดลเป็น gh/codex-model; เราเตอร์เลือก / ตอบสนองโดยอัตโนมัติ",
|
||||
"troubleshootingTestConnection": "ใช้แดชบอร์ด > ผู้ให้บริการ > ทดสอบการเชื่อมต่อ ก่อนการทดสอบจาก IDE หรือไคลเอนต์ภายนอก",
|
||||
"troubleshootingCircuitBreaker": "หากผู้ให้บริการแสดงเซอร์กิตเบรกเกอร์เปิดอยู่ ให้รอคูลดาวน์หรือตรวจสอบหน้าสุขภาพเพื่อดูรายละเอียด",
|
||||
"troubleshootingOAuth": "สำหรับผู้ให้บริการ OAuth ให้ตรวจสอบสิทธิ์อีกครั้งหากโทเค็นหมดอายุ ตรวจสอบตัวบ่งชี้สถานะบัตรผู้ให้บริการ"
|
||||
"troubleshootingOAuth": "สำหรับผู้ให้บริการ OAuth ให้ตรวจสอบสิทธิ์อีกครั้งหากโทเค็นหมดอายุ ตรวจสอบตัวบ่งชี้สถานะบัตรผู้ให้บริการ",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "นโยบายความเป็นส่วนตัว",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Hoş geldiniz",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Ayarlar",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "GitHub Codex ailesi modelleri için modeli gh/codex-model olarak tutun; yönlendirici /responses uç noktasını otomatik seçer.",
|
||||
"troubleshootingTestConnection": "IDE'lerden veya harici istemcilerden test yapmadan önce Kontrol Paneli > Sağlayıcılar > Bağlantıyı Test Et'i kullanın.",
|
||||
"troubleshootingCircuitBreaker": "Bir sağlayıcıda devre kesici açık görünüyorsa cooldown süresinin dolmasını bekleyin veya ayrıntılar için Sağlık sayfasını kontrol edin.",
|
||||
"troubleshootingOAuth": "OAuth sağlayıcıları için belirteçlerin süresi dolduğunda yeniden kimlik doğrulaması yapın. Sağlayıcı kartı durum göstergesini kontrol edin."
|
||||
"troubleshootingOAuth": "OAuth sağlayıcıları için belirteçlerin süresi dolduğunda yeniden kimlik doğrulaması yapın. Sağlayıcı kartı durum göstergesini kontrol edin.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Gizlilik Politikası",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Ласкаво просимо",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Налаштування",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Для моделей сімейства GitHub Codex збережіть модель як gh/codex-model; маршрутизатор вибирає /відповідає автоматично.",
|
||||
"troubleshootingTestConnection": "Перед тестуванням із IDE або зовнішніх клієнтів скористайтеся інструментальною панеллю > Постачальники > Перевірити з’єднання.",
|
||||
"troubleshootingCircuitBreaker": "Якщо постачальник показує, що автоматичний вимикач розімкнуто, дочекайтеся охолодження або подробиці перевірте на сторінці «Стан».",
|
||||
"troubleshootingOAuth": "Для постачальників OAuth повторна автентифікація, якщо термін дії маркерів закінчився. Перевірте індикатор стану картки провайдера."
|
||||
"troubleshootingOAuth": "Для постачальників OAuth повторна автентифікація, якщо термін дії маркерів закінчився. Перевірте індикатор стану картки провайдера.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Політика конфіденційності",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2323,7 +2323,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Welcome",
|
||||
@@ -2844,7 +2855,9 @@
|
||||
"zedImportNetworkError": "Zed Import Network Error",
|
||||
"zedImportNone": "Zed Import None",
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing"
|
||||
"zedImporting": "Zed Importing",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
@@ -4191,7 +4204,9 @@
|
||||
"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."
|
||||
"protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
@@ -4687,7 +4702,20 @@
|
||||
"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}."
|
||||
"callLogsInfo": "Call logs are also saved as JSON files to {dataDir} and rotated based on {retentionDays} and {maxEntries}.",
|
||||
"updatePipelineFailed": "Failed to update pipeline logging",
|
||||
"capturePipeline": "Capture pipeline payloads for new requests",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}"
|
||||
},
|
||||
"endpointOptions": {
|
||||
"speech": "Speech",
|
||||
@@ -4708,5 +4736,42 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2163,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "Chào mừng",
|
||||
@@ -2683,7 +2694,9 @@
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing",
|
||||
"perModelQuotaDescription": "Per Model Quota Description",
|
||||
"perModelQuotaLabel": "Per Model Quota Label"
|
||||
"perModelQuotaLabel": "Per Model Quota Label",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Cài đặt",
|
||||
@@ -3967,7 +3980,9 @@
|
||||
"troubleshootingCodexFamily": "Đối với các mô hình dòng GitHub Codex, hãy giữ mô hình là gh/codex-model; bộ định tuyến chọn/phản hồi tự động.",
|
||||
"troubleshootingTestConnection": "Sử dụng Trang tổng quan > Nhà cung cấp > Kiểm tra kết nối trước khi thử nghiệm từ IDE hoặc ứng dụng khách bên ngoài.",
|
||||
"troubleshootingCircuitBreaker": "Nếu nhà cung cấp hiển thị cầu dao đang mở, hãy đợi thời gian hồi chiêu hoặc kiểm tra trang Sức khỏe để biết chi tiết.",
|
||||
"troubleshootingOAuth": "Đối với nhà cung cấp OAuth, hãy xác thực lại nếu mã thông báo hết hạn. Kiểm tra chỉ báo trạng thái thẻ nhà cung cấp."
|
||||
"troubleshootingOAuth": "Đối với nhà cung cấp OAuth, hãy xác thực lại nếu mã thông báo hết hạn. Kiểm tra chỉ báo trạng thái thẻ nhà cung cấp.",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "Chính sách bảo mật",
|
||||
@@ -4358,5 +4373,108 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"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",
|
||||
"total": "Total",
|
||||
"ok": "Success",
|
||||
"err": "Error",
|
||||
"combo": "Combo",
|
||||
"keys": "Keys",
|
||||
"shown": "Shown",
|
||||
"sortNewest": "Newest",
|
||||
"sortOldest": "Oldest",
|
||||
"sortTokensDesc": "Tokens ↓",
|
||||
"sortTokensAsc": "Tokens ↑",
|
||||
"sortDurationDesc": "Duration ↓",
|
||||
"sortDurationAsc": "Duration ↑",
|
||||
"sortStatusDesc": "Status ↓",
|
||||
"sortStatusAsc": "Status ↑",
|
||||
"sortModelAsc": "Model A-Z",
|
||||
"sortModelDesc": "Model Z-A",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}",
|
||||
"statusFilters": {
|
||||
"all": "All",
|
||||
"error": "Errors",
|
||||
"success": "Success",
|
||||
"combo": "Combo"
|
||||
},
|
||||
"columns": {
|
||||
"status": "Status",
|
||||
"cacheSource": "Cache Source",
|
||||
"model": "Model",
|
||||
"requested": "Requested",
|
||||
"provider": "Provider",
|
||||
"protocol": "Request Protocol",
|
||||
"account": "Account",
|
||||
"apiKey": "API Key",
|
||||
"combo": "Combo",
|
||||
"tokens": "Tokens",
|
||||
"tps": "TPS",
|
||||
"duration": "Duration",
|
||||
"time": "Time"
|
||||
},
|
||||
"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}."
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1342,10 +1342,7 @@
|
||||
"mitmClientsTab": "MITM 客户端",
|
||||
"customCliTab": "自定义 CLI",
|
||||
"toolCategories": "工具分类",
|
||||
"visibleToolsCount": "{count} 个工具可用",
|
||||
"installationGuide": "安装指南",
|
||||
"whenToUseLabel": "何时使用",
|
||||
"openToolDocs": "打开工具文档"
|
||||
"visibleToolsCount": "{count} 个工具可用"
|
||||
},
|
||||
"combos": {
|
||||
"title": "组合",
|
||||
@@ -2265,7 +2262,18 @@
|
||||
"clientPayload": "Client Request Payload",
|
||||
"upstreamPayload": "Upstream Provider Payload",
|
||||
"upstreamNotSentYet": "Not sent to upstream yet",
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}"
|
||||
"runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
|
||||
"consoleViewer": {
|
||||
"fetchFailed": "Failed to fetch logs",
|
||||
"copyFailed": "Failed to copy log entry",
|
||||
"copyLogEntry": "Copy log entry"
|
||||
},
|
||||
"export": "Export",
|
||||
"exporting": "Exporting...",
|
||||
"exportFailed": "Export failed",
|
||||
"timeRange": "Time Range",
|
||||
"lastNHours": "Last {hours}",
|
||||
"defaultRange": "default"
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome": "欢迎",
|
||||
@@ -2786,7 +2794,9 @@
|
||||
"zedImportNetworkError": "Zed Import Network Error",
|
||||
"zedImportNone": "Zed Import None",
|
||||
"zedImportSuccess": "Zed Import Success",
|
||||
"zedImporting": "Zed Importing"
|
||||
"zedImporting": "Zed Importing",
|
||||
"expiredBadge": "Expired",
|
||||
"expiringSoonBadge": "Expiring Soon"
|
||||
},
|
||||
"settings": {
|
||||
"title": "设置",
|
||||
@@ -4070,7 +4080,9 @@
|
||||
"troubleshootingCodexFamily": "对于 GitHub Codex 系列模型,请保持模型名为 `gh/codex-model`;路由器会自动选择 `/responses`。",
|
||||
"troubleshootingTestConnection": "在从 IDE 或外部客户端进行测试之前,请使用仪表板 > 提供商 > 测试连接。",
|
||||
"troubleshootingCircuitBreaker": "如果提供商显示断路器已打开,请等待冷却或查看运行状况页面以了解详细信息。",
|
||||
"troubleshootingOAuth": "对于 OAuth 提供商,如果 Token 过期,请重新认证,并检查提供商卡片上的状态指示器。"
|
||||
"troubleshootingOAuth": "对于 OAuth 提供商,如果 Token 过期,请重新认证,并检查提供商卡片上的状态指示器。",
|
||||
"deployTermuxTitle": "Termux (Android)",
|
||||
"deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser."
|
||||
},
|
||||
"legal": {
|
||||
"privacyPolicy": "隐私政策",
|
||||
@@ -4632,7 +4644,20 @@
|
||||
"loadingLogs": "正在加载日志...",
|
||||
"noLogs": "暂无日志记录。进行一些API调用以在此处查看它们。",
|
||||
"noMatchingLogs": "没有匹配当前筛选器的日志。",
|
||||
"callLogsInfo": "调用日志也保存为JSON文件到{dataDir},并根据{retentionDays}和{maxEntries}进行轮换。"
|
||||
"callLogsInfo": "调用日志也保存为JSON文件到{dataDir},并根据{retentionDays}和{maxEntries}进行轮换。",
|
||||
"updatePipelineFailed": "Failed to update pipeline logging",
|
||||
"capturePipeline": "Capture pipeline payloads for new requests",
|
||||
"sortLogs": "Sort logs",
|
||||
"refresh": "Refresh",
|
||||
"columnsLabel": "Columns",
|
||||
"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}"
|
||||
},
|
||||
"endpointOptions": {
|
||||
"speech": "Speech",
|
||||
@@ -4653,5 +4678,42 @@
|
||||
"codex": "Codex",
|
||||
"claude": "Claude",
|
||||
"kilo": "Kilo"
|
||||
},
|
||||
"proxyLogger": {
|
||||
"filterAll": "All",
|
||||
"filterErrors": "Errors",
|
||||
"filterSuccess": "Success",
|
||||
"filterTimeout": "Timeout",
|
||||
"colStatus": "Status",
|
||||
"colProxy": "Proxy",
|
||||
"colTls": "TLS",
|
||||
"colType": "Type",
|
||||
"colLevel": "Level",
|
||||
"colProvider": "Provider",
|
||||
"colTarget": "Target",
|
||||
"colLatency": "Latency",
|
||||
"colPublicIp": "Public IP",
|
||||
"colTime": "Time",
|
||||
"recording": "Recording",
|
||||
"paused": "Paused",
|
||||
"searchPlaceholder": "Search host, provider, target, IP...",
|
||||
"allTypes": "All Types",
|
||||
"allLevels": "All Levels",
|
||||
"allProviders": "All Providers",
|
||||
"total": "total",
|
||||
"ok": "OK",
|
||||
"err": "ERR",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,6 +100,15 @@ const RENAMED_MIGRATION_COMPATIBILITY = [
|
||||
},
|
||||
] as const;
|
||||
|
||||
const LEGACY_VERSION_SLOT_MIGRATIONS = [
|
||||
{ version: "028", name: "evals_tables" },
|
||||
{ version: "029", name: "webhooks_templates" },
|
||||
{ version: "030", name: "mcp_scopes_api_keys" },
|
||||
{ version: "031", name: "api_keys_expires" },
|
||||
{ version: "032", name: "detailed_logs_warnings" },
|
||||
{ version: "033", name: "provider_connections_block_extra_usage" },
|
||||
] as const;
|
||||
|
||||
const PHYSICAL_SCHEMA_SENTINELS = [
|
||||
{ version: "028", tableName: "batches", description: "batches table" },
|
||||
{ version: "024", tableName: "sync_tokens", description: "sync_tokens table" },
|
||||
@@ -199,6 +208,25 @@ function ensureColumn(
|
||||
}
|
||||
}
|
||||
|
||||
function isProviderConnectionMaxConcurrentMigration(migration: {
|
||||
version: string;
|
||||
name: string;
|
||||
}): boolean {
|
||||
return migration.version === "029";
|
||||
}
|
||||
|
||||
function applyProviderConnectionMaxConcurrentMigration(db: Database.Database): void {
|
||||
ensureColumn(
|
||||
db,
|
||||
"provider_connections",
|
||||
"max_concurrent",
|
||||
"ALTER TABLE provider_connections ADD COLUMN max_concurrent INTEGER"
|
||||
);
|
||||
db.exec(
|
||||
"CREATE INDEX IF NOT EXISTS idx_pc_max_concurrent ON provider_connections(provider, max_concurrent)"
|
||||
);
|
||||
}
|
||||
|
||||
function isApiKeyLifecycleMigration(migration: { version: string; name: string }): boolean {
|
||||
return migration.version === "032";
|
||||
}
|
||||
@@ -368,6 +396,58 @@ function reconcileRenumberedMigrations(
|
||||
return repaired;
|
||||
}
|
||||
|
||||
function rehomeLegacyVersionSlotMigrations(
|
||||
db: Database.Database,
|
||||
files: Array<{ version: string; name: string; path: string }>
|
||||
): boolean {
|
||||
let repaired = false;
|
||||
const diskNamesByVersion = new Map(files.map((file) => [file.version, file.name]));
|
||||
|
||||
for (const legacy of LEGACY_VERSION_SLOT_MIGRATIONS) {
|
||||
const diskName = diskNamesByVersion.get(legacy.version);
|
||||
if (!diskName || diskName === legacy.name) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const legacyRow = db
|
||||
.prepare("SELECT version, name FROM _omniroute_migrations WHERE version = ? AND name = ?")
|
||||
.get(legacy.version, legacy.name) as { version: string; name: string } | undefined;
|
||||
if (!legacyRow) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const legacyVersion = `legacy-${legacy.version}-${legacy.name}`;
|
||||
const applyRepair = db.transaction(() => {
|
||||
const existingLegacyRow = db
|
||||
.prepare("SELECT version FROM _omniroute_migrations WHERE version = ?")
|
||||
.get(legacyVersion) as { version: string } | undefined;
|
||||
|
||||
if (existingLegacyRow) {
|
||||
db.prepare("DELETE FROM _omniroute_migrations WHERE version = ? AND name = ?").run(
|
||||
legacy.version,
|
||||
legacy.name
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
db.prepare("UPDATE _omniroute_migrations SET version = ? WHERE version = ? AND name = ?").run(
|
||||
legacyVersion,
|
||||
legacy.version,
|
||||
legacy.name
|
||||
);
|
||||
});
|
||||
|
||||
applyRepair();
|
||||
repaired = true;
|
||||
console.warn(
|
||||
`[Migration] Rehomed legacy migration ${legacy.version}_${legacy.name} ` +
|
||||
`to ${legacyVersion} so current ${legacy.version}_${diskName} can apply.`
|
||||
);
|
||||
}
|
||||
|
||||
return repaired;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a pre-migration backup of the SQLite database using VACUUM INTO.
|
||||
* Returns the backup path on success, null on failure.
|
||||
@@ -410,6 +490,7 @@ export function runMigrations(db: Database.Database, options?: { isNewDb?: boole
|
||||
ensureMigrationsTable(db);
|
||||
|
||||
const files = getMigrationFiles();
|
||||
rehomeLegacyVersionSlotMigrations(db, files);
|
||||
reconcileRenumberedMigrations(db, files);
|
||||
const applied = getAppliedVersions(db);
|
||||
const appliedRecords = getAppliedRecords(db);
|
||||
@@ -495,7 +576,9 @@ export function runMigrations(db: Database.Database, options?: { isNewDb?: boole
|
||||
|
||||
for (const migration of pending) {
|
||||
const applyMigration = db.transaction(() => {
|
||||
if (isApiKeyLifecycleMigration(migration)) {
|
||||
if (isProviderConnectionMaxConcurrentMigration(migration)) {
|
||||
applyProviderConnectionMaxConcurrentMigration(db);
|
||||
} else if (isApiKeyLifecycleMigration(migration)) {
|
||||
applyApiKeyLifecycleMigration(db);
|
||||
} else if (isSearchRequestTypeMigration(migration)) {
|
||||
applySearchRequestTypeMigration(db);
|
||||
|
||||
@@ -735,7 +735,10 @@ export default function RequestLoggerV2() {
|
||||
}
|
||||
title={
|
||||
log.requestedModel !== log.model
|
||||
? `Requested ${log.requestedModel}, routed as ${log.model}`
|
||||
? t("requestedRoutedTitle", {
|
||||
requested: log.requestedModel,
|
||||
routed: log.model,
|
||||
})
|
||||
: log.requestedModel
|
||||
}
|
||||
>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Tests the proxy pipeline wiring: format detection, credential retry loop,
|
||||
* circuit breaker integration, and the new Phase 2 modules (DI container,
|
||||
* prompt versioning, plugin architecture, eval scheduler).
|
||||
* prompt versioning, plugin architecture, eval cleanup).
|
||||
*
|
||||
* @module tests/integration/proxy-pipeline.test.ts
|
||||
*/
|
||||
@@ -336,36 +336,13 @@ describe("Prompt Template Versioning — prompts.ts module existence", () => {
|
||||
});
|
||||
|
||||
// ═══════════════════════════════════════════════════
|
||||
// 5. Eval Scheduler (L-7)
|
||||
// 5. Eval cleanup (Task 28)
|
||||
// ═══════════════════════════════════════════════════
|
||||
|
||||
describe("Eval Scheduler — scheduler.ts module existence", () => {
|
||||
it("scheduler.ts should exist", () => {
|
||||
describe("Eval cleanup — orphaned scheduler module", () => {
|
||||
it("scheduler.ts should remain deleted", () => {
|
||||
const full = join(ROOT, "src", "lib", "evals", "scheduler.ts");
|
||||
assert.ok(existsSync(full), "scheduler.ts should exist");
|
||||
});
|
||||
|
||||
it("should export scheduling functions", () => {
|
||||
const src = readFileSync(join(ROOT, "src", "lib", "evals", "scheduler.ts"), "utf8");
|
||||
assert.match(src, /export function schedule/);
|
||||
assert.match(src, /export function unschedule/);
|
||||
assert.match(src, /export function pause/);
|
||||
assert.match(src, /export function resume/);
|
||||
assert.match(src, /export\s+(async\s+)?function\s+runNow/);
|
||||
assert.match(src, /export function getSchedules/);
|
||||
assert.match(src, /export function getHistory/);
|
||||
assert.match(src, /export function stopAll/);
|
||||
});
|
||||
|
||||
it("should define ScheduledEval and EvalRunResult types", () => {
|
||||
const src = readFileSync(join(ROOT, "src", "lib", "evals", "scheduler.ts"), "utf8");
|
||||
assert.match(src, /export interface ScheduledEval/);
|
||||
assert.match(src, /export interface EvalRunResult/);
|
||||
});
|
||||
|
||||
it("should have pluggable output provider", () => {
|
||||
const src = readFileSync(join(ROOT, "src", "lib", "evals", "scheduler.ts"), "utf8");
|
||||
assert.match(src, /export function setOutputProvider/);
|
||||
assert.equal(existsSync(full), false, "scheduler.ts should stay removed");
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -676,6 +676,125 @@ test(
|
||||
}
|
||||
);
|
||||
|
||||
test(
|
||||
"runMigrations rehomes legacy 028-033 version slots before applying current migrations",
|
||||
serial,
|
||||
async () => {
|
||||
const runner = await importFresh("src/lib/db/migrationRunner.ts");
|
||||
const db = createDb();
|
||||
|
||||
try {
|
||||
db.exec(`
|
||||
CREATE TABLE _omniroute_migrations (
|
||||
version TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
applied_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
CREATE TABLE provider_connections (
|
||||
id TEXT PRIMARY KEY,
|
||||
provider TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE api_keys (
|
||||
id TEXT PRIMARY KEY,
|
||||
key TEXT NOT NULL
|
||||
);
|
||||
`);
|
||||
|
||||
const legacyRows = [
|
||||
["028", "evals_tables"],
|
||||
["029", "webhooks_templates"],
|
||||
["030", "mcp_scopes_api_keys"],
|
||||
["031", "api_keys_expires"],
|
||||
["032", "detailed_logs_warnings"],
|
||||
["033", "provider_connections_block_extra_usage"],
|
||||
];
|
||||
for (const row of legacyRows) {
|
||||
db.prepare("INSERT INTO _omniroute_migrations (version, name) VALUES (?, ?)").run(
|
||||
row[0],
|
||||
row[1]
|
||||
);
|
||||
}
|
||||
|
||||
const count = withMockedMigrationFs(
|
||||
{
|
||||
"028_create_files_and_batches.sql": `
|
||||
CREATE TABLE files (id TEXT PRIMARY KEY);
|
||||
CREATE TABLE batches (id TEXT PRIMARY KEY);
|
||||
`,
|
||||
"029_provider_connection_max_concurrent.sql":
|
||||
"ALTER TABLE provider_connections ADD COLUMN should_not_run INTEGER;",
|
||||
"030_create_eval_runs.sql": "CREATE TABLE eval_runs (id TEXT PRIMARY KEY);",
|
||||
"031_create_eval_suites.sql": `
|
||||
CREATE TABLE eval_suites (id TEXT PRIMARY KEY);
|
||||
CREATE TABLE eval_cases (id TEXT PRIMARY KEY);
|
||||
`,
|
||||
"032_apikey_lifecycle.sql": "ALTER TABLE api_keys ADD COLUMN should_not_run TEXT;",
|
||||
"033_create_reasoning_cache.sql": "CREATE TABLE reasoning_cache (id TEXT PRIMARY KEY);",
|
||||
},
|
||||
() => runner.runMigrations(db)
|
||||
);
|
||||
|
||||
assert.equal(count, 6);
|
||||
const rows = db.prepare("SELECT version, name FROM _omniroute_migrations").all() as Array<{
|
||||
version: string;
|
||||
name: string;
|
||||
}>;
|
||||
const byVersion = new Map(rows.map((row) => [row.version, row.name]));
|
||||
|
||||
assert.equal(byVersion.get("028"), "create_files_and_batches");
|
||||
assert.equal(byVersion.get("029"), "provider_connection_max_concurrent");
|
||||
assert.equal(byVersion.get("030"), "create_eval_runs");
|
||||
assert.equal(byVersion.get("031"), "create_eval_suites");
|
||||
assert.equal(byVersion.get("032"), "apikey_lifecycle");
|
||||
assert.equal(byVersion.get("033"), "create_reasoning_cache");
|
||||
for (const [version, name] of legacyRows) {
|
||||
assert.equal(byVersion.get(`legacy-${version}-${name}`), name);
|
||||
}
|
||||
|
||||
for (const table of [
|
||||
"files",
|
||||
"batches",
|
||||
"eval_runs",
|
||||
"eval_suites",
|
||||
"eval_cases",
|
||||
"reasoning_cache",
|
||||
]) {
|
||||
assert.ok(
|
||||
db.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?").get(table),
|
||||
`${table} should exist`
|
||||
);
|
||||
}
|
||||
|
||||
const providerColumns = db.prepare("PRAGMA table_info(provider_connections)").all() as Array<{
|
||||
name: string;
|
||||
}>;
|
||||
const providerColumnNames = new Set(providerColumns.map((column) => column.name));
|
||||
assert.equal(providerColumnNames.has("max_concurrent"), true);
|
||||
assert.equal(providerColumnNames.has("should_not_run"), false);
|
||||
|
||||
const apiKeyColumns = db.prepare("PRAGMA table_info(api_keys)").all() as Array<{
|
||||
name: string;
|
||||
}>;
|
||||
const apiKeyColumnNames = new Set(apiKeyColumns.map((column) => column.name));
|
||||
for (const expected of [
|
||||
"revoked_at",
|
||||
"expires_at",
|
||||
"last_used_at",
|
||||
"key_prefix",
|
||||
"ip_allowlist",
|
||||
"scopes",
|
||||
]) {
|
||||
assert.equal(apiKeyColumnNames.has(expected), true, `${expected} should exist`);
|
||||
}
|
||||
assert.equal(apiKeyColumnNames.has("should_not_run"), false);
|
||||
} finally {
|
||||
db.close();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
test(
|
||||
"memory FTS migrations upgrade existing UUID memories without datatype mismatches",
|
||||
serial,
|
||||
|
||||
@@ -13,22 +13,18 @@ interface EvalsRoutePayload {
|
||||
targets: Array<{ type: string }>;
|
||||
apiKeys: Array<{ id: string; name: string; key?: string }>;
|
||||
recentRuns: Array<{ target: { key: string } }>;
|
||||
}
|
||||
|
||||
interface ScorecardRoutePayload {
|
||||
scorecard: { overallPassRate: number } | null;
|
||||
runs: unknown[];
|
||||
}
|
||||
|
||||
const core = await import("../../src/lib/db/core.ts");
|
||||
const localDb = await import("../../src/lib/localDb.ts");
|
||||
const evalsRoute = await import("../../src/app/api/evals/route.ts");
|
||||
const evalsScorecardRoute = await import("../../src/app/api/evals/scorecard/route.ts");
|
||||
const evalSuitesRoute = await import("../../src/app/api/evals/suites/route.ts");
|
||||
const evalSuiteByIdRoute = await import("../../src/app/api/evals/suites/[suiteId]/route.ts");
|
||||
|
||||
function resetDb() {
|
||||
core.resetDbInstance();
|
||||
localDb.resetApiKeyState();
|
||||
fs.rmSync(TEST_DATA_DIR, { recursive: true, force: true });
|
||||
fs.mkdirSync(TEST_DATA_DIR, { recursive: true });
|
||||
}
|
||||
@@ -39,6 +35,7 @@ test.beforeEach(() => {
|
||||
|
||||
test.after(() => {
|
||||
core.resetDbInstance();
|
||||
localDb.resetApiKeyState();
|
||||
fs.rmSync(TEST_DATA_DIR, { recursive: true, force: true });
|
||||
});
|
||||
|
||||
@@ -98,7 +95,7 @@ test("evals GET returns suites, target options, api key metadata, and persisted
|
||||
);
|
||||
});
|
||||
|
||||
test("eval scorecard route exposes stored runs and aggregated pass rate", async () => {
|
||||
test("evals GET exposes stored runs and aggregated pass rate inline", async () => {
|
||||
localDb.saveEvalRun({
|
||||
suiteId: "golden-set",
|
||||
suiteName: "Golden Set",
|
||||
@@ -109,16 +106,14 @@ test("eval scorecard route exposes stored runs and aggregated pass rate", async
|
||||
createdAt: "2026-04-23T12:00:00.000Z",
|
||||
});
|
||||
|
||||
const response = await evalsScorecardRoute.GET(
|
||||
new Request("http://localhost/api/evals/scorecard?limit=10")
|
||||
);
|
||||
const response = await evalsRoute.GET(new Request("http://localhost/api/evals"));
|
||||
assert.equal(response.status, 200);
|
||||
|
||||
const payload = (await response.json()) as ScorecardRoutePayload;
|
||||
const payload = (await response.json()) as EvalsRoutePayload;
|
||||
assert.ok(payload.scorecard);
|
||||
assert.equal(payload.scorecard.overallPassRate, 100);
|
||||
assert.equal(Array.isArray(payload.runs), true);
|
||||
assert.equal(payload.runs.length, 1);
|
||||
assert.equal(Array.isArray(payload.recentRuns), true);
|
||||
assert.equal(payload.recentRuns.length, 1);
|
||||
});
|
||||
|
||||
test("eval suite routes create, update, fetch, and delete custom suites", async () => {
|
||||
|
||||
Reference in New Issue
Block a user