Merge branch 'feat/i18n-clean' into release/v3.6.7

This commit is contained in:
diegosouzapw
2026-04-16 08:33:09 -03:00
31 changed files with 5375 additions and 301 deletions

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "فشل حفظ الأسعار",
"Failed to reset pricing": "فشل في إعادة تعيين التسعير",
"apikey": "مفتاح واجهة برمجة التطبيقات",
"http": "HTTP"
"http": "HTTP",
"checkSystemStatus": "Check System Status",
"goToDashboard": "Go to Dashboard",
"nothingHere": "Nothing here yet"
},
"sidebar": {
"home": "الصفحة الرئيسية",
@@ -640,7 +643,8 @@
"opencode": "استخدمه عندما تفضل تشغيل الوكيل الأصلي للمحطة والأتمتة النصية عبر OpenCode.",
"kiro": "يُستخدم عند دمج Kiro والتحكم في توجيه النموذج مركزيًا من OmniRoute.",
"antigravity": "يُستخدم عندما يجب اعتراض حركة مرور Antigravity/Kiro عبر MITM وتوجيهها إلى OmniRoute.",
"copilot": "استخدمه عندما تريد UX بأسلوب دردشة Copilot أثناء فرض مفاتيح OmniRoute وقواعد التوجيه."
"copilot": "استخدمه عندما تريد UX بأسلوب دردشة Copilot أثناء فرض مفاتيح OmniRoute وقواعد التوجيه.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "جوجل مكافحة الجاذبية IDE مع MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm."
},
"context-relay": {
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"when": "Use when long sessions must survive account rotation without losing the working context."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"candidatePoolLabel": "Candidate Pool",
"emailVisibilityStateOff": "Off",
"builderStage": {
"intelligent": {
"description": "Auto-routing candidate pool, presets, and scoring",
"label": "Smart Routing"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
},
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
}
},
"weightLatencyInv": "Latency",
"filterAll": "All",
"weightTierPriority": "Tier",
"builderPreview": "Preview",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"filterEmptyTitle": "No combos match this strategy filter.",
"reviewAdvanced": "Advanced Settings",
"routerStrategyLabel": "Router Strategy",
"builderFlowTitle": "Combo Builder Flow",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"contextRelaySummaryModel": "Summary Model",
"builderModel": "Model",
"excludedProviders": "Excluded Providers",
"emailVisibilityStateOn": "On",
"noExcludedProviders": "No providers are currently excluded.",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"builderTitle": "Build a Combo",
"budgetCapLabel": "Budget Cap (USD / request)",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"builderStageLocked": "Locked — complete previous stage first",
"reviewComboRefs": "Combo References",
"builderAddStep": "Add step",
"builderComboRef": "Combo Ref",
"candidatePoolAllProviders": "All providers",
"weightStability": "Stability",
"reviewProviders": "Providers",
"builderAccount": "Account",
"weightTaskFit": "Task Fit",
"strategyRules": "Rules (6-Factor Scoring)",
"reorderHandle": "Drag to reorder",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"builderSelectModel": "Select model",
"cooldownMinutes": "Cooldown: {minutes}m",
"builderBrowseCatalog": "Browse catalog",
"weightQuota": "Quota",
"reviewIntelligentTitle": "Intelligent Routing Config",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"statusOverview": "Status Overview",
"weightHealth": "Health",
"builderProviderFirst": "Pick provider first",
"reviewAgentFlags": "Agent Flags",
"explorationRateLabel": "Exploration Rate",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"filterIntelligent": "Intelligent",
"builderLoadingProviders": "Loading providers...",
"builderProvider": "Provider",
"reviewSequence": "Model Sequence",
"builderPinnedAccount": "Pinned Account",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"budgetCapPlaceholder": "No limit",
"candidatePoolEmpty": "No active providers available yet.",
"modePackLabel": "Mode Pack",
"activeModePack": "Active Mode Pack",
"builderComboRefStep": "Add combo reference",
"failedReorder": "Failed to reorder models",
"incidentMode": "Incident Mode",
"reviewStrategy": "Strategy",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"reviewName": "Name",
"builderAddComboRef": "Add combo reference",
"normalOperation": "Normal Operation",
"builderSelectProvider": "Select provider",
"filterDeterministic": "Deterministic",
"builderStageCurrent": "Current stage",
"reviewNoSteps": "No steps configured",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"weightCostInv": "Cost",
"providerScores": "Provider Scores",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"reviewSteps": "Steps",
"builderLegacyEntry": "Legacy entry",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelay": "Context Relay",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"builderStagePending": "Pending",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"modePackUpdated": "Mode pack updated to {pack}.",
"reviewAccounts": "Accounts",
"builderStageVisited": "Stage completed"
},
"costs": {
"title": "التكاليف",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "إرسال طلبات JSON - RPC إلى@@ PH0 @@ باستخدام @@PH1 @@ أو `message/stream`.",
"a2aQuickStartStep3": "تتبع المهام والتحكم فيها باستخدام `tasks/get` و `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"imagesGenerations": "Images Generations",
"repairEnvSuccess": "OAuth defaults restored",
"hideEmails": "Hide all emails",
"showEmails": "Show all emails",
"repairEnvWorking": "Repairing...",
"audioTranscriptions": "Audio Transcriptions",
"embeddings": "Embeddings",
"repairEnv": "Repair env",
"selectAllModels": "Select all",
"deselectAllModels": "Deselect all",
"noModelsMatch": "No models match \"{filter}\"",
"audioSpeech": "Audio Speech",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"modelsActiveCount": "{active}/{total} active",
"repairEnvFailed": "Failed to repair .env"
},
"settings": {
"title": "الإعدادات",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model"
},
"translator": {
"title": "مترجم",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "في انتظار ترخيص OpenAI...",
"waitingForAntigravityAuthorization": "في انتظار تصريح مكافحة الجاذبية...",
"waitingForQoderAuthorization": "في انتظار ترخيص Qoder...",
"exchangingCodeForTokens": "استبدال الكود بالرموز..."
"exchangingCodeForTokens": "استبدال الكود بالرموز...",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release"
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"cacheRateDesc": "of total requests",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"lastUpdated": "Last updated",
"cachedRequests24h": "Cached Requests (24h)",
"semanticCache": "Semantic Cache",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"busiestHour": "Busiest Hour",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"hoursTracked": "hours tracked",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"cacheRate": "Cache Rate",
"activityVolume": "Activity",
"peakCacheRate": "Peak Cache Rate",
"entriesLoadError": "Failed to load semantic cache entries.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"trendHour": "Hour",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours."
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Неуспешно запазване на цената",
"Failed to reset pricing": "Неуспешно нулиране на цените",
"apikey": "API ключ",
"http": "HTTP"
"http": "HTTP",
"checkSystemStatus": "Check System Status",
"goToDashboard": "Go to Dashboard",
"nothingHere": "Nothing here yet"
},
"sidebar": {
"home": "Начало",
@@ -640,7 +643,8 @@
"opencode": "Използвайте, когато предпочитате нативни за терминални агенти и скриптова автоматизация чрез OpenCode.",
"kiro": "Използвайте, когато интегрирате Kiro и контролирате маршрутизирането на модела централно от OmniRoute.",
"antigravity": "Използвайте, когато трафикът на Antigravity/Kiro трябва да бъде прихванат чрез MITM и насочен към OmniRoute.",
"copilot": "Използвайте, когато искате UX в стил на чат Copilot, като същевременно налагате OmniRoute ключове и правила за маршрутизиране."
"copilot": "Използвайте, когато искате UX в стил на чат Copilot, като същевременно налагате OmniRoute ключове и правила за маршрутизиране.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE с MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin."
},
"context-relay": {
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"when": "Use when long sessions must survive account rotation without losing the working context.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"emailVisibilityStateOff": "Off",
"builderStage": {
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"basics": {
"description": "Name and starting template",
"label": "Basics"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"intelligent": {
"description": "Auto-routing candidate pool, presets, and scoring",
"label": "Smart Routing"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
}
},
"builderPinnedAccount": "Pinned Account",
"weightTierPriority": "Tier",
"builderStageCurrent": "Current stage",
"budgetCapLabel": "Budget Cap (USD / request)",
"builderAccount": "Account",
"builderAddStep": "Add step",
"modePackUpdated": "Mode pack updated to {pack}.",
"builderModel": "Model",
"builderProvider": "Provider",
"builderStagePending": "Pending",
"filterAll": "All",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"candidatePoolAllProviders": "All providers",
"routerStrategyLabel": "Router Strategy",
"reviewProviders": "Providers",
"reviewAccounts": "Accounts",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"candidatePoolEmpty": "No active providers available yet.",
"builderSelectProvider": "Select provider",
"reviewStrategy": "Strategy",
"strategyRules": "Rules (6-Factor Scoring)",
"normalOperation": "Normal Operation",
"builderTitle": "Build a Combo",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"reviewNoSteps": "No steps configured",
"reviewComboRefs": "Combo References",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"builderPreview": "Preview",
"reviewIntelligentTitle": "Intelligent Routing Config",
"reviewSteps": "Steps",
"weightTaskFit": "Task Fit",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"builderAddComboRef": "Add combo reference",
"activeModePack": "Active Mode Pack",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"statusOverview": "Status Overview",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"reorderHandle": "Drag to reorder",
"modePackLabel": "Mode Pack",
"excludedProviders": "Excluded Providers",
"noExcludedProviders": "No providers are currently excluded.",
"budgetCapPlaceholder": "No limit",
"builderBrowseCatalog": "Browse catalog",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"failedReorder": "Failed to reorder models",
"providerScores": "Provider Scores",
"reviewAgentFlags": "Agent Flags",
"builderLoadingProviders": "Loading providers...",
"builderLegacyEntry": "Legacy entry",
"builderProviderFirst": "Pick provider first",
"reviewName": "Name",
"filterIntelligent": "Intelligent",
"weightLatencyInv": "Latency",
"contextRelaySummaryModel": "Summary Model",
"incidentMode": "Incident Mode",
"builderComboRef": "Combo Ref",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"weightHealth": "Health",
"emailVisibilityStateOn": "On",
"weightStability": "Stability",
"filterDeterministic": "Deterministic",
"explorationRateLabel": "Exploration Rate",
"reviewAdvanced": "Advanced Settings",
"contextRelayMaxMessages": "Max Messages For Summary",
"cooldownMinutes": "Cooldown: {minutes}m",
"reviewSequence": "Model Sequence",
"builderStageVisited": "Stage completed",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"contextRelay": "Context Relay",
"builderFlowTitle": "Combo Builder Flow",
"weightCostInv": "Cost",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"candidatePoolLabel": "Candidate Pool",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"builderStageLocked": "Locked — complete previous stage first",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"builderSelectModel": "Select model",
"filterEmptyTitle": "No combos match this strategy filter.",
"weightQuota": "Quota",
"builderComboRefStep": "Add combo reference",
"intelligentPanelTitle": "Intelligent Routing Dashboard"
},
"costs": {
"title": "Разходи",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Изпратете JSON - RPC заявки до@@ PH0 @@, като използвате @@ PH1 @@ или @@ PH2 @@.",
"a2aQuickStartStep3": "Проследяване и контрол на задачите с помощта на @@ PH0 @@ и @@ PH1 @@.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"noModelsMatch": "No models match \"{filter}\"",
"audioTranscriptions": "Audio Transcriptions",
"deselectAllModels": "Deselect all",
"audioSpeech": "Audio Speech",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"embeddings": "Embeddings",
"hideEmails": "Hide all emails",
"imagesGenerations": "Images Generations",
"repairEnvFailed": "Failed to repair .env",
"repairEnv": "Repair env",
"selectAllModels": "Select all",
"modelsActiveCount": "{active}/{total} active",
"repairEnvWorking": "Repairing...",
"showEmails": "Show all emails",
"repairEnvSuccess": "OAuth defaults restored"
},
"settings": {
"title": "Настройки",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelaySummaryModel": "Summary Model",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos."
},
"translator": {
"title": "Преводач",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Изчаква се разрешение за OpenAI...",
"waitingForAntigravityAuthorization": "Изчаква се разрешение за антигравитация...",
"waitingForQoderAuthorization": "Изчаква се разрешение за Qoder...",
"exchangingCodeForTokens": "Размяна на код за токени..."
"exchangingCodeForTokens": "Размяна на код за токени...",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release"
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"trendHour": "Hour",
"busiestHour": "Busiest Hour",
"activityVolume": "Activity",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"hoursTracked": "hours tracked",
"cacheRate": "Cache Rate",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"entriesLoadError": "Failed to load semantic cache entries.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"cachedRequests24h": "Cached Requests (24h)",
"semanticCache": "Semantic Cache",
"cacheRateDesc": "of total requests",
"lastUpdated": "Last updated",
"peakCacheRate": "Peak Cache Rate"
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Nepodařilo se uložit ceny",
"Failed to reset pricing": "Nepodařilo se resetovat ceny",
"apikey": "API klíč",
"http": "HTTP"
"http": "HTTP",
"goToDashboard": "Go to Dashboard",
"nothingHere": "Nothing here yet",
"checkSystemStatus": "Check System Status"
},
"sidebar": {
"home": "Domov",
@@ -640,7 +643,8 @@
"opencode": "Použijte, pokud dáváte přednost spouštění agentů nativně v terminálu a skriptované automatizaci přes OpenCode.",
"kiro": "Použijte při integraci Kiro a centrálním řízení směrování modelů z OmniRoute.",
"antigravity": "Použijte, pokud musí být provoz Antigravity/Kiro zachycen prostřednictvím MITM a směrován do OmniRoute.",
"copilot": "Použijte, pokud chcete uživatelské rozhraní ve stylu Copilot chat a zároveň vynutit klíče a pravidla směrování OmniRoute."
"copilot": "Použijte, pokud chcete uživatelské rozhraní ve stylu Copilot chat a zároveň vynutit klíče a pravidla směrování OmniRoute.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE s MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminál)",
"kiro": "Amazon Kiro AI poháněné IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Použijte, když chcete rovnoměrné rozložení — každý model se použije jednou před opakováním.",
"avoid": "Nepoužívejte, když mají modely různou kvalitu nebo latenci a záleží na pořadí.",
"example": "Příklad: Více účtů stejného modelu pro rovnoměrné rozložení využití."
},
"context-relay": {
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"when": "Use when long sessions must survive account rotation without losing the working context."
},
"p2c": {
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"weightHealth": "Health",
"candidatePoolEmpty": "No active providers available yet.",
"builderStageLocked": "Locked — complete previous stage first",
"reorderHandle": "Drag to reorder",
"excludedProviders": "Excluded Providers",
"reviewProviders": "Providers",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"reviewSequence": "Model Sequence",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"candidatePoolAllProviders": "All providers",
"weightQuota": "Quota",
"reviewNoSteps": "No steps configured",
"modePackLabel": "Mode Pack",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"reviewAdvanced": "Advanced Settings",
"contextRelayHandoffThreshold": "Handoff Threshold",
"emailVisibilityStateOn": "On",
"reviewName": "Name",
"routerStrategyLabel": "Router Strategy",
"weightStability": "Stability",
"normalOperation": "Normal Operation",
"builderFlowTitle": "Combo Builder Flow",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"builderStage": {
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
},
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"basics": {
"description": "Name and starting template",
"label": "Basics"
}
},
"builderStageCurrent": "Current stage",
"reviewComboRefs": "Combo References",
"failedReorder": "Failed to reorder models",
"builderComboRef": "Combo Ref",
"builderPinnedAccount": "Pinned Account",
"reviewAgentFlags": "Agent Flags",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"builderSelectModel": "Select model",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"builderAddStep": "Add step",
"builderAccount": "Account",
"builderAddComboRef": "Add combo reference",
"builderLoadingProviders": "Loading providers...",
"cooldownMinutes": "Cooldown: {minutes}m",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"modePackUpdated": "Mode pack updated to {pack}.",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"reviewSteps": "Steps",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"weightLatencyInv": "Latency",
"filterDeterministic": "Deterministic",
"builderSelectProvider": "Select provider",
"builderStageVisited": "Stage completed",
"builderTitle": "Build a Combo",
"emailVisibilityStateOff": "Off",
"contextRelaySummaryModel": "Summary Model",
"incidentMode": "Incident Mode",
"candidatePoolLabel": "Candidate Pool",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"builderPreview": "Preview",
"contextRelayMaxMessages": "Max Messages For Summary",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"providerScores": "Provider Scores",
"statusOverview": "Status Overview",
"budgetCapPlaceholder": "No limit",
"reviewIntelligentTitle": "Intelligent Routing Config",
"strategyRules": "Rules (6-Factor Scoring)",
"weightTierPriority": "Tier",
"builderBrowseCatalog": "Browse catalog",
"builderStagePending": "Pending",
"weightCostInv": "Cost",
"builderModel": "Model",
"builderComboRefStep": "Add combo reference",
"builderProvider": "Provider",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"filterIntelligent": "Intelligent",
"explorationRateLabel": "Exploration Rate",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"contextRelay": "Context Relay",
"reviewAccounts": "Accounts",
"noExcludedProviders": "No providers are currently excluded.",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"filterEmptyTitle": "No combos match this strategy filter.",
"builderProviderFirst": "Pick provider first",
"builderLegacyEntry": "Legacy entry",
"weightTaskFit": "Task Fit",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"filterAll": "All",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"activeModePack": "Active Mode Pack",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"budgetCapLabel": "Budget Cap (USD / request)",
"reviewStrategy": "Strategy"
},
"costs": {
"title": "Náklady",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Odešlete požadavky JSON-RPC na `POST /a2a` pomocí `message/send` nebo `message/stream`.",
"a2aQuickStartStep3": "Sledujte a ovládejte úkoly pomocí příkazů `tasks/get` a `tasks/cancel`.",
"completionsLegacy": "Completions (Zastaralé)",
"completionsLegacyDesc": "Zastaralé OpenAI text completion akceptuje oba formáty, prompt string i messages array."
"completionsLegacyDesc": "Zastaralé OpenAI text completion akceptuje oba formáty, prompt string i messages array.",
"musicGeneration": "Music Generation",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)"
},
"endpoints": {
"tabProxy": "Koncová Proxy",
@@ -1749,7 +1876,22 @@
"close": "Zavřít",
"statusDeactivated": "Deaktivováno (Manuální)",
"statusBanned": "Zablokováno / Porušení sandboxu",
"statusCreditsExhausted": "Nedostatečný zůstatek / Kvóta vyčerpána"
"statusCreditsExhausted": "Nedostatečný zůstatek / Kvóta vyčerpána",
"hideEmails": "Hide all emails",
"repairEnv": "Repair env",
"showEmails": "Show all emails",
"modelsActiveCount": "{active}/{total} active",
"audioSpeech": "Audio Speech",
"embeddings": "Embeddings",
"selectAllModels": "Select all",
"deselectAllModels": "Deselect all",
"repairEnvSuccess": "OAuth defaults restored",
"imagesGenerations": "Images Generations",
"audioTranscriptions": "Audio Transcriptions",
"noModelsMatch": "No models match \"{filter}\"",
"repairEnvFailed": "Failed to repair .env",
"repairEnvWorking": "Repairing...",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values."
},
"settings": {
"title": "Nastavení",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold"
},
"translator": {
"title": "Překladatel",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Čekám na OpenAI autorizaci...",
"waitingForAntigravityAuthorization": "Čekám na Antigravity autorizaci...",
"waitingForQoderAuthorization": "Čekám na Qoder autorizaci...",
"exchangingCodeForTokens": "Vyměňuji kód za tokeny..."
"exchangingCodeForTokens": "Vyměňuji kód za tokeny...",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleTitle": "Incompatible Node.js Version"
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Vrchol mezipaměti",
"deduplicatedRequests": "Deduplikované požadavky",
"savedCalls": "Uložená API volání",
"totalProcessed": "Celkem zpracováno"
"totalProcessed": "Celkem zpracováno",
"cachedRequests24h": "Cached Requests (24h)",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"lastUpdated": "Last updated",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"cacheRateDesc": "of total requests",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"cacheRate": "Cache Rate",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"busiestHour": "Busiest Hour",
"trendHour": "Hour",
"peakCacheRate": "Peak Cache Rate",
"hoursTracked": "hours tracked",
"semanticCache": "Semantic Cache",
"entriesLoadError": "Failed to load semantic cache entries.",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"activityVolume": "Activity",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours."
},
"memory": {
"title": "Správa paměti",
@@ -3132,7 +3301,8 @@
"factual": "Faktická",
"episodic": "Epizodická",
"procedural": "Procedurální",
"semantic": "Sémantická"
"semantic": "Sémantická",
"delete": "Delete"
},
"skills": {
"title": "Dovednosti",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Kunne ikke gemme prisen",
"Failed to reset pricing": "Failed to reset pricing",
"apikey": "API nøgle",
"http": "HTTP"
"http": "HTTP",
"goToDashboard": "Go to Dashboard",
"checkSystemStatus": "Check System Status",
"nothingHere": "Nothing here yet"
},
"sidebar": {
"home": "Hjem",
@@ -640,7 +643,8 @@
"opencode": "Brug, når du foretrækker terminal-native agentkørsler og scriptet automatisering via OpenCode.",
"kiro": "Bruges ved integration af Kiro og styring af modelrouting centralt fra OmniRoute.",
"antigravity": "Bruges, når Antigravity/Kiro-trafik skal opsnappes gennem MITM og dirigeres til OmniRoute.",
"copilot": "Brug, når du ønsker Copilot-chatstil UX, mens du håndhæver OmniRoute-nøgler og routingregler."
"copilot": "Brug, når du ønsker Copilot-chatstil UX, mens du håndhæver OmniRoute-nøgler og routingregler.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE med MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin."
},
"context-relay": {
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"when": "Use when long sessions must survive account rotation without losing the working context.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"builderProviderFirst": "Pick provider first",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"modePackUpdated": "Mode pack updated to {pack}.",
"builderStage": {
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
},
"review": {
"description": "Final validation before saving",
"label": "Review"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
}
},
"explorationRateLabel": "Exploration Rate",
"budgetCapLabel": "Budget Cap (USD / request)",
"reorderHandle": "Drag to reorder",
"builderPreview": "Preview",
"reviewName": "Name",
"weightStability": "Stability",
"builderStageVisited": "Stage completed",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"routerStrategyLabel": "Router Strategy",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"filterIntelligent": "Intelligent",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"providerScores": "Provider Scores",
"modePackLabel": "Mode Pack",
"builderAddStep": "Add step",
"builderProvider": "Provider",
"reviewNoSteps": "No steps configured",
"builderLoadingProviders": "Loading providers...",
"builderSelectProvider": "Select provider",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"reviewAccounts": "Accounts",
"failedReorder": "Failed to reorder models",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"builderStagePending": "Pending",
"builderPinnedAccount": "Pinned Account",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"normalOperation": "Normal Operation",
"filterEmptyTitle": "No combos match this strategy filter.",
"excludedProviders": "Excluded Providers",
"contextRelaySummaryModel": "Summary Model",
"reviewComboRefs": "Combo References",
"reviewAdvanced": "Advanced Settings",
"builderModel": "Model",
"candidatePoolEmpty": "No active providers available yet.",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"builderLegacyEntry": "Legacy entry",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"incidentMode": "Incident Mode",
"reviewProviders": "Providers",
"budgetCapPlaceholder": "No limit",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"filterDeterministic": "Deterministic",
"weightTierPriority": "Tier",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"emailVisibilityStateOn": "On",
"reviewSequence": "Model Sequence",
"strategyRules": "Rules (6-Factor Scoring)",
"builderComboRefStep": "Add combo reference",
"builderBrowseCatalog": "Browse catalog",
"builderComboRef": "Combo Ref",
"builderAccount": "Account",
"builderStageLocked": "Locked — complete previous stage first",
"contextRelayHandoffThreshold": "Handoff Threshold",
"candidatePoolAllProviders": "All providers",
"reviewSteps": "Steps",
"candidatePoolLabel": "Candidate Pool",
"contextRelay": "Context Relay",
"filterAll": "All",
"builderAddComboRef": "Add combo reference",
"weightLatencyInv": "Latency",
"emailVisibilityStateOff": "Off",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"weightCostInv": "Cost",
"weightTaskFit": "Task Fit",
"reviewStrategy": "Strategy",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"cooldownMinutes": "Cooldown: {minutes}m",
"statusOverview": "Status Overview",
"builderTitle": "Build a Combo",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"reviewIntelligentTitle": "Intelligent Routing Config",
"activeModePack": "Active Mode Pack",
"builderSelectModel": "Select model",
"weightHealth": "Health",
"weightQuota": "Quota",
"reviewAgentFlags": "Agent Flags",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"noExcludedProviders": "No providers are currently excluded.",
"builderStageCurrent": "Current stage",
"builderFlowTitle": "Combo Builder Flow",
"contextRelayMaxMessages": "Max Messages For Summary"
},
"costs": {
"title": "Omkostninger",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC-anmodninger til`POST /a2a`vedhjælp af `message/send` eller `message/stream`.",
"a2aQuickStartStep3": "Spor og kontroller opgaver ved hjælp af `tasks/get` og `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"repairEnvWorking": "Repairing...",
"repairEnvSuccess": "OAuth defaults restored",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"showEmails": "Show all emails",
"audioSpeech": "Audio Speech",
"modelsActiveCount": "{active}/{total} active",
"repairEnvFailed": "Failed to repair .env",
"audioTranscriptions": "Audio Transcriptions",
"deselectAllModels": "Deselect all",
"imagesGenerations": "Images Generations",
"embeddings": "Embeddings",
"hideEmails": "Hide all emails",
"noModelsMatch": "No models match \"{filter}\"",
"repairEnv": "Repair env",
"selectAllModels": "Select all"
},
"settings": {
"title": "Indstillinger",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayMaxMessages": "Max Messages For Summary"
},
"translator": {
"title": "Oversætter",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Venter på OpenAI-godkendelse...",
"waitingForAntigravityAuthorization": "Venter på antigravity-autorisation...",
"waitingForQoderAuthorization": "Venter på Qoder-godkendelse...",
"exchangingCodeForTokens": "Udveksler kode til tokens..."
"exchangingCodeForTokens": "Udveksler kode til tokens...",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended."
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"lastUpdated": "Last updated",
"peakCacheRate": "Peak Cache Rate",
"cachedRequests24h": "Cached Requests (24h)",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"entriesLoadError": "Failed to load semantic cache entries.",
"trendHour": "Hour",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"hoursTracked": "hours tracked",
"busiestHour": "Busiest Hour",
"cacheRateDesc": "of total requests",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"activityVolume": "Activity",
"semanticCache": "Semantic Cache",
"cacheRate": "Cache Rate"
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Preise speichern fehlgeschlagen",
"Failed to reset pricing": "Preise zurücksetzen fehlgeschlagen",
"apikey": "API-Schlüssel",
"http": "HTTP"
"http": "HTTP",
"nothingHere": "Nothing here yet",
"checkSystemStatus": "Check System Status",
"goToDashboard": "Go to Dashboard"
},
"sidebar": {
"home": "Zuhause",
@@ -640,7 +643,8 @@
"opencode": "Verwenden Sie diese Option, wenn Sie terminalnative Agentenausführungen und Skriptautomatisierung über OpenCode bevorzugen.",
"kiro": "Zur Verwendung bei der Integration von Kiro und der zentralen Steuerung des Modellroutings über OmniRoute.",
"antigravity": "Wird verwendet, wenn Antigravity/Kiro-Verkehr über MITM abgefangen und an OmniRoute weitergeleitet werden muss.",
"copilot": "Verwenden Sie diese Option, wenn Sie eine UX im Copilot-Chat-Stil wünschen und gleichzeitig OmniRoute-Schlüssel und Routing-Regeln durchsetzen möchten."
"copilot": "Verwenden Sie diese Option, wenn Sie eine UX im Copilot-Chat-Stil wünschen und gleichzeitig OmniRoute-Schlüssel und Routing-Regeln durchsetzen möchten.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE mit MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"context-relay": {
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"when": "Use when long sessions must survive account rotation without losing the working context.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
},
"p2c": {
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"weightCostInv": "Cost",
"builderStage": {
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
}
},
"builderFlowTitle": "Combo Builder Flow",
"weightHealth": "Health",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"incidentMode": "Incident Mode",
"budgetCapLabel": "Budget Cap (USD / request)",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"filterAll": "All",
"filterEmptyTitle": "No combos match this strategy filter.",
"statusOverview": "Status Overview",
"contextRelay": "Context Relay",
"failedReorder": "Failed to reorder models",
"contextRelayHandoffThreshold": "Handoff Threshold",
"builderPinnedAccount": "Pinned Account",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"excludedProviders": "Excluded Providers",
"builderAddComboRef": "Add combo reference",
"reorderHandle": "Drag to reorder",
"builderComboRef": "Combo Ref",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"builderSelectModel": "Select model",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"providerScores": "Provider Scores",
"activeModePack": "Active Mode Pack",
"builderTitle": "Build a Combo",
"weightQuota": "Quota",
"reviewProviders": "Providers",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"builderSelectProvider": "Select provider",
"reviewSteps": "Steps",
"routerStrategyLabel": "Router Strategy",
"builderPreview": "Preview",
"reviewIntelligentTitle": "Intelligent Routing Config",
"emailVisibilityStateOff": "Off",
"builderStageCurrent": "Current stage",
"builderStageLocked": "Locked — complete previous stage first",
"builderAddStep": "Add step",
"reviewAdvanced": "Advanced Settings",
"noExcludedProviders": "No providers are currently excluded.",
"emailVisibilityStateOn": "On",
"modePackUpdated": "Mode pack updated to {pack}.",
"builderLegacyEntry": "Legacy entry",
"reviewName": "Name",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"weightStability": "Stability",
"budgetCapPlaceholder": "No limit",
"candidatePoolLabel": "Candidate Pool",
"contextRelayMaxMessages": "Max Messages For Summary",
"strategyRules": "Rules (6-Factor Scoring)",
"builderProviderFirst": "Pick provider first",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"builderProvider": "Provider",
"weightTierPriority": "Tier",
"reviewAgentFlags": "Agent Flags",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"filterIntelligent": "Intelligent",
"builderStagePending": "Pending",
"reviewNoSteps": "No steps configured",
"builderComboRefStep": "Add combo reference",
"cooldownMinutes": "Cooldown: {minutes}m",
"reviewAccounts": "Accounts",
"explorationRateLabel": "Exploration Rate",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"candidatePoolEmpty": "No active providers available yet.",
"reviewComboRefs": "Combo References",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"builderStageVisited": "Stage completed",
"modePackLabel": "Mode Pack",
"weightLatencyInv": "Latency",
"builderAccount": "Account",
"weightTaskFit": "Task Fit",
"reviewStrategy": "Strategy",
"reviewSequence": "Model Sequence",
"builderModel": "Model",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"normalOperation": "Normal Operation",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"filterDeterministic": "Deterministic",
"candidatePoolAllProviders": "All providers",
"contextRelaySummaryModel": "Summary Model",
"builderBrowseCatalog": "Browse catalog",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"builderLoadingProviders": "Loading providers..."
},
"costs": {
"title": "Kosten",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Senden Sie JSON-RPC-Anfragen an `POST /a2a` mit `message/send` oder `message/stream`.",
"a2aQuickStartStep3": "Verfolgen und steuern Sie Aufgaben mit `tasks/get` und `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"modelsActiveCount": "{active}/{total} active",
"hideEmails": "Hide all emails",
"embeddings": "Embeddings",
"deselectAllModels": "Deselect all",
"audioSpeech": "Audio Speech",
"repairEnvFailed": "Failed to repair .env",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"repairEnvSuccess": "OAuth defaults restored",
"showEmails": "Show all emails",
"imagesGenerations": "Images Generations",
"repairEnv": "Repair env",
"selectAllModels": "Select all",
"repairEnvWorking": "Repairing...",
"noModelsMatch": "No models match \"{filter}\"",
"audioTranscriptions": "Audio Transcriptions"
},
"settings": {
"title": "Einstellungen",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary"
},
"translator": {
"title": "Übersetzer",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Warte auf OpenAI-Autorisierung...",
"waitingForAntigravityAuthorization": "Warte auf Antigravity-Autorisierung...",
"waitingForQoderAuthorization": "Warte auf Qoder-Autorisierung...",
"exchangingCodeForTokens": "Tausche Code gegen Token aus..."
"exchangingCodeForTokens": "Tausche Code gegen Token aus...",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release."
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"lastUpdated": "Last updated",
"hoursTracked": "hours tracked",
"cacheRate": "Cache Rate",
"cacheRateDesc": "of total requests",
"cachedRequests24h": "Cached Requests (24h)",
"busiestHour": "Busiest Hour",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"semanticCache": "Semantic Cache",
"activityVolume": "Activity",
"trendHour": "Hour",
"peakCacheRate": "Peak Cache Rate",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"entriesLoadError": "Failed to load semantic cache entries."
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "No se pudo guardar el precio",
"Failed to reset pricing": "No se pudo restablecer el precio",
"apikey": "Clave API",
"http": "HTTP"
"http": "HTTP",
"checkSystemStatus": "Check System Status",
"nothingHere": "Nothing here yet",
"goToDashboard": "Go to Dashboard"
},
"sidebar": {
"home": "Inicio",
@@ -640,7 +643,8 @@
"opencode": "Úselo cuando prefiera ejecuciones de agentes nativos de terminal y automatización con scripts a través de OpenCode.",
"kiro": "Utilícelo al integrar Kiro y controlar el enrutamiento de modelos de forma centralizada desde OmniRoute.",
"antigravity": "Úselo cuando el tráfico de Antigravity/Kiro debe interceptarse a través de MITM y enrutarse a OmniRoute.",
"copilot": "Úselo cuando desee una experiencia de usuario estilo chat Copilot mientras aplica las claves de OmniRoute y las reglas de enrutamiento."
"copilot": "Úselo cuando desee una experiencia de usuario estilo chat Copilot mientras aplica las claves de OmniRoute y las reglas de enrutamiento.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "IDE antigravedad de Google con MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints."
},
"context-relay": {
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"when": "Use when long sessions must survive account rotation without losing the working context."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"weightTierPriority": "Tier",
"explorationRateLabel": "Exploration Rate",
"normalOperation": "Normal Operation",
"builderStage": {
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
}
},
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"filterEmptyTitle": "No combos match this strategy filter.",
"reviewAdvanced": "Advanced Settings",
"providerScores": "Provider Scores",
"filterDeterministic": "Deterministic",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"filterIntelligent": "Intelligent",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"excludedProviders": "Excluded Providers",
"builderAddStep": "Add step",
"reorderHandle": "Drag to reorder",
"builderProviderFirst": "Pick provider first",
"builderLegacyEntry": "Legacy entry",
"reviewName": "Name",
"weightQuota": "Quota",
"filterAll": "All",
"builderPreview": "Preview",
"reviewStrategy": "Strategy",
"reviewSteps": "Steps",
"statusOverview": "Status Overview",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"weightHealth": "Health",
"builderAccount": "Account",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"weightLatencyInv": "Latency",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"builderLoadingProviders": "Loading providers...",
"weightStability": "Stability",
"weightTaskFit": "Task Fit",
"budgetCapPlaceholder": "No limit",
"builderProvider": "Provider",
"emailVisibilityStateOn": "On",
"builderStageVisited": "Stage completed",
"noExcludedProviders": "No providers are currently excluded.",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"candidatePoolEmpty": "No active providers available yet.",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"reviewAgentFlags": "Agent Flags",
"builderStageLocked": "Locked — complete previous stage first",
"reviewNoSteps": "No steps configured",
"candidatePoolLabel": "Candidate Pool",
"builderStageCurrent": "Current stage",
"builderComboRef": "Combo Ref",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"emailVisibilityStateOff": "Off",
"builderAddComboRef": "Add combo reference",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"modePackUpdated": "Mode pack updated to {pack}.",
"contextRelaySummaryModel": "Summary Model",
"builderModel": "Model",
"reviewProviders": "Providers",
"candidatePoolAllProviders": "All providers",
"builderFlowTitle": "Combo Builder Flow",
"routerStrategyLabel": "Router Strategy",
"builderStagePending": "Pending",
"contextRelayHandoffThreshold": "Handoff Threshold",
"cooldownMinutes": "Cooldown: {minutes}m",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"builderSelectModel": "Select model",
"builderSelectProvider": "Select provider",
"failedReorder": "Failed to reorder models",
"reviewIntelligentTitle": "Intelligent Routing Config",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"incidentMode": "Incident Mode",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"builderTitle": "Build a Combo",
"builderPinnedAccount": "Pinned Account",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"activeModePack": "Active Mode Pack",
"builderComboRefStep": "Add combo reference",
"strategyRules": "Rules (6-Factor Scoring)",
"contextRelay": "Context Relay",
"reviewSequence": "Model Sequence",
"reviewAccounts": "Accounts",
"reviewComboRefs": "Combo References",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"budgetCapLabel": "Budget Cap (USD / request)",
"modePackLabel": "Mode Pack",
"weightCostInv": "Cost",
"builderBrowseCatalog": "Browse catalog",
"advancedWeightsTitle": "Advanced: Scoring Weights"
},
"costs": {
"title": "Costos",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Envíe solicitudes JSON-RPC a `POST /a2a` usando `message/send` o `message/stream`.",
"a2aQuickStartStep3": "Realice un seguimiento y controle las tareas utilizando `tasks/get` y `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1754,7 +1881,17 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"modelsActiveCount": "{active}/{total} active",
"audioTranscriptions": "Audio Transcriptions",
"imagesGenerations": "Images Generations",
"deselectAllModels": "Deselect all",
"selectAllModels": "Select all",
"embeddings": "Embeddings",
"showEmails": "Show all emails",
"audioSpeech": "Audio Speech",
"noModelsMatch": "No models match \"{filter}\"",
"hideEmails": "Hide all emails"
},
"settings": {
"title": "Configuración",
@@ -2271,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model"
},
"translator": {
"title": "Traductor",
@@ -2697,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
"waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
"waitingForQoderAuthorization": "Waiting for Qoder authorization...",
"exchangingCodeForTokens": "Exchanging code for tokens..."
"exchangingCodeForTokens": "Exchanging code for tokens...",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleTitle": "Incompatible Node.js Version"
},
"landing": {
"brandName": "OmniRuta",
@@ -3113,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"busiestHour": "Busiest Hour",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"activityVolume": "Activity",
"cacheRate": "Cache Rate",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"trendHour": "Hour",
"semanticCache": "Semantic Cache",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"cacheRateDesc": "of total requests",
"peakCacheRate": "Peak Cache Rate",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"entriesLoadError": "Failed to load semantic cache entries.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"hoursTracked": "hours tracked",
"lastUpdated": "Last updated",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"cachedRequests24h": "Cached Requests (24h)"
},
"memory": {
"title": "Memory Management",
@@ -3137,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Hinnoittelun tallentaminen epäonnistui",
"Failed to reset pricing": "Hinnoittelun nollaaminen epäonnistui",
"apikey": "API-avain",
"http": "HTTP"
"http": "HTTP",
"checkSystemStatus": "Check System Status",
"nothingHere": "Nothing here yet",
"goToDashboard": "Go to Dashboard"
},
"sidebar": {
"home": "Kotiin",
@@ -640,7 +643,8 @@
"opencode": "Käytä, kun haluat käyttää päätealustaisia agentteja ja komentosarjottua automaatiota OpenCoden kautta.",
"kiro": "Käytä integroitaessa Kiroa ja ohjattaessa mallin reititystä keskitetysti OmniRoutesta.",
"antigravity": "Käytä, kun Antigravity/Kiro-liikenne on siepattava MITM:n kautta ja ohjattava OmniRouteen.",
"copilot": "Käytä, kun haluat Copilot-chat-tyylisen UX:n ja pakota OmniRoute-avaimia ja reitityssääntöjä."
"copilot": "Käytä, kun haluat Copilot-chat-tyylisen UX:n ja pakota OmniRoute-avaimia ja reitityssääntöjä.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE ja MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin."
},
"context-relay": {
"when": "Use when long sessions must survive account rotation without losing the working context.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"modePackUpdated": "Mode pack updated to {pack}.",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"reviewStrategy": "Strategy",
"incidentMode": "Incident Mode",
"builderTitle": "Build a Combo",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"candidatePoolLabel": "Candidate Pool",
"weightHealth": "Health",
"builderStage": {
"basics": {
"description": "Name and starting template",
"label": "Basics"
},
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
}
},
"statusOverview": "Status Overview",
"weightQuota": "Quota",
"weightTierPriority": "Tier",
"reviewAccounts": "Accounts",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"strategyRules": "Rules (6-Factor Scoring)",
"cooldownMinutes": "Cooldown: {minutes}m",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"budgetCapPlaceholder": "No limit",
"modePackLabel": "Mode Pack",
"builderSelectModel": "Select model",
"contextRelaySummaryModel": "Summary Model",
"builderAccount": "Account",
"emailVisibilityStateOn": "On",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"emailVisibilityStateOff": "Off",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"reviewName": "Name",
"filterEmptyTitle": "No combos match this strategy filter.",
"builderLoadingProviders": "Loading providers...",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"reorderHandle": "Drag to reorder",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"reviewSteps": "Steps",
"builderAddStep": "Add step",
"builderComboRef": "Combo Ref",
"weightTaskFit": "Task Fit",
"builderProviderFirst": "Pick provider first",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"weightCostInv": "Cost",
"builderPreview": "Preview",
"reviewComboRefs": "Combo References",
"builderStageCurrent": "Current stage",
"builderLegacyEntry": "Legacy entry",
"weightLatencyInv": "Latency",
"routerStrategyLabel": "Router Strategy",
"failedReorder": "Failed to reorder models",
"builderBrowseCatalog": "Browse catalog",
"candidatePoolAllProviders": "All providers",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"budgetCapLabel": "Budget Cap (USD / request)",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"providerScores": "Provider Scores",
"contextRelay": "Context Relay",
"candidatePoolEmpty": "No active providers available yet.",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"filterIntelligent": "Intelligent",
"reviewSequence": "Model Sequence",
"explorationRateLabel": "Exploration Rate",
"builderSelectProvider": "Select provider",
"builderFlowTitle": "Combo Builder Flow",
"activeModePack": "Active Mode Pack",
"reviewNoSteps": "No steps configured",
"reviewAdvanced": "Advanced Settings",
"reviewProviders": "Providers",
"filterAll": "All",
"reviewIntelligentTitle": "Intelligent Routing Config",
"builderComboRefStep": "Add combo reference",
"excludedProviders": "Excluded Providers",
"noExcludedProviders": "No providers are currently excluded.",
"builderStageVisited": "Stage completed",
"normalOperation": "Normal Operation",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"builderStagePending": "Pending",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayMaxMessages": "Max Messages For Summary",
"filterDeterministic": "Deterministic",
"builderPinnedAccount": "Pinned Account",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"weightStability": "Stability",
"builderProvider": "Provider",
"reviewAgentFlags": "Agent Flags",
"builderModel": "Model",
"builderStageLocked": "Locked — complete previous stage first",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"builderAddComboRef": "Add combo reference"
},
"costs": {
"title": "Kustannukset",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Lähetä JSON-RPC-pyynnöt osoitteeseen `POST /a2a` käyttämällä `message/send` tai `message/stream`.",
"a2aQuickStartStep3": "Seuraa ja ohjaa tehtäviä käyttämällä `tasks/get` ja `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicGeneration": "Music Generation",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"repairEnv": "Repair env",
"audioSpeech": "Audio Speech",
"selectAllModels": "Select all",
"audioTranscriptions": "Audio Transcriptions",
"repairEnvWorking": "Repairing...",
"repairEnvSuccess": "OAuth defaults restored",
"embeddings": "Embeddings",
"deselectAllModels": "Deselect all",
"imagesGenerations": "Images Generations",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"modelsActiveCount": "{active}/{total} active",
"repairEnvFailed": "Failed to repair .env",
"hideEmails": "Hide all emails",
"showEmails": "Show all emails",
"noModelsMatch": "No models match \"{filter}\""
},
"settings": {
"title": "Asetukset",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model"
},
"translator": {
"title": "Kääntäjä",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Odotetaan OpenAI-valtuutusta...",
"waitingForAntigravityAuthorization": "Odotetaan antigravitaatiovaltuutusta...",
"waitingForQoderAuthorization": "Odotetaan Qoder-valtuutusta...",
"exchangingCodeForTokens": "Vaihdetaan koodia tokeneihin..."
"exchangingCodeForTokens": "Vaihdetaan koodia tokeneihin...",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended."
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"cacheRateDesc": "of total requests",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"semanticCache": "Semantic Cache",
"cachedRequests24h": "Cached Requests (24h)",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"cacheRate": "Cache Rate",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"entriesLoadError": "Failed to load semantic cache entries.",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"hoursTracked": "hours tracked",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"busiestHour": "Busiest Hour",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"peakCacheRate": "Peak Cache Rate",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"trendHour": "Hour",
"lastUpdated": "Last updated",
"activityVolume": "Activity"
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Échec de l'enregistrement des prix",
"Failed to reset pricing": "Échec de la réinitialisation des prix",
"apikey": "Clé API",
"http": "HTTP"
"http": "HTTP",
"nothingHere": "Nothing here yet",
"goToDashboard": "Go to Dashboard",
"checkSystemStatus": "Check System Status"
},
"sidebar": {
"home": "Accueil",
@@ -640,7 +643,8 @@
"opencode": "À utiliser lorsque vous préférez les exécutions d'agents natifs du terminal et l'automatisation par script via OpenCode.",
"kiro": "À utiliser lors de l'intégration de Kiro et du contrôle centralisé du routage de modèles à partir d'OmniRoute.",
"antigravity": "À utiliser lorsque le trafic Antigravity/Kiro doit être intercepté via MITM et acheminé vers OmniRoute.",
"copilot": "À utiliser lorsque vous souhaitez une UX de style chat Copilot tout en appliquant les clés OmniRoute et les règles de routage."
"copilot": "À utiliser lorsque vous souhaitez une UX de style chat Copilot tout en appliquant les clés OmniRoute et les règles de routage.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "IDE Google Antigravity avec MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"context-relay": {
"when": "Use when long sessions must survive account rotation without losing the working context.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
},
"p2c": {
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"reviewAdvanced": "Advanced Settings",
"builderStage": {
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
},
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
}
},
"builderProviderFirst": "Pick provider first",
"contextRelayMaxMessages": "Max Messages For Summary",
"builderAddStep": "Add step",
"filterIntelligent": "Intelligent",
"failedReorder": "Failed to reorder models",
"providerScores": "Provider Scores",
"reviewIntelligentTitle": "Intelligent Routing Config",
"filterDeterministic": "Deterministic",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"noExcludedProviders": "No providers are currently excluded.",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"reviewNoSteps": "No steps configured",
"builderComboRef": "Combo Ref",
"builderStageVisited": "Stage completed",
"builderComboRefStep": "Add combo reference",
"builderSelectProvider": "Select provider",
"builderStagePending": "Pending",
"candidatePoolEmpty": "No active providers available yet.",
"reviewSteps": "Steps",
"cooldownMinutes": "Cooldown: {minutes}m",
"builderLegacyEntry": "Legacy entry",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"builderAccount": "Account",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"emailVisibilityStateOff": "Off",
"weightTierPriority": "Tier",
"weightCostInv": "Cost",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"reviewName": "Name",
"builderLoadingProviders": "Loading providers...",
"routerStrategyLabel": "Router Strategy",
"builderFlowTitle": "Combo Builder Flow",
"weightStability": "Stability",
"explorationRateLabel": "Exploration Rate",
"activeModePack": "Active Mode Pack",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"excludedProviders": "Excluded Providers",
"builderSelectModel": "Select model",
"weightQuota": "Quota",
"reviewSequence": "Model Sequence",
"builderAddComboRef": "Add combo reference",
"contextRelayHandoffThreshold": "Handoff Threshold",
"filterAll": "All",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"builderStageLocked": "Locked — complete previous stage first",
"weightHealth": "Health",
"budgetCapLabel": "Budget Cap (USD / request)",
"reviewComboRefs": "Combo References",
"budgetCapPlaceholder": "No limit",
"builderProvider": "Provider",
"builderBrowseCatalog": "Browse catalog",
"builderStageCurrent": "Current stage",
"incidentMode": "Incident Mode",
"contextRelaySummaryModel": "Summary Model",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"weightLatencyInv": "Latency",
"builderPreview": "Preview",
"candidatePoolAllProviders": "All providers",
"filterEmptyTitle": "No combos match this strategy filter.",
"reviewAgentFlags": "Agent Flags",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"weightTaskFit": "Task Fit",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"contextRelay": "Context Relay",
"statusOverview": "Status Overview",
"modePackUpdated": "Mode pack updated to {pack}.",
"reorderHandle": "Drag to reorder",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"builderTitle": "Build a Combo",
"candidatePoolLabel": "Candidate Pool",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"modePackLabel": "Mode Pack",
"reviewStrategy": "Strategy",
"strategyRules": "Rules (6-Factor Scoring)",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"reviewProviders": "Providers",
"reviewAccounts": "Accounts",
"builderModel": "Model",
"normalOperation": "Normal Operation",
"emailVisibilityStateOn": "On",
"builderPinnedAccount": "Pinned Account"
},
"costs": {
"title": "Coûts",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Envoyez des requêtes JSON-RPC à `POST /a2a` en utilisant `message/send` ou `message/stream`.",
"a2aQuickStartStep3": "Suivez et contrôlez les tâches à laide de `tasks/get` et `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicGeneration": "Music Generation",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"audioTranscriptions": "Audio Transcriptions",
"noModelsMatch": "No models match \"{filter}\"",
"showEmails": "Show all emails",
"selectAllModels": "Select all",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"audioSpeech": "Audio Speech",
"modelsActiveCount": "{active}/{total} active",
"repairEnvSuccess": "OAuth defaults restored",
"repairEnvWorking": "Repairing...",
"hideEmails": "Hide all emails",
"repairEnv": "Repair env",
"deselectAllModels": "Deselect all",
"embeddings": "Embeddings",
"repairEnvFailed": "Failed to repair .env",
"imagesGenerations": "Images Generations"
},
"settings": {
"title": "Paramètres",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model",
"contextRelayHandoffThreshold": "Handoff Threshold"
},
"translator": {
"title": "Traducteur",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
"waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
"waitingForQoderAuthorization": "Waiting for Qoder authorization...",
"exchangingCodeForTokens": "Exchanging code for tokens..."
"exchangingCodeForTokens": "Exchanging code for tokens...",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended."
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"trendHour": "Hour",
"cacheRateDesc": "of total requests",
"peakCacheRate": "Peak Cache Rate",
"activityVolume": "Activity",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"entriesLoadError": "Failed to load semantic cache entries.",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"cachedRequests24h": "Cached Requests (24h)",
"cacheRate": "Cache Rate",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"semanticCache": "Semantic Cache",
"lastUpdated": "Last updated",
"hoursTracked": "hours tracked",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"busiestHour": "Busiest Hour",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals."
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "חיסכון במחיר נכשל",
"Failed to reset pricing": "איפוס התמחור נכשל",
"apikey": "מפתח API",
"http": "HTTP"
"http": "HTTP",
"checkSystemStatus": "Check System Status",
"goToDashboard": "Go to Dashboard",
"nothingHere": "Nothing here yet"
},
"sidebar": {
"home": "בית",
@@ -640,7 +643,8 @@
"opencode": "השתמש כאשר אתה מעדיף ריצות סוכנים מקוריים ומאוטומציה של סקריפטים באמצעות OpenCode.",
"kiro": "השתמש בעת שילוב Kiro ושליטה בניתוב מודלים באופן מרכזי מ- OmniRoute.",
"antigravity": "השתמש כאשר יש ליירט תעבורת Antigravity/Kiro דרך MITM ולנתב אל OmniRoute.",
"copilot": "השתמש כאשר אתה רוצה UX בסגנון צ'אט Copilot תוך אכיפת מפתחות וכללי ניתוב OmniRoute."
"copilot": "השתמש כאשר אתה רוצה UX בסגנון צ'אט Copilot תוך אכיפת מפתחות וכללי ניתוב OmniRoute.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE עם MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm."
},
"context-relay": {
"when": "Use when long sessions must survive account rotation without losing the working context.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"explorationRateLabel": "Exploration Rate",
"weightTaskFit": "Task Fit",
"builderBrowseCatalog": "Browse catalog",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"builderFlowTitle": "Combo Builder Flow",
"weightHealth": "Health",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"modePackUpdated": "Mode pack updated to {pack}.",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"budgetCapPlaceholder": "No limit",
"contextRelayMaxMessages": "Max Messages For Summary",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"providerScores": "Provider Scores",
"builderPreview": "Preview",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"builderStageVisited": "Stage completed",
"weightLatencyInv": "Latency",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"cooldownMinutes": "Cooldown: {minutes}m",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"builderProvider": "Provider",
"failedReorder": "Failed to reorder models",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"builderStage": {
"basics": {
"description": "Name and starting template",
"label": "Basics"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"review": {
"description": "Final validation before saving",
"label": "Review"
},
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
}
},
"reviewSteps": "Steps",
"builderLoadingProviders": "Loading providers...",
"weightCostInv": "Cost",
"builderAccount": "Account",
"activeModePack": "Active Mode Pack",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"routerStrategyLabel": "Router Strategy",
"reviewAccounts": "Accounts",
"builderStageLocked": "Locked — complete previous stage first",
"reviewStrategy": "Strategy",
"builderProviderFirst": "Pick provider first",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"builderAddComboRef": "Add combo reference",
"contextRelay": "Context Relay",
"incidentMode": "Incident Mode",
"builderSelectModel": "Select model",
"builderComboRef": "Combo Ref",
"strategyRules": "Rules (6-Factor Scoring)",
"builderStagePending": "Pending",
"reviewAgentFlags": "Agent Flags",
"budgetCapLabel": "Budget Cap (USD / request)",
"normalOperation": "Normal Operation",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"builderTitle": "Build a Combo",
"reviewIntelligentTitle": "Intelligent Routing Config",
"emailVisibilityStateOff": "Off",
"filterAll": "All",
"builderStageCurrent": "Current stage",
"builderModel": "Model",
"weightStability": "Stability",
"excludedProviders": "Excluded Providers",
"builderLegacyEntry": "Legacy entry",
"builderPinnedAccount": "Pinned Account",
"contextRelaySummaryModel": "Summary Model",
"candidatePoolEmpty": "No active providers available yet.",
"candidatePoolAllProviders": "All providers",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"reorderHandle": "Drag to reorder",
"noExcludedProviders": "No providers are currently excluded.",
"emailVisibilityStateOn": "On",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"modePackLabel": "Mode Pack",
"weightQuota": "Quota",
"builderSelectProvider": "Select provider",
"candidatePoolLabel": "Candidate Pool",
"filterDeterministic": "Deterministic",
"reviewName": "Name",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"builderAddStep": "Add step",
"reviewAdvanced": "Advanced Settings",
"reviewSequence": "Model Sequence",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"statusOverview": "Status Overview",
"builderComboRefStep": "Add combo reference",
"filterIntelligent": "Intelligent",
"reviewNoSteps": "No steps configured",
"reviewComboRefs": "Combo References",
"reviewProviders": "Providers",
"weightTierPriority": "Tier",
"filterEmptyTitle": "No combos match this strategy filter."
},
"costs": {
"title": "עלויות",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"repairEnvFailed": "Failed to repair .env",
"showEmails": "Show all emails",
"noModelsMatch": "No models match \"{filter}\"",
"deselectAllModels": "Deselect all",
"modelsActiveCount": "{active}/{total} active",
"repairEnvSuccess": "OAuth defaults restored",
"imagesGenerations": "Images Generations",
"embeddings": "Embeddings",
"audioSpeech": "Audio Speech",
"hideEmails": "Hide all emails",
"audioTranscriptions": "Audio Transcriptions",
"selectAllModels": "Select all",
"repairEnv": "Repair env",
"repairEnvWorking": "Repairing...",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values."
},
"settings": {
"title": "הגדרות",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary"
},
"translator": {
"title": "מתרגם",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "ממתין להרשאת OpenAI...",
"waitingForAntigravityAuthorization": "ממתין לאישור נגד כבידה...",
"waitingForQoderAuthorization": "ממתין להרשאת Qoder...",
"exchangingCodeForTokens": "מחליף קוד לאסימונים..."
"exchangingCodeForTokens": "מחליף קוד לאסימונים...",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleTitle": "Incompatible Node.js Version"
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"trendHour": "Hour",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"semanticCache": "Semantic Cache",
"cacheRateDesc": "of total requests",
"activityVolume": "Activity",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"lastUpdated": "Last updated",
"cacheRate": "Cache Rate",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"busiestHour": "Busiest Hour",
"entriesLoadError": "Failed to load semantic cache entries.",
"cachedRequests24h": "Cached Requests (24h)",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"peakCacheRate": "Peak Cache Rate",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"hoursTracked": "hours tracked",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours."
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Failed to save pricing",
"Failed to reset pricing": "Failed to reset pricing",
"apikey": "API Key",
"http": "HTTP"
"http": "HTTP",
"nothingHere": "Nothing here yet",
"checkSystemStatus": "Check System Status",
"goToDashboard": "Go to Dashboard"
},
"sidebar": {
"home": "घर",
@@ -640,7 +643,8 @@
"opencode": "जब आप ओपनकोड के माध्यम से टर्मिनल-नेटिव एजेंट रन और स्क्रिप्टेड ऑटोमेशन पसंद करते हैं तो इसका उपयोग करें।",
"kiro": "किरो को एकीकृत करते समय और ओमनीरूट से केंद्रीय रूप से मॉडल रूटिंग को नियंत्रित करते समय उपयोग करें।",
"antigravity": "इसका उपयोग तब करें जब एंटीग्रेविटी/किरो ट्रैफिक को एमआईटीएम के माध्यम से रोका जाना चाहिए और ओमनीरूट पर भेजा जाना चाहिए।",
"copilot": "जब आप ओम्निरूट कुंजी और रूटिंग नियमों को लागू करते समय कोपायलट चैट शैली यूएक्स चाहते हैं तो इसका उपयोग करें।"
"copilot": "जब आप ओम्निरूट कुंजी और रूटिंग नियमों को लागू करते समय कोपायलट चैट शैली यूएक्स चाहते हैं तो इसका उपयोग करें।",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "एमआईटीएम के साथ गूगल एंटीग्रेविटी आईडीई",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints."
},
"context-relay": {
"when": "Use when long sessions must survive account rotation without losing the working context.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"activeModePack": "Active Mode Pack",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"reviewAccounts": "Accounts",
"contextRelaySummaryModel": "Summary Model",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"cooldownMinutes": "Cooldown: {minutes}m",
"builderTitle": "Build a Combo",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"reviewProviders": "Providers",
"builderModel": "Model",
"weightHealth": "Health",
"weightStability": "Stability",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"emailVisibilityStateOff": "Off",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"candidatePoolAllProviders": "All providers",
"routerStrategyLabel": "Router Strategy",
"builderBrowseCatalog": "Browse catalog",
"builderStage": {
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
}
},
"builderProviderFirst": "Pick provider first",
"reviewNoSteps": "No steps configured",
"contextRelayHandoffThreshold": "Handoff Threshold",
"builderFlowTitle": "Combo Builder Flow",
"builderPinnedAccount": "Pinned Account",
"builderStageLocked": "Locked — complete previous stage first",
"filterDeterministic": "Deterministic",
"candidatePoolLabel": "Candidate Pool",
"contextRelay": "Context Relay",
"reorderHandle": "Drag to reorder",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"builderAccount": "Account",
"builderAddComboRef": "Add combo reference",
"reviewAdvanced": "Advanced Settings",
"modePackUpdated": "Mode pack updated to {pack}.",
"builderPreview": "Preview",
"noExcludedProviders": "No providers are currently excluded.",
"statusOverview": "Status Overview",
"reviewName": "Name",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"reviewSequence": "Model Sequence",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"builderComboRefStep": "Add combo reference",
"weightLatencyInv": "Latency",
"contextRelayMaxMessages": "Max Messages For Summary",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"weightTierPriority": "Tier",
"modePackLabel": "Mode Pack",
"builderAddStep": "Add step",
"budgetCapLabel": "Budget Cap (USD / request)",
"builderLegacyEntry": "Legacy entry",
"explorationRateLabel": "Exploration Rate",
"filterAll": "All",
"builderStageCurrent": "Current stage",
"filterIntelligent": "Intelligent",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"weightTaskFit": "Task Fit",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"builderStagePending": "Pending",
"budgetCapPlaceholder": "No limit",
"weightQuota": "Quota",
"reviewAgentFlags": "Agent Flags",
"builderStageVisited": "Stage completed",
"providerScores": "Provider Scores",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"strategyRules": "Rules (6-Factor Scoring)",
"normalOperation": "Normal Operation",
"builderSelectModel": "Select model",
"builderLoadingProviders": "Loading providers...",
"builderComboRef": "Combo Ref",
"failedReorder": "Failed to reorder models",
"builderSelectProvider": "Select provider",
"weightCostInv": "Cost",
"emailVisibilityStateOn": "On",
"reviewIntelligentTitle": "Intelligent Routing Config",
"candidatePoolEmpty": "No active providers available yet.",
"reviewStrategy": "Strategy",
"reviewComboRefs": "Combo References",
"filterEmptyTitle": "No combos match this strategy filter.",
"builderProvider": "Provider",
"incidentMode": "Incident Mode",
"reviewSteps": "Steps",
"excludedProviders": "Excluded Providers"
},
"costs": {
"title": "लागत",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"noModelsMatch": "No models match \"{filter}\"",
"hideEmails": "Hide all emails",
"imagesGenerations": "Images Generations",
"repairEnvFailed": "Failed to repair .env",
"repairEnvWorking": "Repairing...",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"selectAllModels": "Select all",
"embeddings": "Embeddings",
"deselectAllModels": "Deselect all",
"repairEnv": "Repair env",
"repairEnvSuccess": "OAuth defaults restored",
"audioSpeech": "Audio Speech",
"showEmails": "Show all emails",
"modelsActiveCount": "{active}/{total} active",
"audioTranscriptions": "Audio Transcriptions"
},
"settings": {
"title": "सेटिंग्स",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold"
},
"translator": {
"title": "अनुवादक",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
"waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
"waitingForQoderAuthorization": "Waiting for Qoder authorization...",
"exchangingCodeForTokens": "Exchanging code for tokens..."
"exchangingCodeForTokens": "Exchanging code for tokens...",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended."
},
"landing": {
"brandName": "ओम्निरूट",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"semanticCache": "Semantic Cache",
"cachedRequests24h": "Cached Requests (24h)",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"entriesLoadError": "Failed to load semantic cache entries.",
"peakCacheRate": "Peak Cache Rate",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"activityVolume": "Activity",
"lastUpdated": "Last updated",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"cacheRate": "Cache Rate",
"trendHour": "Hour",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"hoursTracked": "hours tracked",
"cacheRateDesc": "of total requests",
"busiestHour": "Busiest Hour"
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Nem sikerült menteni az árakat",
"Failed to reset pricing": "Nem sikerült visszaállítani az árakat",
"apikey": "API kulcs",
"http": "HTTP"
"http": "HTTP",
"nothingHere": "Nothing here yet",
"goToDashboard": "Go to Dashboard",
"checkSystemStatus": "Check System Status"
},
"sidebar": {
"home": "Otthon",
@@ -640,7 +643,8 @@
"opencode": "Akkor használja, ha a terminál-natív ügynökfuttatásokat és az OpenCode-on keresztüli parancsfájl-automatizálást részesíti előnyben.",
"kiro": "Használja a Kiro integrálásához és a modell-útválasztás központi vezérléséhez az OmniRoute-ból.",
"antigravity": "Akkor használja, ha az Antigravity/Kiro forgalmat MITM-en keresztül kell elfogni, és az OmniRoute-hoz kell irányítani.",
"copilot": "Használja, ha másodpilóta csevegési stílusú UX-et szeretne, miközben betartja az OmniRoute kulcsokat és útválasztási szabályokat."
"copilot": "Használja, ha másodpilóta csevegési stílusú UX-et szeretne, miközben betartja az OmniRoute kulcsokat és útválasztási szabályokat.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE MITM-mel",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"context-relay": {
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"when": "Use when long sessions must survive account rotation without losing the working context."
},
"p2c": {
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"reviewIntelligentTitle": "Intelligent Routing Config",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"builderProvider": "Provider",
"weightTierPriority": "Tier",
"builderComboRefStep": "Add combo reference",
"builderStage": {
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"review": {
"description": "Final validation before saving",
"label": "Review"
},
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
}
},
"normalOperation": "Normal Operation",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"builderProviderFirst": "Pick provider first",
"reorderHandle": "Drag to reorder",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"weightHealth": "Health",
"reviewStrategy": "Strategy",
"reviewSteps": "Steps",
"builderSelectProvider": "Select provider",
"routerStrategyLabel": "Router Strategy",
"candidatePoolAllProviders": "All providers",
"modePackLabel": "Mode Pack",
"builderStagePending": "Pending",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"filterIntelligent": "Intelligent",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"contextRelaySummaryModel": "Summary Model",
"builderTitle": "Build a Combo",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"reviewAdvanced": "Advanced Settings",
"emailVisibilityStateOn": "On",
"builderStageCurrent": "Current stage",
"candidatePoolLabel": "Candidate Pool",
"weightTaskFit": "Task Fit",
"builderLegacyEntry": "Legacy entry",
"explorationRateLabel": "Exploration Rate",
"builderBrowseCatalog": "Browse catalog",
"incidentMode": "Incident Mode",
"builderAddStep": "Add step",
"builderFlowTitle": "Combo Builder Flow",
"reviewSequence": "Model Sequence",
"builderStageVisited": "Stage completed",
"noExcludedProviders": "No providers are currently excluded.",
"builderModel": "Model",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"reviewNoSteps": "No steps configured",
"modePackUpdated": "Mode pack updated to {pack}.",
"weightStability": "Stability",
"strategyRules": "Rules (6-Factor Scoring)",
"candidatePoolEmpty": "No active providers available yet.",
"providerScores": "Provider Scores",
"reviewAccounts": "Accounts",
"weightQuota": "Quota",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"failedReorder": "Failed to reorder models",
"weightCostInv": "Cost",
"builderPinnedAccount": "Pinned Account",
"weightLatencyInv": "Latency",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"excludedProviders": "Excluded Providers",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"cooldownMinutes": "Cooldown: {minutes}m",
"activeModePack": "Active Mode Pack",
"reviewProviders": "Providers",
"builderComboRef": "Combo Ref",
"budgetCapPlaceholder": "No limit",
"builderAccount": "Account",
"statusOverview": "Status Overview",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"builderAddComboRef": "Add combo reference",
"builderStageLocked": "Locked — complete previous stage first",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"contextRelayMaxMessages": "Max Messages For Summary",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"builderSelectModel": "Select model",
"emailVisibilityStateOff": "Off",
"filterEmptyTitle": "No combos match this strategy filter.",
"filterAll": "All",
"reviewAgentFlags": "Agent Flags",
"reviewComboRefs": "Combo References",
"builderPreview": "Preview",
"contextRelayHandoffThreshold": "Handoff Threshold",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"budgetCapLabel": "Budget Cap (USD / request)",
"builderLoadingProviders": "Loading providers...",
"reviewName": "Name",
"contextRelay": "Context Relay",
"filterDeterministic": "Deterministic",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"intelligentPanelTitle": "Intelligent Routing Dashboard"
},
"costs": {
"title": "Költségek",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Kövesse nyomon és vezérelje a feladatokat a `tasks/get` és `tasks/cancel` használatával.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicGeneration": "Music Generation",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"audioSpeech": "Audio Speech",
"deselectAllModels": "Deselect all",
"repairEnvFailed": "Failed to repair .env",
"repairEnvWorking": "Repairing...",
"hideEmails": "Hide all emails",
"noModelsMatch": "No models match \"{filter}\"",
"showEmails": "Show all emails",
"repairEnvSuccess": "OAuth defaults restored",
"modelsActiveCount": "{active}/{total} active",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"repairEnv": "Repair env",
"embeddings": "Embeddings",
"imagesGenerations": "Images Generations",
"audioTranscriptions": "Audio Transcriptions",
"selectAllModels": "Select all"
},
"settings": {
"title": "Beállítások elemre",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos."
},
"translator": {
"title": "Fordító",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Várakozás az OpenAI engedélyezésére...",
"waitingForAntigravityAuthorization": "Várakozás az Antigravitációs engedélyezésre...",
"waitingForQoderAuthorization": "Várakozás az Qoder engedélyezésére...",
"exchangingCodeForTokens": "Kód cseréje tokenre..."
"exchangingCodeForTokens": "Kód cseréje tokenre...",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release."
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"hoursTracked": "hours tracked",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"semanticCache": "Semantic Cache",
"cacheRate": "Cache Rate",
"lastUpdated": "Last updated",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"cacheRateDesc": "of total requests",
"trendHour": "Hour",
"cachedRequests24h": "Cached Requests (24h)",
"activityVolume": "Activity",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"peakCacheRate": "Peak Cache Rate",
"busiestHour": "Busiest Hour",
"entriesLoadError": "Failed to load semantic cache entries.",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals."
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Gagal menyimpan harga",
"Failed to reset pricing": "Gagal menyetel ulang harga",
"apikey": "Kunci API",
"http": "HTTP"
"http": "HTTP",
"nothingHere": "Nothing here yet",
"goToDashboard": "Go to Dashboard",
"checkSystemStatus": "Check System Status"
},
"sidebar": {
"home": "Rumah",
@@ -640,7 +643,8 @@
"opencode": "Gunakan saat Anda lebih suka menjalankan agen terminal-asli dan otomatisasi skrip melalui OpenCode.",
"kiro": "Gunakan saat mengintegrasikan Kiro dan mengontrol perutean model secara terpusat dari OmniRoute.",
"antigravity": "Gunakan ketika lalu lintas Antigravitasi/Kiro harus dicegat melalui MITM dan dialihkan ke OmniRoute.",
"copilot": "Gunakan saat Anda menginginkan UX gaya obrolan kopilot sambil menerapkan kunci OmniRoute dan aturan perutean."
"copilot": "Gunakan saat Anda menginginkan UX gaya obrolan kopilot sambil menerapkan kunci OmniRoute dan aturan perutean.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "IDE Antigravitasi Google dengan MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm."
},
"context-relay": {
"when": "Use when long sessions must survive account rotation without losing the working context.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"incidentMode": "Incident Mode",
"builderLoadingProviders": "Loading providers...",
"builderTitle": "Build a Combo",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"reviewSteps": "Steps",
"builderStage": {
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
},
"review": {
"description": "Final validation before saving",
"label": "Review"
}
},
"reviewAdvanced": "Advanced Settings",
"builderComboRefStep": "Add combo reference",
"builderProvider": "Provider",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"weightStability": "Stability",
"builderStageCurrent": "Current stage",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"activeModePack": "Active Mode Pack",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"builderSelectModel": "Select model",
"reviewSequence": "Model Sequence",
"noExcludedProviders": "No providers are currently excluded.",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"builderSelectProvider": "Select provider",
"budgetCapLabel": "Budget Cap (USD / request)",
"excludedProviders": "Excluded Providers",
"builderStagePending": "Pending",
"reviewNoSteps": "No steps configured",
"reviewStrategy": "Strategy",
"candidatePoolEmpty": "No active providers available yet.",
"weightQuota": "Quota",
"budgetCapPlaceholder": "No limit",
"builderStageLocked": "Locked — complete previous stage first",
"failedReorder": "Failed to reorder models",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"weightCostInv": "Cost",
"builderLegacyEntry": "Legacy entry",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"weightHealth": "Health",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"reviewComboRefs": "Combo References",
"weightTierPriority": "Tier",
"statusOverview": "Status Overview",
"explorationRateLabel": "Exploration Rate",
"emailVisibilityStateOn": "On",
"candidatePoolLabel": "Candidate Pool",
"reorderHandle": "Drag to reorder",
"builderModel": "Model",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"reviewIntelligentTitle": "Intelligent Routing Config",
"reviewProviders": "Providers",
"contextRelaySummaryModel": "Summary Model",
"normalOperation": "Normal Operation",
"strategyRules": "Rules (6-Factor Scoring)",
"filterDeterministic": "Deterministic",
"cooldownMinutes": "Cooldown: {minutes}m",
"builderBrowseCatalog": "Browse catalog",
"contextRelayMaxMessages": "Max Messages For Summary",
"weightTaskFit": "Task Fit",
"builderAddStep": "Add step",
"reviewName": "Name",
"providerScores": "Provider Scores",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"builderPinnedAccount": "Pinned Account",
"builderAddComboRef": "Add combo reference",
"builderAccount": "Account",
"filterIntelligent": "Intelligent",
"contextRelay": "Context Relay",
"builderFlowTitle": "Combo Builder Flow",
"builderStageVisited": "Stage completed",
"modePackLabel": "Mode Pack",
"routerStrategyLabel": "Router Strategy",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"builderPreview": "Preview",
"emailVisibilityStateOff": "Off",
"filterAll": "All",
"builderComboRef": "Combo Ref",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"builderProviderFirst": "Pick provider first",
"candidatePoolAllProviders": "All providers",
"reviewAgentFlags": "Agent Flags",
"weightLatencyInv": "Latency",
"reviewAccounts": "Accounts",
"filterEmptyTitle": "No combos match this strategy filter.",
"modePackUpdated": "Mode pack updated to {pack}.",
"contextRelayHandoffThreshold": "Handoff Threshold"
},
"costs": {
"title": "Biaya",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicGeneration": "Music Generation",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"deselectAllModels": "Deselect all",
"repairEnvFailed": "Failed to repair .env",
"modelsActiveCount": "{active}/{total} active",
"audioSpeech": "Audio Speech",
"selectAllModels": "Select all",
"repairEnvWorking": "Repairing...",
"hideEmails": "Hide all emails",
"repairEnv": "Repair env",
"repairEnvSuccess": "OAuth defaults restored",
"embeddings": "Embeddings",
"showEmails": "Show all emails",
"imagesGenerations": "Images Generations",
"noModelsMatch": "No models match \"{filter}\"",
"audioTranscriptions": "Audio Transcriptions"
},
"settings": {
"title": "Pengaturan",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos."
},
"translator": {
"title": "Penerjemah",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
"waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
"waitingForQoderAuthorization": "Waiting for Qoder authorization...",
"exchangingCodeForTokens": "Exchanging code for tokens..."
"exchangingCodeForTokens": "Exchanging code for tokens...",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended."
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"activityVolume": "Activity",
"cacheRateDesc": "of total requests",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"peakCacheRate": "Peak Cache Rate",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"trendHour": "Hour",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"cacheRate": "Cache Rate",
"entriesLoadError": "Failed to load semantic cache entries.",
"cachedRequests24h": "Cached Requests (24h)",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"semanticCache": "Semantic Cache",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"hoursTracked": "hours tracked",
"lastUpdated": "Last updated",
"busiestHour": "Busiest Hour",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here."
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Impossibile salvare i prezzi",
"Failed to reset pricing": "Impossibile reimpostare i prezzi",
"apikey": "Chiave API",
"http": "HTTP"
"http": "HTTP",
"checkSystemStatus": "Check System Status",
"goToDashboard": "Go to Dashboard",
"nothingHere": "Nothing here yet"
},
"sidebar": {
"home": "Casa",
@@ -640,7 +643,8 @@
"opencode": "Utilizzalo quando preferisci l'esecuzione dell'agente nativo del terminale e l'automazione basata su script tramite OpenCode.",
"kiro": "Da utilizzare quando si integra Kiro e si controlla l'instradamento del modello centralmente da OmniRoute.",
"antigravity": "Da utilizzare quando il traffico Antigravity/Kiro deve essere intercettato tramite MITM e instradato a OmniRoute.",
"copilot": "Utilizzalo quando desideri un'esperienza utente in stile chat Copilot applicando al tempo stesso le chiavi OmniRoute e le regole di routing."
"copilot": "Utilizzalo quando desideri un'esperienza utente in stile chat Copilot applicando al tempo stesso le chiavi OmniRoute e le regole di routing.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "IDE Antigravità di Google con MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"context-relay": {
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"when": "Use when long sessions must survive account rotation without losing the working context.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests."
},
"p2c": {
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"reorderHandle": "Drag to reorder",
"builderComboRef": "Combo Ref",
"builderStage": {
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"basics": {
"description": "Name and starting template",
"label": "Basics"
},
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"intelligent": {
"description": "Auto-routing candidate pool, presets, and scoring",
"label": "Smart Routing"
}
},
"budgetCapLabel": "Budget Cap (USD / request)",
"reviewIntelligentTitle": "Intelligent Routing Config",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"builderProviderFirst": "Pick provider first",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"emailVisibilityStateOff": "Off",
"reviewProviders": "Providers",
"builderAddStep": "Add step",
"candidatePoolAllProviders": "All providers",
"builderBrowseCatalog": "Browse catalog",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"strategyRules": "Rules (6-Factor Scoring)",
"builderTitle": "Build a Combo",
"statusOverview": "Status Overview",
"modePackUpdated": "Mode pack updated to {pack}.",
"reviewNoSteps": "No steps configured",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"builderStageCurrent": "Current stage",
"reviewSequence": "Model Sequence",
"filterDeterministic": "Deterministic",
"reviewStrategy": "Strategy",
"builderPreview": "Preview",
"budgetCapPlaceholder": "No limit",
"candidatePoolEmpty": "No active providers available yet.",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"builderFlowTitle": "Combo Builder Flow",
"weightTierPriority": "Tier",
"contextRelayMaxMessages": "Max Messages For Summary",
"builderComboRefStep": "Add combo reference",
"filterEmptyTitle": "No combos match this strategy filter.",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"builderSelectModel": "Select model",
"reviewSteps": "Steps",
"cooldownMinutes": "Cooldown: {minutes}m",
"weightQuota": "Quota",
"activeModePack": "Active Mode Pack",
"explorationRateLabel": "Exploration Rate",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"builderAddComboRef": "Add combo reference",
"builderPinnedAccount": "Pinned Account",
"normalOperation": "Normal Operation",
"failedReorder": "Failed to reorder models",
"reviewAgentFlags": "Agent Flags",
"weightTaskFit": "Task Fit",
"builderModel": "Model",
"reviewComboRefs": "Combo References",
"modePackLabel": "Mode Pack",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"builderAccount": "Account",
"reviewAdvanced": "Advanced Settings",
"filterAll": "All",
"weightHealth": "Health",
"excludedProviders": "Excluded Providers",
"weightStability": "Stability",
"builderProvider": "Provider",
"candidatePoolLabel": "Candidate Pool",
"weightLatencyInv": "Latency",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"filterIntelligent": "Intelligent",
"builderLegacyEntry": "Legacy entry",
"builderSelectProvider": "Select provider",
"incidentMode": "Incident Mode",
"contextRelaySummaryModel": "Summary Model",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"builderStageLocked": "Locked — complete previous stage first",
"providerScores": "Provider Scores",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"builderLoadingProviders": "Loading providers...",
"builderStageVisited": "Stage completed",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"builderStagePending": "Pending",
"reviewName": "Name",
"noExcludedProviders": "No providers are currently excluded.",
"emailVisibilityStateOn": "On",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"contextRelay": "Context Relay",
"reviewAccounts": "Accounts",
"weightCostInv": "Cost",
"routerStrategyLabel": "Router Strategy",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model."
},
"costs": {
"title": "Costi",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicGeneration": "Music Generation",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"imagesGenerations": "Images Generations",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"noModelsMatch": "No models match \"{filter}\"",
"audioTranscriptions": "Audio Transcriptions",
"deselectAllModels": "Deselect all",
"repairEnvSuccess": "OAuth defaults restored",
"modelsActiveCount": "{active}/{total} active",
"selectAllModels": "Select all",
"audioSpeech": "Audio Speech",
"repairEnv": "Repair env",
"repairEnvFailed": "Failed to repair .env",
"hideEmails": "Hide all emails",
"repairEnvWorking": "Repairing...",
"embeddings": "Embeddings",
"showEmails": "Show all emails"
},
"settings": {
"title": "Impostazioni",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayMaxMessages": "Max Messages For Summary"
},
"translator": {
"title": "Traduttore",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
"waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
"waitingForQoderAuthorization": "Waiting for Qoder authorization...",
"exchangingCodeForTokens": "Exchanging code for tokens..."
"exchangingCodeForTokens": "Exchanging code for tokens...",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release"
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"hoursTracked": "hours tracked",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"activityVolume": "Activity",
"peakCacheRate": "Peak Cache Rate",
"trendHour": "Hour",
"cacheRateDesc": "of total requests",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"cacheRate": "Cache Rate",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"busiestHour": "Busiest Hour",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"cachedRequests24h": "Cached Requests (24h)",
"lastUpdated": "Last updated",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"entriesLoadError": "Failed to load semantic cache entries.",
"semanticCache": "Semantic Cache",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet."
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "価格設定を保存できませんでした",
"Failed to reset pricing": "価格設定のリセットに失敗しました",
"apikey": "APIキー",
"http": "HTTP"
"http": "HTTP",
"checkSystemStatus": "Check System Status",
"nothingHere": "Nothing here yet",
"goToDashboard": "Go to Dashboard"
},
"sidebar": {
"home": "ホーム",
@@ -640,7 +643,8 @@
"opencode": "ターミナルネイティブのエージェントの実行と OpenCode によるスクリプトによる自動化を希望する場合に使用します。",
"kiro": "Kiro を統合し、OmniRoute からモデルのルーティングを一元的に制御する場合に使用します。",
"antigravity": "Antigravity/Kiro トラフィックを MITM 経由でインターセプトし、OmniRoute にルーティングする必要がある場合に使用します。",
"copilot": "OmniRoute キーとルーティング ルールを適用しながら、Copilot チャット スタイルの UX が必要な場合に使用します。"
"copilot": "OmniRoute キーとルーティング ルールを適用しながら、Copilot チャット スタイルの UX が必要な場合に使用します。",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "MITM を備えた Google Antigravity IDE",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"context-relay": {
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"when": "Use when long sessions must survive account rotation without losing the working context."
},
"p2c": {
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"explorationRateLabel": "Exploration Rate",
"builderFlowTitle": "Combo Builder Flow",
"builderStage": {
"basics": {
"description": "Name and starting template",
"label": "Basics"
},
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
}
},
"budgetCapLabel": "Budget Cap (USD / request)",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"builderBrowseCatalog": "Browse catalog",
"builderSelectModel": "Select model",
"emailVisibilityStateOff": "Off",
"noExcludedProviders": "No providers are currently excluded.",
"excludedProviders": "Excluded Providers",
"modePackUpdated": "Mode pack updated to {pack}.",
"statusOverview": "Status Overview",
"builderStageLocked": "Locked — complete previous stage first",
"builderPinnedAccount": "Pinned Account",
"reviewIntelligentTitle": "Intelligent Routing Config",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"reviewStrategy": "Strategy",
"normalOperation": "Normal Operation",
"weightStability": "Stability",
"contextRelaySummaryModel": "Summary Model",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"incidentMode": "Incident Mode",
"candidatePoolEmpty": "No active providers available yet.",
"reviewProviders": "Providers",
"strategyRules": "Rules (6-Factor Scoring)",
"builderAddComboRef": "Add combo reference",
"candidatePoolAllProviders": "All providers",
"contextRelay": "Context Relay",
"filterAll": "All",
"weightTaskFit": "Task Fit",
"weightTierPriority": "Tier",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"weightQuota": "Quota",
"builderComboRef": "Combo Ref",
"weightCostInv": "Cost",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"candidatePoolLabel": "Candidate Pool",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"filterIntelligent": "Intelligent",
"cooldownMinutes": "Cooldown: {minutes}m",
"builderStageCurrent": "Current stage",
"weightHealth": "Health",
"builderComboRefStep": "Add combo reference",
"reviewComboRefs": "Combo References",
"builderPreview": "Preview",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"builderProvider": "Provider",
"reviewSequence": "Model Sequence",
"filterDeterministic": "Deterministic",
"builderProviderFirst": "Pick provider first",
"modePackLabel": "Mode Pack",
"reviewAccounts": "Accounts",
"builderLoadingProviders": "Loading providers...",
"providerScores": "Provider Scores",
"builderModel": "Model",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"failedReorder": "Failed to reorder models",
"builderLegacyEntry": "Legacy entry",
"routerStrategyLabel": "Router Strategy",
"activeModePack": "Active Mode Pack",
"builderStagePending": "Pending",
"reorderHandle": "Drag to reorder",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"reviewAdvanced": "Advanced Settings",
"weightLatencyInv": "Latency",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"reviewSteps": "Steps",
"budgetCapPlaceholder": "No limit",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"builderAddStep": "Add step",
"builderStageVisited": "Stage completed",
"builderAccount": "Account",
"reviewName": "Name",
"builderSelectProvider": "Select provider",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"filterEmptyTitle": "No combos match this strategy filter.",
"builderTitle": "Build a Combo",
"reviewAgentFlags": "Agent Flags",
"emailVisibilityStateOn": "On",
"contextRelayMaxMessages": "Max Messages For Summary",
"reviewNoSteps": "No steps configured",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity."
},
"costs": {
"title": "コスト",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicGeneration": "Music Generation",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)"
},
"endpoints": {
"tabProxy": "エンドポイント プロキシ",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"embeddings": "Embeddings",
"repairEnvSuccess": "OAuth defaults restored",
"audioSpeech": "Audio Speech",
"repairEnvWorking": "Repairing...",
"audioTranscriptions": "Audio Transcriptions",
"noModelsMatch": "No models match \"{filter}\"",
"repairEnvFailed": "Failed to repair .env",
"imagesGenerations": "Images Generations",
"showEmails": "Show all emails",
"repairEnv": "Repair env",
"deselectAllModels": "Deselect all",
"selectAllModels": "Select all",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"modelsActiveCount": "{active}/{total} active",
"hideEmails": "Hide all emails"
},
"settings": {
"title": "設定",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold"
},
"translator": {
"title": "翻訳者",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
"waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
"waitingForQoderAuthorization": "Waiting for Qoder authorization...",
"exchangingCodeForTokens": "Exchanging code for tokens..."
"exchangingCodeForTokens": "Exchanging code for tokens...",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release."
},
"landing": {
"brandName": "オムニルート",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"cachedRequests24h": "Cached Requests (24h)",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"trendHour": "Hour",
"cacheRate": "Cache Rate",
"hoursTracked": "hours tracked",
"entriesLoadError": "Failed to load semantic cache entries.",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"activityVolume": "Activity",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"peakCacheRate": "Peak Cache Rate",
"lastUpdated": "Last updated",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"busiestHour": "Busiest Hour",
"semanticCache": "Semantic Cache",
"cacheRateDesc": "of total requests",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings."
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "가격을 저장하지 못했습니다.",
"Failed to reset pricing": "가격을 재설정하지 못했습니다.",
"apikey": "API 키",
"http": "HTTP"
"http": "HTTP",
"goToDashboard": "Go to Dashboard",
"nothingHere": "Nothing here yet",
"checkSystemStatus": "Check System Status"
},
"sidebar": {
"home": "홈",
@@ -640,7 +643,8 @@
"opencode": "OpenCode를 통해 터미널 기반 에이전트 실행 및 스크립트 자동화를 선호할 때 사용하세요.",
"kiro": "Kiro를 통합하고 OmniRoute에서 중앙에서 모델 라우팅을 제어할 때 사용합니다.",
"antigravity": "Antigravity/Kiro 트래픽이 MITM을 통해 가로채어 OmniRoute로 라우팅되어야 하는 경우에 사용합니다.",
"copilot": "OmniRoute 키와 라우팅 규칙을 적용하면서 Copilot 채팅 스타일 UX를 원할 때 사용하세요."
"copilot": "OmniRoute 키와 라우팅 규칙을 적용하면서 Copilot 채팅 스타일 UX를 원할 때 사용하세요.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "MITM이 포함된 Google 반중력 IDE",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints."
},
"context-relay": {
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"when": "Use when long sessions must survive account rotation without losing the working context."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"filterAll": "All",
"builderAddComboRef": "Add combo reference",
"cooldownMinutes": "Cooldown: {minutes}m",
"excludedProviders": "Excluded Providers",
"emailVisibilityStateOn": "On",
"builderStage": {
"intelligent": {
"description": "Auto-routing candidate pool, presets, and scoring",
"label": "Smart Routing"
},
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
}
},
"builderLoadingProviders": "Loading providers...",
"providerScores": "Provider Scores",
"filterDeterministic": "Deterministic",
"weightCostInv": "Cost",
"builderAddStep": "Add step",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"incidentMode": "Incident Mode",
"builderPinnedAccount": "Pinned Account",
"builderProvider": "Provider",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"weightTierPriority": "Tier",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"builderStagePending": "Pending",
"reviewAgentFlags": "Agent Flags",
"builderSelectModel": "Select model",
"normalOperation": "Normal Operation",
"builderBrowseCatalog": "Browse catalog",
"modePackUpdated": "Mode pack updated to {pack}.",
"activeModePack": "Active Mode Pack",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"noExcludedProviders": "No providers are currently excluded.",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"weightLatencyInv": "Latency",
"weightStability": "Stability",
"builderComboRefStep": "Add combo reference",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"statusOverview": "Status Overview",
"reviewSteps": "Steps",
"failedReorder": "Failed to reorder models",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"builderSelectProvider": "Select provider",
"builderModel": "Model",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"builderStageVisited": "Stage completed",
"weightQuota": "Quota",
"builderStageLocked": "Locked — complete previous stage first",
"reviewNoSteps": "No steps configured",
"candidatePoolLabel": "Candidate Pool",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"reviewName": "Name",
"builderProviderFirst": "Pick provider first",
"reviewIntelligentTitle": "Intelligent Routing Config",
"routerStrategyLabel": "Router Strategy",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"weightTaskFit": "Task Fit",
"builderStageCurrent": "Current stage",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"contextRelayMaxMessages": "Max Messages For Summary",
"reviewAccounts": "Accounts",
"reviewProviders": "Providers",
"builderLegacyEntry": "Legacy entry",
"strategyRules": "Rules (6-Factor Scoring)",
"builderPreview": "Preview",
"candidatePoolAllProviders": "All providers",
"builderComboRef": "Combo Ref",
"builderFlowTitle": "Combo Builder Flow",
"builderTitle": "Build a Combo",
"reviewSequence": "Model Sequence",
"filterIntelligent": "Intelligent",
"filterEmptyTitle": "No combos match this strategy filter.",
"budgetCapPlaceholder": "No limit",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"reviewAdvanced": "Advanced Settings",
"weightHealth": "Health",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"candidatePoolEmpty": "No active providers available yet.",
"explorationRateLabel": "Exploration Rate",
"reorderHandle": "Drag to reorder",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"emailVisibilityStateOff": "Off",
"contextRelaySummaryModel": "Summary Model",
"reviewStrategy": "Strategy",
"reviewComboRefs": "Combo References",
"modePackLabel": "Mode Pack",
"contextRelay": "Context Relay",
"budgetCapLabel": "Budget Cap (USD / request)",
"builderAccount": "Account"
},
"costs": {
"title": "비용",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicGeneration": "Music Generation",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)"
},
"endpoints": {
"tabProxy": "엔드포인트 프록시",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"noModelsMatch": "No models match \"{filter}\"",
"embeddings": "Embeddings",
"deselectAllModels": "Deselect all",
"modelsActiveCount": "{active}/{total} active",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"repairEnvWorking": "Repairing...",
"imagesGenerations": "Images Generations",
"audioSpeech": "Audio Speech",
"showEmails": "Show all emails",
"audioTranscriptions": "Audio Transcriptions",
"selectAllModels": "Select all",
"repairEnvFailed": "Failed to repair .env",
"hideEmails": "Hide all emails",
"repairEnv": "Repair env",
"repairEnvSuccess": "OAuth defaults restored"
},
"settings": {
"title": "설정",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold"
},
"translator": {
"title": "번역기",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
"waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
"waitingForQoderAuthorization": "Waiting for Qoder authorization...",
"exchangingCodeForTokens": "Exchanging code for tokens..."
"exchangingCodeForTokens": "Exchanging code for tokens...",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleTitle": "Incompatible Node.js Version"
},
"landing": {
"brandName": "옴니루트",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"hoursTracked": "hours tracked",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"cacheRateDesc": "of total requests",
"activityVolume": "Activity",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"cacheRate": "Cache Rate",
"entriesLoadError": "Failed to load semantic cache entries.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"semanticCache": "Semantic Cache",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"peakCacheRate": "Peak Cache Rate",
"busiestHour": "Busiest Hour",
"trendHour": "Hour",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"lastUpdated": "Last updated",
"cachedRequests24h": "Cached Requests (24h)"
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Gagal menyimpan harga",
"Failed to reset pricing": "Gagal menetapkan semula harga",
"apikey": "Kunci API",
"http": "HTTP"
"http": "HTTP",
"checkSystemStatus": "Check System Status",
"nothingHere": "Nothing here yet",
"goToDashboard": "Go to Dashboard"
},
"sidebar": {
"home": "Rumah",
@@ -640,7 +643,8 @@
"opencode": "Gunakan apabila anda lebih suka ejen terminal-native run dan automasi skrip melalui OpenCode.",
"kiro": "Gunakan apabila menyepadukan Kiro dan mengawal penghalaan model secara berpusat daripada OmniRoute.",
"antigravity": "Gunakan apabila trafik Antigraviti/Kiro mesti dipintas melalui MITM dan dihalakan ke OmniRoute.",
"copilot": "Gunakan apabila anda mahu Copilot gaya sembang UX sambil menguatkuasakan kekunci OmniRoute dan peraturan penghalaan."
"copilot": "Gunakan apabila anda mahu Copilot gaya sembang UX sambil menguatkuasakan kekunci OmniRoute dan peraturan penghalaan.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "IDE Antigraviti Google dengan MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints."
},
"context-relay": {
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"when": "Use when long sessions must survive account rotation without losing the working context.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"explorationRateLabel": "Exploration Rate",
"contextRelayMaxMessages": "Max Messages For Summary",
"builderStage": {
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"basics": {
"description": "Name and starting template",
"label": "Basics"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
}
},
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"builderComboRefStep": "Add combo reference",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"builderFlowTitle": "Combo Builder Flow",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"reviewAccounts": "Accounts",
"builderAddStep": "Add step",
"strategyRules": "Rules (6-Factor Scoring)",
"statusOverview": "Status Overview",
"reviewNoSteps": "No steps configured",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"reviewAgentFlags": "Agent Flags",
"reviewComboRefs": "Combo References",
"budgetCapPlaceholder": "No limit",
"builderStagePending": "Pending",
"modePackUpdated": "Mode pack updated to {pack}.",
"weightLatencyInv": "Latency",
"emailVisibilityStateOff": "Off",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"reviewIntelligentTitle": "Intelligent Routing Config",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"incidentMode": "Incident Mode",
"builderPinnedAccount": "Pinned Account",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"builderAddComboRef": "Add combo reference",
"budgetCapLabel": "Budget Cap (USD / request)",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"cooldownMinutes": "Cooldown: {minutes}m",
"filterAll": "All",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"reviewProviders": "Providers",
"providerScores": "Provider Scores",
"reviewSequence": "Model Sequence",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"modePackLabel": "Mode Pack",
"normalOperation": "Normal Operation",
"builderStageVisited": "Stage completed",
"builderProviderFirst": "Pick provider first",
"builderLegacyEntry": "Legacy entry",
"reorderHandle": "Drag to reorder",
"filterIntelligent": "Intelligent",
"activeModePack": "Active Mode Pack",
"contextRelay": "Context Relay",
"filterEmptyTitle": "No combos match this strategy filter.",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"candidatePoolLabel": "Candidate Pool",
"reviewSteps": "Steps",
"weightHealth": "Health",
"builderTitle": "Build a Combo",
"candidatePoolAllProviders": "All providers",
"builderSelectProvider": "Select provider",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"builderComboRef": "Combo Ref",
"weightTaskFit": "Task Fit",
"builderStageCurrent": "Current stage",
"builderBrowseCatalog": "Browse catalog",
"filterDeterministic": "Deterministic",
"builderModel": "Model",
"builderStageLocked": "Locked — complete previous stage first",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"emailVisibilityStateOn": "On",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"weightTierPriority": "Tier",
"builderAccount": "Account",
"builderSelectModel": "Select model",
"builderProvider": "Provider",
"reviewStrategy": "Strategy",
"contextRelaySummaryModel": "Summary Model",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"weightCostInv": "Cost",
"excludedProviders": "Excluded Providers",
"reviewName": "Name",
"weightQuota": "Quota",
"contextRelayHandoffThreshold": "Handoff Threshold",
"candidatePoolEmpty": "No active providers available yet.",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"builderLoadingProviders": "Loading providers...",
"reviewAdvanced": "Advanced Settings",
"weightStability": "Stability",
"noExcludedProviders": "No providers are currently excluded.",
"routerStrategyLabel": "Router Strategy",
"failedReorder": "Failed to reorder models",
"builderPreview": "Preview"
},
"costs": {
"title": "Kos",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Hantar permintaan JSON-RPC ke `POST /a2a` menggunakan `message/send` atau `message/stream`.",
"a2aQuickStartStep3": "Jejak dan kawal tugas menggunakan `tasks/get` dan `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"noModelsMatch": "No models match \"{filter}\"",
"deselectAllModels": "Deselect all",
"selectAllModels": "Select all",
"repairEnvFailed": "Failed to repair .env",
"audioSpeech": "Audio Speech",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"audioTranscriptions": "Audio Transcriptions",
"embeddings": "Embeddings",
"modelsActiveCount": "{active}/{total} active",
"repairEnvWorking": "Repairing...",
"imagesGenerations": "Images Generations",
"hideEmails": "Hide all emails",
"repairEnvSuccess": "OAuth defaults restored",
"showEmails": "Show all emails",
"repairEnv": "Repair env"
},
"settings": {
"title": "tetapan",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model"
},
"translator": {
"title": "Penterjemah",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Menunggu kebenaran OpenAI...",
"waitingForAntigravityAuthorization": "Menunggu kebenaran Antigraviti...",
"waitingForQoderAuthorization": "Menunggu kebenaran Qoder...",
"exchangingCodeForTokens": "Bertukar kod untuk token..."
"exchangingCodeForTokens": "Bertukar kod untuk token...",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release."
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"entriesLoadError": "Failed to load semantic cache entries.",
"semanticCache": "Semantic Cache",
"trendHour": "Hour",
"cachedRequests24h": "Cached Requests (24h)",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"busiestHour": "Busiest Hour",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"hoursTracked": "hours tracked",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"cacheRate": "Cache Rate",
"activityVolume": "Activity",
"cacheRateDesc": "of total requests",
"peakCacheRate": "Peak Cache Rate",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"lastUpdated": "Last updated"
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Kan de prijzen niet opslaan",
"Failed to reset pricing": "Kan de prijzen niet opnieuw instellen",
"apikey": "API-sleutel",
"http": "HTTP"
"http": "HTTP",
"goToDashboard": "Go to Dashboard",
"checkSystemStatus": "Check System Status",
"nothingHere": "Nothing here yet"
},
"sidebar": {
"home": "Thuis",
@@ -640,7 +643,8 @@
"opencode": "Gebruik dit wanneer u de voorkeur geeft aan terminal-native agentruns en scriptautomatisering via OpenCode.",
"kiro": "Te gebruiken bij het integreren van Kiro en het centraal beheren van modelrouting vanuit OmniRoute.",
"antigravity": "Gebruik wanneer Antigravity/Kiro-verkeer moet worden onderschept via MITM en naar OmniRoute moet worden gerouteerd.",
"copilot": "Gebruik wanneer u UX in Copilot-chatstijl wilt terwijl u OmniRoute-sleutels en routeringsregels afdwingt."
"copilot": "Gebruik wanneer u UX in Copilot-chatstijl wilt terwijl u OmniRoute-sleutels en routeringsregels afdwingt.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE met MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm."
},
"context-relay": {
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"when": "Use when long sessions must survive account rotation without losing the working context.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"builderTitle": "Build a Combo",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"weightTierPriority": "Tier",
"reviewAccounts": "Accounts",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"weightLatencyInv": "Latency",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"reviewAdvanced": "Advanced Settings",
"reviewName": "Name",
"weightQuota": "Quota",
"modePackLabel": "Mode Pack",
"noExcludedProviders": "No providers are currently excluded.",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"reorderHandle": "Drag to reorder",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"builderStage": {
"review": {
"description": "Final validation before saving",
"label": "Review"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
}
},
"builderProvider": "Provider",
"reviewNoSteps": "No steps configured",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"reviewIntelligentTitle": "Intelligent Routing Config",
"activeModePack": "Active Mode Pack",
"builderComboRef": "Combo Ref",
"builderComboRefStep": "Add combo reference",
"builderPreview": "Preview",
"reviewStrategy": "Strategy",
"builderStageLocked": "Locked — complete previous stage first",
"budgetCapPlaceholder": "No limit",
"builderProviderFirst": "Pick provider first",
"reviewProviders": "Providers",
"incidentMode": "Incident Mode",
"reviewSteps": "Steps",
"weightStability": "Stability",
"filterDeterministic": "Deterministic",
"budgetCapLabel": "Budget Cap (USD / request)",
"candidatePoolAllProviders": "All providers",
"builderSelectModel": "Select model",
"routerStrategyLabel": "Router Strategy",
"filterIntelligent": "Intelligent",
"builderLegacyEntry": "Legacy entry",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"filterEmptyTitle": "No combos match this strategy filter.",
"providerScores": "Provider Scores",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"candidatePoolEmpty": "No active providers available yet.",
"normalOperation": "Normal Operation",
"contextRelaySummaryModel": "Summary Model",
"builderAccount": "Account",
"failedReorder": "Failed to reorder models",
"reviewSequence": "Model Sequence",
"builderStageVisited": "Stage completed",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"excludedProviders": "Excluded Providers",
"builderModel": "Model",
"builderAddComboRef": "Add combo reference",
"builderStagePending": "Pending",
"builderPinnedAccount": "Pinned Account",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"weightCostInv": "Cost",
"weightTaskFit": "Task Fit",
"contextRelay": "Context Relay",
"statusOverview": "Status Overview",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"builderAddStep": "Add step",
"modePackUpdated": "Mode pack updated to {pack}.",
"builderLoadingProviders": "Loading providers...",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"builderSelectProvider": "Select provider",
"filterAll": "All",
"builderBrowseCatalog": "Browse catalog",
"builderStageCurrent": "Current stage",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"explorationRateLabel": "Exploration Rate",
"builderFlowTitle": "Combo Builder Flow",
"reviewAgentFlags": "Agent Flags",
"emailVisibilityStateOff": "Off",
"strategyRules": "Rules (6-Factor Scoring)",
"reviewComboRefs": "Combo References",
"candidatePoolLabel": "Candidate Pool",
"emailVisibilityStateOn": "On",
"contextRelayHandoffThreshold": "Handoff Threshold",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"cooldownMinutes": "Cooldown: {minutes}m",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"weightHealth": "Health"
},
"costs": {
"title": "Kosten",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicGeneration": "Music Generation",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"audioTranscriptions": "Audio Transcriptions",
"repairEnvFailed": "Failed to repair .env",
"hideEmails": "Hide all emails",
"repairEnvWorking": "Repairing...",
"embeddings": "Embeddings",
"repairEnv": "Repair env",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"noModelsMatch": "No models match \"{filter}\"",
"selectAllModels": "Select all",
"modelsActiveCount": "{active}/{total} active",
"repairEnvSuccess": "OAuth defaults restored",
"deselectAllModels": "Deselect all",
"imagesGenerations": "Images Generations",
"audioSpeech": "Audio Speech",
"showEmails": "Show all emails"
},
"settings": {
"title": "Instellingen",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos."
},
"translator": {
"title": "Vertaler",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Wachten op OpenAI-autorisatie...",
"waitingForAntigravityAuthorization": "Wachten op toestemming voor anti-zwaartekracht...",
"waitingForQoderAuthorization": "Wachten op Qoder-autorisatie...",
"exchangingCodeForTokens": "Code uitwisselen voor tokens..."
"exchangingCodeForTokens": "Code uitwisselen voor tokens...",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release"
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"hoursTracked": "hours tracked",
"busiestHour": "Busiest Hour",
"lastUpdated": "Last updated",
"activityVolume": "Activity",
"trendHour": "Hour",
"semanticCache": "Semantic Cache",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"entriesLoadError": "Failed to load semantic cache entries.",
"cacheRateDesc": "of total requests",
"cachedRequests24h": "Cached Requests (24h)",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"cacheRate": "Cache Rate",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"peakCacheRate": "Peak Cache Rate"
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Kunne ikke lagre prisen",
"Failed to reset pricing": "Kunne ikke tilbakestille priser",
"apikey": "API-nøkkel",
"http": "HTTP"
"http": "HTTP",
"goToDashboard": "Go to Dashboard",
"checkSystemStatus": "Check System Status",
"nothingHere": "Nothing here yet"
},
"sidebar": {
"home": "Hjem",
@@ -640,7 +643,8 @@
"opencode": "Bruk når du foretrekker terminal-native agentkjøringer og skriptautomatisering via OpenCode.",
"kiro": "Brukes når du integrerer Kiro og kontrollerer modellruting sentralt fra OmniRoute.",
"antigravity": "Brukes når Antigravity/Kiro-trafikk må avskjæres gjennom MITM og rutes til OmniRoute.",
"copilot": "Bruk når du vil ha Copilot chat-stil UX mens du håndhever OmniRoute-nøkler og rutingsregler."
"copilot": "Bruk når du vil ha Copilot chat-stil UX mens du håndhever OmniRoute-nøkler og rutingsregler.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE med MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"context-relay": {
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"when": "Use when long sessions must survive account rotation without losing the working context."
},
"p2c": {
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"reviewComboRefs": "Combo References",
"builderAddComboRef": "Add combo reference",
"reviewAgentFlags": "Agent Flags",
"filterAll": "All",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"builderStage": {
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
},
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"intelligent": {
"description": "Auto-routing candidate pool, presets, and scoring",
"label": "Smart Routing"
},
"basics": {
"description": "Name and starting template",
"label": "Basics"
}
},
"cooldownMinutes": "Cooldown: {minutes}m",
"builderAccount": "Account",
"candidatePoolLabel": "Candidate Pool",
"builderLegacyEntry": "Legacy entry",
"builderProviderFirst": "Pick provider first",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"incidentMode": "Incident Mode",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"explorationRateLabel": "Exploration Rate",
"contextRelaySummaryModel": "Summary Model",
"noExcludedProviders": "No providers are currently excluded.",
"weightHealth": "Health",
"budgetCapLabel": "Budget Cap (USD / request)",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"builderTitle": "Build a Combo",
"builderFlowTitle": "Combo Builder Flow",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"builderModel": "Model",
"builderStageCurrent": "Current stage",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"weightTaskFit": "Task Fit",
"builderComboRefStep": "Add combo reference",
"emailVisibilityStateOff": "Off",
"normalOperation": "Normal Operation",
"reorderHandle": "Drag to reorder",
"weightCostInv": "Cost",
"activeModePack": "Active Mode Pack",
"candidatePoolAllProviders": "All providers",
"builderStageLocked": "Locked — complete previous stage first",
"emailVisibilityStateOn": "On",
"providerScores": "Provider Scores",
"excludedProviders": "Excluded Providers",
"filterEmptyTitle": "No combos match this strategy filter.",
"reviewSequence": "Model Sequence",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"failedReorder": "Failed to reorder models",
"builderStagePending": "Pending",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"weightStability": "Stability",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"filterIntelligent": "Intelligent",
"builderSelectModel": "Select model",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"strategyRules": "Rules (6-Factor Scoring)",
"builderComboRef": "Combo Ref",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"builderLoadingProviders": "Loading providers...",
"builderPinnedAccount": "Pinned Account",
"reviewNoSteps": "No steps configured",
"reviewAccounts": "Accounts",
"modePackLabel": "Mode Pack",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"statusOverview": "Status Overview",
"builderProvider": "Provider",
"contextRelay": "Context Relay",
"builderAddStep": "Add step",
"weightQuota": "Quota",
"candidatePoolEmpty": "No active providers available yet.",
"builderBrowseCatalog": "Browse catalog",
"reviewIntelligentTitle": "Intelligent Routing Config",
"contextRelayMaxMessages": "Max Messages For Summary",
"reviewName": "Name",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"modePackUpdated": "Mode pack updated to {pack}.",
"reviewSteps": "Steps",
"weightLatencyInv": "Latency",
"builderPreview": "Preview",
"filterDeterministic": "Deterministic",
"reviewAdvanced": "Advanced Settings",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"budgetCapPlaceholder": "No limit",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"builderSelectProvider": "Select provider",
"reviewStrategy": "Strategy",
"routerStrategyLabel": "Router Strategy",
"weightTierPriority": "Tier",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"builderStageVisited": "Stage completed",
"reviewProviders": "Providers"
},
"costs": {
"title": "Kostnader",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC-forespørsler til `POST /a2a` ved å bruke `message/send` eller `message/stream`.",
"a2aQuickStartStep3": "Spor og kontroller oppgaver ved å bruke `tasks/get` og `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"audioSpeech": "Audio Speech",
"repairEnv": "Repair env",
"hideEmails": "Hide all emails",
"repairEnvWorking": "Repairing...",
"repairEnvFailed": "Failed to repair .env",
"repairEnvSuccess": "OAuth defaults restored",
"selectAllModels": "Select all",
"audioTranscriptions": "Audio Transcriptions",
"imagesGenerations": "Images Generations",
"embeddings": "Embeddings",
"noModelsMatch": "No models match \"{filter}\"",
"deselectAllModels": "Deselect all",
"showEmails": "Show all emails",
"modelsActiveCount": "{active}/{total} active"
},
"settings": {
"title": "Innstillinger",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos."
},
"translator": {
"title": "Oversetter",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Venter på OpenAI-godkjenning...",
"waitingForAntigravityAuthorization": "Venter på antigravity-autorisasjon...",
"waitingForQoderAuthorization": "Venter på Qoder-autorisasjon...",
"exchangingCodeForTokens": "Utveksler kode for tokens..."
"exchangingCodeForTokens": "Utveksler kode for tokens...",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release"
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"busiestHour": "Busiest Hour",
"cachedRequests24h": "Cached Requests (24h)",
"activityVolume": "Activity",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"peakCacheRate": "Peak Cache Rate",
"cacheRate": "Cache Rate",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"semanticCache": "Semantic Cache",
"lastUpdated": "Last updated",
"trendHour": "Hour",
"cacheRateDesc": "of total requests",
"hoursTracked": "hours tracked",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"entriesLoadError": "Failed to load semantic cache entries."
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Nabigong i-save ang pagpepresyo",
"Failed to reset pricing": "Nabigong i-reset ang pagpepresyo",
"apikey": "API Key",
"http": "HTTP"
"http": "HTTP",
"checkSystemStatus": "Check System Status",
"nothingHere": "Nothing here yet",
"goToDashboard": "Go to Dashboard"
},
"sidebar": {
"home": "Bahay",
@@ -640,7 +643,8 @@
"opencode": "Gamitin kapag mas gusto mo ang terminal-native agent run at scripted automation sa pamamagitan ng OpenCode.",
"kiro": "Gamitin kapag isinasama ang Kiro at kinokontrol ang pagruruta ng modelo sa gitna mula sa OmniRoute.",
"antigravity": "Gamitin kapag ang trapiko ng Antigravity/Kiro ay dapat ma-intercept sa MITM at iruta sa OmniRoute.",
"copilot": "Gamitin kapag gusto mong Copilot chat style UX habang ipinapatupad ang mga OmniRoute key at mga panuntunan sa pagruruta."
"copilot": "Gamitin kapag gusto mong Copilot chat style UX habang ipinapatupad ang mga OmniRoute key at mga panuntunan sa pagruruta.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE na may MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"context-relay": {
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"when": "Use when long sessions must survive account rotation without losing the working context.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests."
},
"p2c": {
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"contextRelaySummaryModel": "Summary Model",
"filterIntelligent": "Intelligent",
"normalOperation": "Normal Operation",
"strategyRules": "Rules (6-Factor Scoring)",
"providerScores": "Provider Scores",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"builderStageLocked": "Locked — complete previous stage first",
"weightLatencyInv": "Latency",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"emailVisibilityStateOff": "Off",
"statusOverview": "Status Overview",
"incidentMode": "Incident Mode",
"reviewName": "Name",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"builderProvider": "Provider",
"builderStageCurrent": "Current stage",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"builderStage": {
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
}
},
"failedReorder": "Failed to reorder models",
"reorderHandle": "Drag to reorder",
"builderAddStep": "Add step",
"reviewComboRefs": "Combo References",
"builderPreview": "Preview",
"builderLegacyEntry": "Legacy entry",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"filterAll": "All",
"contextRelay": "Context Relay",
"modePackLabel": "Mode Pack",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"excludedProviders": "Excluded Providers",
"builderFlowTitle": "Combo Builder Flow",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold",
"cooldownMinutes": "Cooldown: {minutes}m",
"reviewAgentFlags": "Agent Flags",
"weightHealth": "Health",
"builderModel": "Model",
"filterEmptyTitle": "No combos match this strategy filter.",
"reviewSteps": "Steps",
"budgetCapPlaceholder": "No limit",
"filterDeterministic": "Deterministic",
"modePackUpdated": "Mode pack updated to {pack}.",
"budgetCapLabel": "Budget Cap (USD / request)",
"builderAccount": "Account",
"reviewNoSteps": "No steps configured",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"builderComboRef": "Combo Ref",
"routerStrategyLabel": "Router Strategy",
"builderPinnedAccount": "Pinned Account",
"reviewSequence": "Model Sequence",
"reviewStrategy": "Strategy",
"builderSelectProvider": "Select provider",
"candidatePoolAllProviders": "All providers",
"reviewIntelligentTitle": "Intelligent Routing Config",
"builderBrowseCatalog": "Browse catalog",
"weightTaskFit": "Task Fit",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"builderStagePending": "Pending",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"weightCostInv": "Cost",
"builderLoadingProviders": "Loading providers...",
"builderComboRefStep": "Add combo reference",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"weightStability": "Stability",
"candidatePoolLabel": "Candidate Pool",
"noExcludedProviders": "No providers are currently excluded.",
"weightTierPriority": "Tier",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"reviewProviders": "Providers",
"builderSelectModel": "Select model",
"builderAddComboRef": "Add combo reference",
"reviewAccounts": "Accounts",
"builderProviderFirst": "Pick provider first",
"explorationRateLabel": "Exploration Rate",
"activeModePack": "Active Mode Pack",
"builderTitle": "Build a Combo",
"emailVisibilityStateOn": "On",
"builderStageVisited": "Stage completed",
"candidatePoolEmpty": "No active providers available yet.",
"weightQuota": "Quota",
"reviewAdvanced": "Advanced Settings"
},
"costs": {
"title": "Mga gastos",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Subaybayan at kontrolin ang mga gawain gamit ang `tasks/get` at `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"hideEmails": "Hide all emails",
"imagesGenerations": "Images Generations",
"audioSpeech": "Audio Speech",
"repairEnvSuccess": "OAuth defaults restored",
"audioTranscriptions": "Audio Transcriptions",
"showEmails": "Show all emails",
"modelsActiveCount": "{active}/{total} active",
"repairEnvFailed": "Failed to repair .env",
"repairEnv": "Repair env",
"embeddings": "Embeddings",
"selectAllModels": "Select all",
"deselectAllModels": "Deselect all",
"repairEnvWorking": "Repairing...",
"noModelsMatch": "No models match \"{filter}\"",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values."
},
"settings": {
"title": "Mga setting",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelaySummaryModel": "Summary Model"
},
"translator": {
"title": "Tagasalin",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Naghihintay ng awtorisasyon sa OpenAI...",
"waitingForAntigravityAuthorization": "Naghihintay ng awtorisasyon sa Antigravity...",
"waitingForQoderAuthorization": "Naghihintay ng awtorisasyon ng Qoder...",
"exchangingCodeForTokens": "Pagpapalit ng code para sa mga token..."
"exchangingCodeForTokens": "Pagpapalit ng code para sa mga token...",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release."
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"lastUpdated": "Last updated",
"semanticCache": "Semantic Cache",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"activityVolume": "Activity",
"peakCacheRate": "Peak Cache Rate",
"busiestHour": "Busiest Hour",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"cachedRequests24h": "Cached Requests (24h)",
"cacheRateDesc": "of total requests",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"hoursTracked": "hours tracked",
"cacheRate": "Cache Rate",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"entriesLoadError": "Failed to load semantic cache entries.",
"trendHour": "Hour"
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Nie udało się zapisać cen",
"Failed to reset pricing": "Nie udało się zresetować cen",
"apikey": "Klucz API",
"http": "HTTP"
"http": "HTTP",
"goToDashboard": "Go to Dashboard",
"nothingHere": "Nothing here yet",
"checkSystemStatus": "Check System Status"
},
"sidebar": {
"home": "Dom",
@@ -640,7 +643,8 @@
"opencode": "Użyj, jeśli wolisz uruchamianie agentów natywnych w terminalu i automatyzację skryptów za pośrednictwem OpenCode.",
"kiro": "Użyj podczas integracji Kiro i centralnego sterowania routingiem modeli z OmniRoute.",
"antigravity": "Użyj, gdy ruch antygrawitacyjny/Kiro musi zostać przechwycony przez MITM i skierowany do OmniRoute.",
"copilot": "Użyj, jeśli chcesz mieć UX w stylu czatu Copilot, jednocześnie wymuszając klucze OmniRoute i reguły routingu."
"copilot": "Użyj, jeśli chcesz mieć UX w stylu czatu Copilot, jednocześnie wymuszając klucze OmniRoute i reguły routingu.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE z MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm."
},
"context-relay": {
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"when": "Use when long sessions must survive account rotation without losing the working context."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"budgetCapLabel": "Budget Cap (USD / request)",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"modePackUpdated": "Mode pack updated to {pack}.",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"reviewSteps": "Steps",
"reviewAccounts": "Accounts",
"reorderHandle": "Drag to reorder",
"contextRelaySummaryModel": "Summary Model",
"filterAll": "All",
"activeModePack": "Active Mode Pack",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"providerScores": "Provider Scores",
"builderStage": {
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
},
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"intelligent": {
"description": "Auto-routing candidate pool, presets, and scoring",
"label": "Smart Routing"
},
"review": {
"description": "Final validation before saving",
"label": "Review"
}
},
"reviewAgentFlags": "Agent Flags",
"filterIntelligent": "Intelligent",
"builderLoadingProviders": "Loading providers...",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"excludedProviders": "Excluded Providers",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"weightLatencyInv": "Latency",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"builderLegacyEntry": "Legacy entry",
"weightTaskFit": "Task Fit",
"weightQuota": "Quota",
"builderSelectModel": "Select model",
"filterEmptyTitle": "No combos match this strategy filter.",
"builderProviderFirst": "Pick provider first",
"reviewName": "Name",
"builderStageLocked": "Locked — complete previous stage first",
"builderProvider": "Provider",
"budgetCapPlaceholder": "No limit",
"builderStageVisited": "Stage completed",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"builderTitle": "Build a Combo",
"builderAccount": "Account",
"weightHealth": "Health",
"contextRelayMaxMessages": "Max Messages For Summary",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"weightTierPriority": "Tier",
"emailVisibilityStateOn": "On",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"builderComboRefStep": "Add combo reference",
"reviewStrategy": "Strategy",
"builderSelectProvider": "Select provider",
"filterDeterministic": "Deterministic",
"reviewComboRefs": "Combo References",
"builderAddComboRef": "Add combo reference",
"reviewIntelligentTitle": "Intelligent Routing Config",
"modePackLabel": "Mode Pack",
"builderBrowseCatalog": "Browse catalog",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"builderAddStep": "Add step",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"weightStability": "Stability",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"builderStageCurrent": "Current stage",
"failedReorder": "Failed to reorder models",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"reviewProviders": "Providers",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"noExcludedProviders": "No providers are currently excluded.",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"cooldownMinutes": "Cooldown: {minutes}m",
"statusOverview": "Status Overview",
"contextRelayHandoffThreshold": "Handoff Threshold",
"builderPreview": "Preview",
"builderStagePending": "Pending",
"builderModel": "Model",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"strategyRules": "Rules (6-Factor Scoring)",
"candidatePoolAllProviders": "All providers",
"reviewAdvanced": "Advanced Settings",
"reviewSequence": "Model Sequence",
"reviewNoSteps": "No steps configured",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"weightCostInv": "Cost",
"incidentMode": "Incident Mode",
"candidatePoolLabel": "Candidate Pool",
"candidatePoolEmpty": "No active providers available yet.",
"normalOperation": "Normal Operation",
"builderFlowTitle": "Combo Builder Flow",
"contextRelay": "Context Relay",
"explorationRateLabel": "Exploration Rate",
"emailVisibilityStateOff": "Off",
"builderComboRef": "Combo Ref",
"builderPinnedAccount": "Pinned Account",
"routerStrategyLabel": "Router Strategy"
},
"costs": {
"title": "Koszty",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicGeneration": "Music Generation",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"audioTranscriptions": "Audio Transcriptions",
"repairEnvWorking": "Repairing...",
"hideEmails": "Hide all emails",
"modelsActiveCount": "{active}/{total} active",
"embeddings": "Embeddings",
"selectAllModels": "Select all",
"showEmails": "Show all emails",
"audioSpeech": "Audio Speech",
"deselectAllModels": "Deselect all",
"repairEnv": "Repair env",
"repairEnvFailed": "Failed to repair .env",
"imagesGenerations": "Images Generations",
"noModelsMatch": "No models match \"{filter}\"",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"repairEnvSuccess": "OAuth defaults restored"
},
"settings": {
"title": "Ustawienia",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelaySummaryModel": "Summary Model"
},
"translator": {
"title": "Tłumacz",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
"waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
"waitingForQoderAuthorization": "Waiting for Qoder authorization...",
"exchangingCodeForTokens": "Exchanging code for tokens..."
"exchangingCodeForTokens": "Exchanging code for tokens...",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleTitle": "Incompatible Node.js Version"
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"cacheRate": "Cache Rate",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"activityVolume": "Activity",
"hoursTracked": "hours tracked",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"entriesLoadError": "Failed to load semantic cache entries.",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"semanticCache": "Semantic Cache",
"cacheRateDesc": "of total requests",
"cachedRequests24h": "Cached Requests (24h)",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"lastUpdated": "Last updated",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"trendHour": "Hour",
"busiestHour": "Busiest Hour",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"peakCacheRate": "Peak Cache Rate"
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Falha ao salvar o preço",
"Failed to reset pricing": "Falha ao redefinir o preço",
"apikey": "Chave de API",
"http": "HTTP"
"http": "HTTP",
"nothingHere": "Nothing here yet",
"checkSystemStatus": "Check System Status",
"goToDashboard": "Go to Dashboard"
},
"sidebar": {
"home": "Início",
@@ -640,7 +643,8 @@
"opencode": "Use quando preferir execuções de agentes nativos de terminal e automação com script via OpenCode.",
"kiro": "Use ao integrar o Kiro e controlar o roteamento do modelo centralmente no OmniRoute.",
"antigravity": "Use quando o tráfego Antigravity/Kiro deve ser interceptado através do MITM e roteado para OmniRoute.",
"copilot": "Use quando desejar UX no estilo de bate-papo do Copilot enquanto impõe chaves OmniRoute e regras de roteamento."
"copilot": "Use quando desejar UX no estilo de bate-papo do Copilot enquanto impõe chaves OmniRoute e regras de roteamento.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE com MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — IDE com IA",
"windsurf": "Windsurf — Editor de Código com IA",
"copilot": "GitHub Copilot — Assistente de IA"
"copilot": "GitHub Copilot — Assistente de IA",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -899,6 +904,16 @@
"when": "Você quer distribuição perfeitamente uniforme — cada modelo é usado uma vez antes de repetir.",
"avoid": "Os modelos têm qualidade ou latência muito diferentes e a ordem importa.",
"example": "Múltiplas contas do mesmo modelo para distribuir uso de forma equilibrada."
},
"p2c": {
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm."
},
"context-relay": {
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"when": "Use when long sessions must survive account rotation without losing the working context.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
}
},
"advancedHelp": {
@@ -1018,7 +1033,108 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"builderPreview": "Preview",
"builderStage": {
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
},
"review": {
"description": "Final validation before saving",
"label": "Review"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
},
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
}
},
"routerStrategyLabel": "Router Strategy",
"emailVisibilityStateOn": "On",
"reviewAdvanced": "Advanced Settings",
"reviewComboRefs": "Combo References",
"weightStability": "Stability",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"builderComboRefStep": "Add combo reference",
"builderStageCurrent": "Current stage",
"builderStageVisited": "Stage completed",
"builderAccount": "Account",
"explorationRateLabel": "Exploration Rate",
"excludedProviders": "Excluded Providers",
"weightLatencyInv": "Latency",
"reorderHandle": "Drag to reorder",
"builderTitle": "Build a Combo",
"builderProviderFirst": "Pick provider first",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"statusOverview": "Status Overview",
"filterEmptyTitle": "No combos match this strategy filter.",
"builderStageLocked": "Locked — complete previous stage first",
"builderPinnedAccount": "Pinned Account",
"budgetCapLabel": "Budget Cap (USD / request)",
"modePackUpdated": "Mode pack updated to {pack}.",
"incidentMode": "Incident Mode",
"providerScores": "Provider Scores",
"noExcludedProviders": "No providers are currently excluded.",
"normalOperation": "Normal Operation",
"reviewProviders": "Providers",
"builderSelectModel": "Select model",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"builderFlowTitle": "Combo Builder Flow",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"filterIntelligent": "Intelligent",
"weightTierPriority": "Tier",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"filterDeterministic": "Deterministic",
"builderSelectProvider": "Select provider",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"budgetCapPlaceholder": "No limit",
"builderAddStep": "Add step",
"builderLegacyEntry": "Legacy entry",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"filterAll": "All",
"candidatePoolEmpty": "No active providers available yet.",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"builderComboRef": "Combo Ref",
"builderLoadingProviders": "Loading providers...",
"emailVisibilityStateOff": "Off",
"reviewSequence": "Model Sequence",
"reviewSteps": "Steps",
"candidatePoolLabel": "Candidate Pool",
"reviewAgentFlags": "Agent Flags",
"cooldownMinutes": "Cooldown: {minutes}m",
"modePackLabel": "Mode Pack",
"reviewName": "Name",
"weightHealth": "Health",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"activeModePack": "Active Mode Pack",
"reviewStrategy": "Strategy",
"candidatePoolAllProviders": "All providers",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"reviewIntelligentTitle": "Intelligent Routing Config",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"failedReorder": "Failed to reorder models",
"builderBrowseCatalog": "Browse catalog",
"weightTaskFit": "Task Fit",
"builderProvider": "Provider",
"reviewAccounts": "Accounts",
"strategyRules": "Rules (6-Factor Scoring)",
"weightCostInv": "Cost",
"builderAddComboRef": "Add combo reference",
"weightQuota": "Quota",
"reviewNoSteps": "No steps configured",
"builderModel": "Model",
"builderStagePending": "Pending",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo."
},
"costs": {
"title": "Custos",
@@ -1156,7 +1272,9 @@
"a2aQuickStartStep2": "Envie requisições JSON-RPC para `POST /a2a` usando `message/send` ou `message/stream`.",
"a2aQuickStartStep3": "Acompanhe e controle tarefas com `tasks/get` e `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1314,7 +1432,8 @@
"factual": "Factual",
"episodic": "Episódica",
"procedural": "Procedural",
"semantic": "Semântica"
"semantic": "Semântica",
"delete": "Delete"
},
"skills": {
"title": "Skills",
@@ -1813,7 +1932,18 @@
"statusBanned": "Banido / Sandbox Violation",
"statusCreditsExhausted": "Saldo Insuficiente",
"modelsImported": "{count} models imported",
"close": "Close"
"close": "Close",
"embeddings": "Embeddings",
"audioSpeech": "Audio Speech",
"imagesGenerations": "Images Generations",
"repairEnv": "Repair env",
"repairEnvFailed": "Failed to repair .env",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"showEmails": "Show all emails",
"repairEnvWorking": "Repairing...",
"repairEnvSuccess": "OAuth defaults restored",
"hideEmails": "Hide all emails",
"audioTranscriptions": "Audio Transcriptions"
},
"settings": {
"title": "Configurações",
@@ -2760,7 +2890,11 @@
"waitingForOpenAIAuthorization": "Aguardando autorização do OpenAI...",
"waitingForAntigravityAuthorization": "Aguardando autorização antigravidade...",
"waitingForQoderAuthorization": "Aguardando autorização do Qoder...",
"exchangingCodeForTokens": "Trocando código por tokens..."
"exchangingCodeForTokens": "Trocando código por tokens...",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended."
},
"landing": {
"brandName": "OmniRoute",
@@ -3176,6 +3310,25 @@
"deduplicatedRequests": "Requisições Desduplicadas",
"savedCalls": "Chamadas API Poupadas",
"totalProcessed": "Total Processado",
"peakCached": "Peak cached"
"peakCached": "Peak cached",
"entriesLoadError": "Failed to load semantic cache entries.",
"peakCacheRate": "Peak Cache Rate",
"semanticCache": "Semantic Cache",
"busiestHour": "Busiest Hour",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"activityVolume": "Activity",
"cachedRequests24h": "Cached Requests (24h)",
"cacheRate": "Cache Rate",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"lastUpdated": "Last updated",
"hoursTracked": "hours tracked",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"trendHour": "Hour",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"cacheRateDesc": "of total requests"
}
}

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Falha ao salvar o preço",
"Failed to reset pricing": "Falha ao redefinir o preço",
"apikey": "Chave de API",
"http": "HTTP"
"http": "HTTP",
"checkSystemStatus": "Check System Status",
"goToDashboard": "Go to Dashboard",
"nothingHere": "Nothing here yet"
},
"sidebar": {
"home": "Página inicial",
@@ -640,7 +643,8 @@
"opencode": "Use quando preferir execuções de agentes nativos de terminal e automação com script via OpenCode.",
"kiro": "Use ao integrar o Kiro e controlar o roteamento do modelo centralmente no OmniRoute.",
"antigravity": "Use quando o tráfego Antigravity/Kiro deve ser interceptado através do MITM e roteado para OmniRoute.",
"copilot": "Use quando desejar UX no estilo de bate-papo do Copilot enquanto impõe chaves OmniRoute e regras de roteamento."
"copilot": "Use quando desejar UX no estilo de bate-papo do Copilot enquanto impõe chaves OmniRoute e regras de roteamento.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "IDE antigravidade do Google com MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm."
},
"context-relay": {
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"when": "Use when long sessions must survive account rotation without losing the working context.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"builderModel": "Model",
"incidentMode": "Incident Mode",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"weightCostInv": "Cost",
"builderStage": {
"review": {
"description": "Final validation before saving",
"label": "Review"
},
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
},
"basics": {
"description": "Name and starting template",
"label": "Basics"
}
},
"builderComboRef": "Combo Ref",
"budgetCapLabel": "Budget Cap (USD / request)",
"filterEmptyTitle": "No combos match this strategy filter.",
"builderTitle": "Build a Combo",
"failedReorder": "Failed to reorder models",
"builderAddComboRef": "Add combo reference",
"builderProviderFirst": "Pick provider first",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"filterIntelligent": "Intelligent",
"filterAll": "All",
"weightStability": "Stability",
"builderSelectProvider": "Select provider",
"modePackLabel": "Mode Pack",
"cooldownMinutes": "Cooldown: {minutes}m",
"reorderHandle": "Drag to reorder",
"normalOperation": "Normal Operation",
"candidatePoolEmpty": "No active providers available yet.",
"excludedProviders": "Excluded Providers",
"builderStageCurrent": "Current stage",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"contextRelaySummaryModel": "Summary Model",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"reviewNoSteps": "No steps configured",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"activeModePack": "Active Mode Pack",
"builderAccount": "Account",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"builderStageLocked": "Locked — complete previous stage first",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"noExcludedProviders": "No providers are currently excluded.",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"candidatePoolAllProviders": "All providers",
"strategyRules": "Rules (6-Factor Scoring)",
"filterDeterministic": "Deterministic",
"builderStagePending": "Pending",
"weightHealth": "Health",
"budgetCapPlaceholder": "No limit",
"reviewSteps": "Steps",
"emailVisibilityStateOn": "On",
"weightLatencyInv": "Latency",
"builderProvider": "Provider",
"reviewSequence": "Model Sequence",
"builderFlowTitle": "Combo Builder Flow",
"explorationRateLabel": "Exploration Rate",
"reviewAdvanced": "Advanced Settings",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"contextRelayMaxMessages": "Max Messages For Summary",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"modePackUpdated": "Mode pack updated to {pack}.",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"statusOverview": "Status Overview",
"reviewAccounts": "Accounts",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"builderPreview": "Preview",
"builderAddStep": "Add step",
"emailVisibilityStateOff": "Off",
"reviewComboRefs": "Combo References",
"reviewAgentFlags": "Agent Flags",
"builderComboRefStep": "Add combo reference",
"builderLegacyEntry": "Legacy entry",
"reviewProviders": "Providers",
"providerScores": "Provider Scores",
"builderStageVisited": "Stage completed",
"weightQuota": "Quota",
"candidatePoolLabel": "Candidate Pool",
"contextRelay": "Context Relay",
"builderBrowseCatalog": "Browse catalog",
"reviewIntelligentTitle": "Intelligent Routing Config",
"builderLoadingProviders": "Loading providers...",
"routerStrategyLabel": "Router Strategy",
"weightTierPriority": "Tier",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"reviewName": "Name",
"contextRelayHandoffThreshold": "Handoff Threshold",
"reviewStrategy": "Strategy",
"weightTaskFit": "Task Fit",
"builderPinnedAccount": "Pinned Account",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"builderSelectModel": "Select model"
},
"costs": {
"title": "Custos",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicGeneration": "Music Generation",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1305,7 +1432,8 @@
"factual": "Factual",
"episodic": "Episódica",
"procedural": "Procedural",
"semantic": "Semântica"
"semantic": "Semântica",
"delete": "Delete"
},
"skills": {
"title": "Skills",
@@ -1804,7 +1932,18 @@
"statusBanned": "Banido / Sandbox Violation",
"statusCreditsExhausted": "Saldo Insuficiente",
"modelsImported": "{count} models imported",
"close": "Close"
"close": "Close",
"repairEnv": "Repair env",
"repairEnvWorking": "Repairing...",
"audioSpeech": "Audio Speech",
"hideEmails": "Hide all emails",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"audioTranscriptions": "Audio Transcriptions",
"imagesGenerations": "Images Generations",
"showEmails": "Show all emails",
"embeddings": "Embeddings",
"repairEnvFailed": "Failed to repair .env",
"repairEnvSuccess": "OAuth defaults restored"
},
"settings": {
"title": "Configurações",
@@ -2321,7 +2460,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos."
},
"translator": {
"title": "Tradutor",
@@ -2747,7 +2890,11 @@
"waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
"waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
"waitingForQoderAuthorization": "Waiting for Qoder authorization...",
"exchangingCodeForTokens": "Exchanging code for tokens..."
"exchangingCodeForTokens": "Exchanging code for tokens...",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release."
},
"landing": {
"brandName": "OmniRoute",
@@ -3163,6 +3310,25 @@
"deduplicatedRequests": "Requisições Desduplicadas",
"savedCalls": "Chamadas API Poupadas",
"totalProcessed": "Total Processado",
"peakCached": "Peak cached"
"peakCached": "Peak cached",
"lastUpdated": "Last updated",
"cacheRateDesc": "of total requests",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"cacheRate": "Cache Rate",
"entriesLoadError": "Failed to load semantic cache entries.",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"activityVolume": "Activity",
"busiestHour": "Busiest Hour",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"hoursTracked": "hours tracked",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"semanticCache": "Semantic Cache",
"cachedRequests24h": "Cached Requests (24h)",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"peakCacheRate": "Peak Cache Rate",
"trendHour": "Hour",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals."
}
}

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Nu s-a salvat prețul",
"Failed to reset pricing": "Nu s-a resetat prețul",
"apikey": "Cheia API",
"http": "HTTP"
"http": "HTTP",
"checkSystemStatus": "Check System Status",
"goToDashboard": "Go to Dashboard",
"nothingHere": "Nothing here yet"
},
"sidebar": {
"home": "Acasă",
@@ -640,7 +643,8 @@
"opencode": "Utilizați atunci când preferați rulările de agent nativ terminal și automatizarea prin script prin OpenCode.",
"kiro": "Utilizați atunci când integrați Kiro și controlați rutarea modelului central din OmniRoute.",
"antigravity": "Utilizați atunci când traficul Antigravity/Kiro trebuie interceptat prin MITM și direcționat către OmniRoute.",
"copilot": "Utilizați atunci când doriți UX în stilul de chat Copilot, în timp ce aplicați cheile și regulile de rutare OmniRoute."
"copilot": "Utilizați atunci când doriți UX în stilul de chat Copilot, în timp ce aplicați cheile și regulile de rutare OmniRoute.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE cu MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"context-relay": {
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"when": "Use when long sessions must survive account rotation without losing the working context."
},
"p2c": {
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"budgetCapPlaceholder": "No limit",
"emailVisibilityStateOff": "Off",
"weightHealth": "Health",
"builderSelectProvider": "Select provider",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"reviewProviders": "Providers",
"reviewNoSteps": "No steps configured",
"normalOperation": "Normal Operation",
"reviewStrategy": "Strategy",
"weightTaskFit": "Task Fit",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"builderModel": "Model",
"builderLoadingProviders": "Loading providers...",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"builderPreview": "Preview",
"filterEmptyTitle": "No combos match this strategy filter.",
"filterDeterministic": "Deterministic",
"builderFlowTitle": "Combo Builder Flow",
"candidatePoolAllProviders": "All providers",
"reorderHandle": "Drag to reorder",
"providerScores": "Provider Scores",
"builderBrowseCatalog": "Browse catalog",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"builderStage": {
"review": {
"description": "Final validation before saving",
"label": "Review"
},
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
},
"basics": {
"description": "Name and starting template",
"label": "Basics"
},
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
}
},
"reviewIntelligentTitle": "Intelligent Routing Config",
"weightCostInv": "Cost",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"reviewAdvanced": "Advanced Settings",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"reviewName": "Name",
"builderStageCurrent": "Current stage",
"statusOverview": "Status Overview",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"candidatePoolEmpty": "No active providers available yet.",
"weightLatencyInv": "Latency",
"excludedProviders": "Excluded Providers",
"contextRelay": "Context Relay",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"builderProvider": "Provider",
"contextRelayMaxMessages": "Max Messages For Summary",
"builderAccount": "Account",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"candidatePoolLabel": "Candidate Pool",
"reviewComboRefs": "Combo References",
"activeModePack": "Active Mode Pack",
"builderStageVisited": "Stage completed",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"reviewAccounts": "Accounts",
"budgetCapLabel": "Budget Cap (USD / request)",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"builderAddStep": "Add step",
"routerStrategyLabel": "Router Strategy",
"weightTierPriority": "Tier",
"incidentMode": "Incident Mode",
"builderLegacyEntry": "Legacy entry",
"builderComboRefStep": "Add combo reference",
"filterIntelligent": "Intelligent",
"reviewSteps": "Steps",
"builderSelectModel": "Select model",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"builderProviderFirst": "Pick provider first",
"builderTitle": "Build a Combo",
"strategyRules": "Rules (6-Factor Scoring)",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"modePackUpdated": "Mode pack updated to {pack}.",
"builderAddComboRef": "Add combo reference",
"builderStagePending": "Pending",
"explorationRateLabel": "Exploration Rate",
"noExcludedProviders": "No providers are currently excluded.",
"failedReorder": "Failed to reorder models",
"weightQuota": "Quota",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"cooldownMinutes": "Cooldown: {minutes}m",
"emailVisibilityStateOn": "On",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"reviewAgentFlags": "Agent Flags",
"modePackLabel": "Mode Pack",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"filterAll": "All",
"builderStageLocked": "Locked — complete previous stage first",
"builderComboRef": "Combo Ref",
"weightStability": "Stability",
"reviewSequence": "Model Sequence",
"builderPinnedAccount": "Pinned Account"
},
"costs": {
"title": "Costuri",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"imagesGenerations": "Images Generations",
"embeddings": "Embeddings",
"repairEnv": "Repair env",
"selectAllModels": "Select all",
"audioSpeech": "Audio Speech",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"hideEmails": "Hide all emails",
"deselectAllModels": "Deselect all",
"audioTranscriptions": "Audio Transcriptions",
"showEmails": "Show all emails",
"repairEnvWorking": "Repairing...",
"repairEnvFailed": "Failed to repair .env",
"modelsActiveCount": "{active}/{total} active",
"repairEnvSuccess": "OAuth defaults restored",
"noModelsMatch": "No models match \"{filter}\""
},
"settings": {
"title": "Setări",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model"
},
"translator": {
"title": "Traducător",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Se așteaptă autorizarea OpenAI...",
"waitingForAntigravityAuthorization": "Se așteaptă autorizația antigravitație...",
"waitingForQoderAuthorization": "Se așteaptă autorizarea Qoder...",
"exchangingCodeForTokens": "Se schimbă codul pentru jetoane..."
"exchangingCodeForTokens": "Se schimbă codul pentru jetoane...",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended."
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"entriesLoadError": "Failed to load semantic cache entries.",
"busiestHour": "Busiest Hour",
"hoursTracked": "hours tracked",
"lastUpdated": "Last updated",
"cacheRate": "Cache Rate",
"activityVolume": "Activity",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"cacheRateDesc": "of total requests",
"trendHour": "Hour",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"cachedRequests24h": "Cached Requests (24h)",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"semanticCache": "Semantic Cache",
"peakCacheRate": "Peak Cache Rate"
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Не удалось сохранить цену.",
"Failed to reset pricing": "Не удалось сбросить цены.",
"apikey": "API-ключ",
"http": "HTTP"
"http": "HTTP",
"checkSystemStatus": "Check System Status",
"goToDashboard": "Go to Dashboard",
"nothingHere": "Nothing here yet"
},
"sidebar": {
"home": "Главная",
@@ -640,7 +643,8 @@
"opencode": "Используйте, если вы предпочитаете запускать собственные агенты терминала и автоматизировать скрипты через OpenCode.",
"kiro": "Используйте при интеграции Kiro и централизованном управлении маршрутизацией модели из OmniRoute.",
"antigravity": "Используйте, когда трафик Антигравитации/Киро необходимо перехватить через MITM и направить в OmniRoute.",
"copilot": "Используйте его, если вам нужен пользовательский интерфейс в стиле чата Copilot, одновременно обеспечивая соблюдение ключей OmniRoute и правил маршрутизации."
"copilot": "Используйте его, если вам нужен пользовательский интерфейс в стиле чата Copilot, одновременно обеспечивая соблюдение ключей OmniRoute и правил маршрутизации.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE с MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode - агент кодирования с ИИ в терминале",
"kiro": "Amazon Kiro - IDE с ИИ",
"windsurf": "Редактор кода Windsurf с ИИ",
"copilot": "Ассистент GitHub Copilot с ИИ"
"copilot": "Ассистент GitHub Copilot с ИИ",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -914,6 +919,16 @@
"when": "Используйте, когда нужен идеально ровный spread - каждая модель используется один раз перед повтором.",
"avoid": "Избегайте, когда модели отличаются по качеству или задержке и важен порядок.",
"example": "Пример: несколько аккаунтов одной модели для равномерного распределения использования."
},
"context-relay": {
"when": "Use when long sessions must survive account rotation without losing the working context.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests."
},
"p2c": {
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm."
}
},
"advancedHelp": {
@@ -1033,7 +1048,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"cooldownMinutes": "Cooldown: {minutes}m",
"contextRelaySummaryModel": "Summary Model",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"weightCostInv": "Cost",
"strategyRules": "Rules (6-Factor Scoring)",
"builderStage": {
"basics": {
"label": "Basics",
"description": "Name and starting template"
},
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
},
"intelligent": {
"description": "Auto-routing candidate pool, presets, and scoring",
"label": "Smart Routing"
},
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
}
},
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"reviewComboRefs": "Combo References",
"builderSelectModel": "Select model",
"builderAddComboRef": "Add combo reference",
"emailVisibilityStateOn": "On",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"reviewName": "Name",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"activeModePack": "Active Mode Pack",
"modePackUpdated": "Mode pack updated to {pack}.",
"filterAll": "All",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"budgetCapLabel": "Budget Cap (USD / request)",
"filterDeterministic": "Deterministic",
"weightHealth": "Health",
"builderPinnedAccount": "Pinned Account",
"reviewAgentFlags": "Agent Flags",
"reviewAccounts": "Accounts",
"reviewNoSteps": "No steps configured",
"reorderHandle": "Drag to reorder",
"weightTaskFit": "Task Fit",
"incidentMode": "Incident Mode",
"weightQuota": "Quota",
"modePackLabel": "Mode Pack",
"builderPreview": "Preview",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"candidatePoolLabel": "Candidate Pool",
"builderAddStep": "Add step",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"reviewSteps": "Steps",
"weightLatencyInv": "Latency",
"filterEmptyTitle": "No combos match this strategy filter.",
"explorationRateLabel": "Exploration Rate",
"noExcludedProviders": "No providers are currently excluded.",
"weightStability": "Stability",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"builderStageVisited": "Stage completed",
"candidatePoolEmpty": "No active providers available yet.",
"reviewIntelligentTitle": "Intelligent Routing Config",
"builderTitle": "Build a Combo",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"builderAccount": "Account",
"builderStageLocked": "Locked — complete previous stage first",
"reviewAdvanced": "Advanced Settings",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"failedReorder": "Failed to reorder models",
"routerStrategyLabel": "Router Strategy",
"candidatePoolAllProviders": "All providers",
"statusOverview": "Status Overview",
"builderModel": "Model",
"builderProvider": "Provider",
"emailVisibilityStateOff": "Off",
"reviewStrategy": "Strategy",
"providerScores": "Provider Scores",
"builderComboRef": "Combo Ref",
"builderStageCurrent": "Current stage",
"budgetCapPlaceholder": "No limit",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"normalOperation": "Normal Operation",
"builderLegacyEntry": "Legacy entry",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"builderProviderFirst": "Pick provider first",
"contextRelay": "Context Relay",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"contextRelayMaxMessages": "Max Messages For Summary",
"weightTierPriority": "Tier",
"reviewSequence": "Model Sequence",
"builderBrowseCatalog": "Browse catalog",
"contextRelayHandoffThreshold": "Handoff Threshold",
"reviewProviders": "Providers",
"builderFlowTitle": "Combo Builder Flow",
"builderStagePending": "Pending",
"builderLoadingProviders": "Loading providers...",
"excludedProviders": "Excluded Providers",
"builderComboRefStep": "Add combo reference",
"builderSelectProvider": "Select provider",
"filterIntelligent": "Intelligent",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"advancedWeightsTitle": "Advanced: Scoring Weights"
},
"costs": {
"title": "Затраты",
@@ -1171,7 +1296,9 @@
"a2aQuickStartStep2": "Отправляйте JSON-RPC-запросы на `POST /a2a` через `message/send` или `message/stream`.",
"a2aQuickStartStep3": "Отслеживайте и управляйте задачами через `tasks/get` и `tasks/cancel`.",
"completionsLegacy": "Завершения (устар.)",
"completionsLegacyDesc": "Устаревшие текстовые завершения OpenAI — поддерживают и строку prompt, и массив messages"
"completionsLegacyDesc": "Устаревшие текстовые завершения OpenAI — поддерживают и строку prompt, и массив messages",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Прокси конечных точек",
@@ -1778,7 +1905,17 @@
"chatPathHint": "Пользовательский путь чата для провайдеров с нестандартными API (например, /v4/chat/completions)",
"modelsPathLabel": "Путь эндпоинта моделей",
"modelsPathPlaceholder": "/models",
"modelsPathHint": "Пользовательский путь моделей для проверки (например, /v4/models)"
"modelsPathHint": "Пользовательский путь моделей для проверки (например, /v4/models)",
"showEmails": "Show all emails",
"deselectAllModels": "Deselect all",
"embeddings": "Embeddings",
"hideEmails": "Hide all emails",
"audioSpeech": "Audio Speech",
"imagesGenerations": "Images Generations",
"noModelsMatch": "No models match \"{filter}\"",
"modelsActiveCount": "{active}/{total} active",
"audioTranscriptions": "Audio Transcriptions",
"selectAllModels": "Select all"
},
"settings": {
"title": "Настройки",
@@ -2295,7 +2432,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model",
"contextRelayHandoffThreshold": "Handoff Threshold"
},
"translator": {
"title": "Переводчик",
@@ -2721,7 +2862,11 @@
"waitingForOpenAIAuthorization": "Ожидание авторизации OpenAI...",
"waitingForAntigravityAuthorization": "Ожидание авторизации Antigravity...",
"waitingForQoderAuthorization": "Ожидание авторизации Qoder...",
"exchangingCodeForTokens": "Обмен кода на токены..."
"exchangingCodeForTokens": "Обмен кода на токены...",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release"
},
"landing": {
"brandName": "ОмниРоут",
@@ -3045,7 +3190,8 @@
"factual": "Фактическая",
"episodic": "Эпизодическая",
"procedural": "Процедурная",
"semantic": "Семантическая"
"semantic": "Семантическая",
"delete": "Delete"
},
"skills": {
"title": "Навыки",
@@ -3188,6 +3334,25 @@
"deduplicatedRequests": "Дедуплицированные запросы",
"peakCached": "Пик кэша",
"savedCalls": "Сэкономленные API-запросы",
"totalProcessed": "Всего запросов обработано"
"totalProcessed": "Всего запросов обработано",
"trendHour": "Hour",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"busiestHour": "Busiest Hour",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"activityVolume": "Activity",
"semanticCache": "Semantic Cache",
"peakCacheRate": "Peak Cache Rate",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"hoursTracked": "hours tracked",
"cacheRate": "Cache Rate",
"lastUpdated": "Last updated",
"cachedRequests24h": "Cached Requests (24h)",
"entriesLoadError": "Failed to load semantic cache entries.",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"cacheRateDesc": "of total requests",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals."
}
}

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Cenu sa nepodarilo uložiť",
"Failed to reset pricing": "Cenu sa nepodarilo resetovať",
"apikey": "API kľúč",
"http": "HTTP"
"http": "HTTP",
"nothingHere": "Nothing here yet",
"checkSystemStatus": "Check System Status",
"goToDashboard": "Go to Dashboard"
},
"sidebar": {
"home": "Domov",
@@ -640,7 +643,8 @@
"opencode": "Použite, ak uprednostňujete spúšťanie natívneho agenta a skriptovanú automatizáciu cez OpenCode.",
"kiro": "Použite pri integrácii Kiro a centrálnom riadení smerovania modelu z OmniRoute.",
"antigravity": "Použite, keď musí byť premávka Antigravity/Kiro zachytená cez MITM a nasmerovaná na OmniRoute.",
"copilot": "Použite, keď chcete UX v štýle chatu Copilot pri presadzovaní kľúčov OmniRoute a pravidiel smerovania."
"copilot": "Použite, keď chcete UX v štýle chatu Copilot pri presadzovaní kľúčov OmniRoute a pravidiel smerovania.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE s MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin."
},
"context-relay": {
"when": "Use when long sessions must survive account rotation without losing the working context.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"weightLatencyInv": "Latency",
"builderStage": {
"review": {
"description": "Final validation before saving",
"label": "Review"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
}
},
"activeModePack": "Active Mode Pack",
"reviewAgentFlags": "Agent Flags",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"builderSelectModel": "Select model",
"builderProviderFirst": "Pick provider first",
"weightStability": "Stability",
"candidatePoolLabel": "Candidate Pool",
"strategyRules": "Rules (6-Factor Scoring)",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"weightQuota": "Quota",
"builderFlowTitle": "Combo Builder Flow",
"contextRelaySummaryModel": "Summary Model",
"reviewName": "Name",
"providerScores": "Provider Scores",
"noExcludedProviders": "No providers are currently excluded.",
"builderModel": "Model",
"emailVisibilityStateOff": "Off",
"reviewIntelligentTitle": "Intelligent Routing Config",
"cooldownMinutes": "Cooldown: {minutes}m",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"builderAddStep": "Add step",
"reviewSteps": "Steps",
"reviewNoSteps": "No steps configured",
"incidentMode": "Incident Mode",
"reviewProviders": "Providers",
"budgetCapPlaceholder": "No limit",
"filterAll": "All",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"reviewAdvanced": "Advanced Settings",
"builderStagePending": "Pending",
"filterDeterministic": "Deterministic",
"weightCostInv": "Cost",
"filterIntelligent": "Intelligent",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"builderProvider": "Provider",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"contextRelay": "Context Relay",
"candidatePoolEmpty": "No active providers available yet.",
"statusOverview": "Status Overview",
"weightHealth": "Health",
"filterEmptyTitle": "No combos match this strategy filter.",
"weightTaskFit": "Task Fit",
"builderTitle": "Build a Combo",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"contextRelayMaxMessages": "Max Messages For Summary",
"builderStageVisited": "Stage completed",
"builderBrowseCatalog": "Browse catalog",
"builderStageLocked": "Locked — complete previous stage first",
"reorderHandle": "Drag to reorder",
"builderLegacyEntry": "Legacy entry",
"modePackLabel": "Mode Pack",
"builderComboRefStep": "Add combo reference",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"reviewComboRefs": "Combo References",
"failedReorder": "Failed to reorder models",
"emailVisibilityStateOn": "On",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"builderComboRef": "Combo Ref",
"modePackUpdated": "Mode pack updated to {pack}.",
"candidatePoolAllProviders": "All providers",
"routerStrategyLabel": "Router Strategy",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"builderAccount": "Account",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"explorationRateLabel": "Exploration Rate",
"reviewStrategy": "Strategy",
"budgetCapLabel": "Budget Cap (USD / request)",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"builderLoadingProviders": "Loading providers...",
"builderAddComboRef": "Add combo reference",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"weightTierPriority": "Tier",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"excludedProviders": "Excluded Providers",
"reviewAccounts": "Accounts",
"builderSelectProvider": "Select provider",
"normalOperation": "Normal Operation",
"builderPreview": "Preview",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"reviewSequence": "Model Sequence",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"builderPinnedAccount": "Pinned Account",
"builderStageCurrent": "Current stage",
"contextRelayHandoffThreshold": "Handoff Threshold"
},
"costs": {
"title": "náklady",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"audioTranscriptions": "Audio Transcriptions",
"imagesGenerations": "Images Generations",
"noModelsMatch": "No models match \"{filter}\"",
"repairEnvFailed": "Failed to repair .env",
"deselectAllModels": "Deselect all",
"showEmails": "Show all emails",
"repairEnv": "Repair env",
"modelsActiveCount": "{active}/{total} active",
"hideEmails": "Hide all emails",
"repairEnvSuccess": "OAuth defaults restored",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"repairEnvWorking": "Repairing...",
"selectAllModels": "Select all",
"embeddings": "Embeddings",
"audioSpeech": "Audio Speech"
},
"settings": {
"title": "Nastavenia",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary"
},
"translator": {
"title": "Prekladateľ",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Čaká sa na autorizáciu OpenAI...",
"waitingForAntigravityAuthorization": "Čaká sa na antigravitačné povolenie...",
"waitingForQoderAuthorization": "Čaká sa na autorizáciu Qoder...",
"exchangingCodeForTokens": "Výmena kódu za tokeny..."
"exchangingCodeForTokens": "Výmena kódu za tokeny...",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended."
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"activityVolume": "Activity",
"cacheRateDesc": "of total requests",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"entriesLoadError": "Failed to load semantic cache entries.",
"peakCacheRate": "Peak Cache Rate",
"trendHour": "Hour",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"busiestHour": "Busiest Hour",
"cachedRequests24h": "Cached Requests (24h)",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"hoursTracked": "hours tracked",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"lastUpdated": "Last updated",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"cacheRate": "Cache Rate",
"semanticCache": "Semantic Cache",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here."
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Det gick inte att spara pris",
"Failed to reset pricing": "Det gick inte att återställa prissättningen",
"apikey": "API-nyckel",
"http": "HTTP"
"http": "HTTP",
"goToDashboard": "Go to Dashboard",
"nothingHere": "Nothing here yet",
"checkSystemStatus": "Check System Status"
},
"sidebar": {
"home": "Hem",
@@ -640,7 +643,8 @@
"opencode": "Använd när du föredrar terminalbaserade agentkörningar och skriptautomation via OpenCode.",
"kiro": "Använd när du integrerar Kiro och styr modelldirigering centralt från OmniRoute.",
"antigravity": "Använd när Antigravity/Kiro-trafik måste avlyssnas genom MITM och dirigeras till OmniRoute.",
"copilot": "Använd när du vill ha Copilot chattstil UX samtidigt som du upprätthåller OmniRoute-nycklar och routingregler."
"copilot": "Använd när du vill ha Copilot chattstil UX samtidigt som du upprätthåller OmniRoute-nycklar och routingregler.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE med MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints."
},
"context-relay": {
"when": "Use when long sessions must survive account rotation without losing the working context.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"builderModel": "Model",
"builderComboRefStep": "Add combo reference",
"filterIntelligent": "Intelligent",
"builderSelectModel": "Select model",
"reviewStrategy": "Strategy",
"weightCostInv": "Cost",
"weightQuota": "Quota",
"builderFlowTitle": "Combo Builder Flow",
"weightTaskFit": "Task Fit",
"reviewNoSteps": "No steps configured",
"builderStage": {
"review": {
"description": "Final validation before saving",
"label": "Review"
},
"intelligent": {
"description": "Auto-routing candidate pool, presets, and scoring",
"label": "Smart Routing"
},
"basics": {
"description": "Name and starting template",
"label": "Basics"
},
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
}
},
"strategyRules": "Rules (6-Factor Scoring)",
"builderSelectProvider": "Select provider",
"excludedProviders": "Excluded Providers",
"builderTitle": "Build a Combo",
"builderAccount": "Account",
"reviewIntelligentTitle": "Intelligent Routing Config",
"builderBrowseCatalog": "Browse catalog",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"builderStageLocked": "Locked — complete previous stage first",
"reviewComboRefs": "Combo References",
"weightTierPriority": "Tier",
"routerStrategyLabel": "Router Strategy",
"candidatePoolEmpty": "No active providers available yet.",
"builderAddStep": "Add step",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"filterEmptyTitle": "No combos match this strategy filter.",
"contextRelay": "Context Relay",
"reviewSteps": "Steps",
"providerScores": "Provider Scores",
"contextRelayMaxMessages": "Max Messages For Summary",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"weightLatencyInv": "Latency",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"budgetCapLabel": "Budget Cap (USD / request)",
"normalOperation": "Normal Operation",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"reviewName": "Name",
"contextRelaySummaryModel": "Summary Model",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"cooldownMinutes": "Cooldown: {minutes}m",
"statusOverview": "Status Overview",
"emailVisibilityStateOn": "On",
"modePackLabel": "Mode Pack",
"failedReorder": "Failed to reorder models",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"incidentMode": "Incident Mode",
"builderStagePending": "Pending",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"builderStageCurrent": "Current stage",
"noExcludedProviders": "No providers are currently excluded.",
"reorderHandle": "Drag to reorder",
"activeModePack": "Active Mode Pack",
"builderPinnedAccount": "Pinned Account",
"modePackUpdated": "Mode pack updated to {pack}.",
"builderPreview": "Preview",
"weightStability": "Stability",
"candidatePoolLabel": "Candidate Pool",
"builderStageVisited": "Stage completed",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"reviewSequence": "Model Sequence",
"weightHealth": "Health",
"reviewProviders": "Providers",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"builderProvider": "Provider",
"filterAll": "All",
"builderProviderFirst": "Pick provider first",
"candidatePoolAllProviders": "All providers",
"emailVisibilityStateOff": "Off",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"explorationRateLabel": "Exploration Rate",
"builderComboRef": "Combo Ref",
"builderLoadingProviders": "Loading providers...",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"reviewAgentFlags": "Agent Flags",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"budgetCapPlaceholder": "No limit",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"builderLegacyEntry": "Legacy entry",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"reviewAdvanced": "Advanced Settings",
"reviewAccounts": "Accounts",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"builderAddComboRef": "Add combo reference",
"filterDeterministic": "Deterministic"
},
"costs": {
"title": "Kostnader",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicGeneration": "Music Generation",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"embeddings": "Embeddings",
"modelsActiveCount": "{active}/{total} active",
"imagesGenerations": "Images Generations",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"noModelsMatch": "No models match \"{filter}\"",
"selectAllModels": "Select all",
"repairEnvWorking": "Repairing...",
"audioTranscriptions": "Audio Transcriptions",
"hideEmails": "Hide all emails",
"audioSpeech": "Audio Speech",
"repairEnvFailed": "Failed to repair .env",
"repairEnv": "Repair env",
"repairEnvSuccess": "OAuth defaults restored",
"showEmails": "Show all emails",
"deselectAllModels": "Deselect all"
},
"settings": {
"title": "Inställningar",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold"
},
"translator": {
"title": "Översättare",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Väntar på OpenAI-auktorisering...",
"waitingForAntigravityAuthorization": "Väntar på antigravitationstillstånd...",
"waitingForQoderAuthorization": "Väntar på Qoder-auktorisering...",
"exchangingCodeForTokens": "Byter ut kod för tokens..."
"exchangingCodeForTokens": "Byter ut kod för tokens...",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release"
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"semanticCache": "Semantic Cache",
"cacheRateDesc": "of total requests",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"lastUpdated": "Last updated",
"trendHour": "Hour",
"hoursTracked": "hours tracked",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"busiestHour": "Busiest Hour",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"activityVolume": "Activity",
"cacheRate": "Cache Rate",
"entriesLoadError": "Failed to load semantic cache entries.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"cachedRequests24h": "Cached Requests (24h)",
"peakCacheRate": "Peak Cache Rate"
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "บันทึกราคาไม่สำเร็จ",
"Failed to reset pricing": "ไม่สามารถรีเซ็ตราคาได้",
"apikey": "คีย์ API",
"http": "HTTP"
"http": "HTTP",
"goToDashboard": "Go to Dashboard",
"nothingHere": "Nothing here yet",
"checkSystemStatus": "Check System Status"
},
"sidebar": {
"home": "บ้าน",
@@ -640,7 +643,8 @@
"opencode": "ใช้เมื่อคุณต้องการเรียกใช้ Terminal-Native Agent และใช้สคริปต์อัตโนมัติผ่าน OpenCode",
"kiro": "ใช้เมื่อรวม Kiro และควบคุมการกำหนดเส้นทางโมเดลจากส่วนกลางจาก OmniRoute",
"antigravity": "ใช้เมื่อต้องสกัดกั้นการรับส่งข้อมูล Antigravity/Kiro ผ่าน MITM และกำหนดเส้นทางไปยัง OmniRoute",
"copilot": "ใช้เมื่อคุณต้องการ UX รูปแบบการแชทของ Copilot ในขณะที่บังคับใช้คีย์ OmniRoute และกฎการกำหนดเส้นทาง"
"copilot": "ใช้เมื่อคุณต้องการ UX รูปแบบการแชทของ Copilot ในขณะที่บังคับใช้คีย์ OmniRoute และกฎการกำหนดเส้นทาง",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google ต้านแรงโน้มถ่วง IDE พร้อม MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin."
},
"context-relay": {
"when": "Use when long sessions must survive account rotation without losing the working context.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"reviewIntelligentTitle": "Intelligent Routing Config",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"failedReorder": "Failed to reorder models",
"candidatePoolLabel": "Candidate Pool",
"routerStrategyLabel": "Router Strategy",
"builderStage": {
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"basics": {
"description": "Name and starting template",
"label": "Basics"
},
"review": {
"description": "Final validation before saving",
"label": "Review"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
}
},
"candidatePoolEmpty": "No active providers available yet.",
"emailVisibilityStateOn": "On",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"reviewAccounts": "Accounts",
"contextRelayHandoffThreshold": "Handoff Threshold",
"filterDeterministic": "Deterministic",
"reviewComboRefs": "Combo References",
"weightTierPriority": "Tier",
"reviewSequence": "Model Sequence",
"builderProviderFirst": "Pick provider first",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"reviewAgentFlags": "Agent Flags",
"builderStageVisited": "Stage completed",
"reviewName": "Name",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"builderLegacyEntry": "Legacy entry",
"builderAccount": "Account",
"builderStagePending": "Pending",
"builderProvider": "Provider",
"builderLoadingProviders": "Loading providers...",
"builderPreview": "Preview",
"builderTitle": "Build a Combo",
"modePackUpdated": "Mode pack updated to {pack}.",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"budgetCapPlaceholder": "No limit",
"reviewNoSteps": "No steps configured",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"reviewStrategy": "Strategy",
"excludedProviders": "Excluded Providers",
"modePackLabel": "Mode Pack",
"reorderHandle": "Drag to reorder",
"weightTaskFit": "Task Fit",
"reviewSteps": "Steps",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"builderModel": "Model",
"explorationRateLabel": "Exploration Rate",
"reviewProviders": "Providers",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"builderPinnedAccount": "Pinned Account",
"providerScores": "Provider Scores",
"builderAddStep": "Add step",
"contextRelaySummaryModel": "Summary Model",
"strategyRules": "Rules (6-Factor Scoring)",
"weightCostInv": "Cost",
"statusOverview": "Status Overview",
"filterAll": "All",
"budgetCapLabel": "Budget Cap (USD / request)",
"weightQuota": "Quota",
"normalOperation": "Normal Operation",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"contextRelay": "Context Relay",
"incidentMode": "Incident Mode",
"builderBrowseCatalog": "Browse catalog",
"builderSelectProvider": "Select provider",
"builderSelectModel": "Select model",
"noExcludedProviders": "No providers are currently excluded.",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"reviewAdvanced": "Advanced Settings",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"weightHealth": "Health",
"builderStageLocked": "Locked — complete previous stage first",
"builderComboRefStep": "Add combo reference",
"builderComboRef": "Combo Ref",
"builderFlowTitle": "Combo Builder Flow",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"builderStageCurrent": "Current stage",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"emailVisibilityStateOff": "Off",
"activeModePack": "Active Mode Pack",
"builderAddComboRef": "Add combo reference",
"cooldownMinutes": "Cooldown: {minutes}m",
"filterEmptyTitle": "No combos match this strategy filter.",
"contextRelayMaxMessages": "Max Messages For Summary",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"candidatePoolAllProviders": "All providers",
"filterIntelligent": "Intelligent",
"weightLatencyInv": "Latency",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"weightStability": "Stability"
},
"costs": {
"title": "ค่าใช้จ่าย",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"repairEnvWorking": "Repairing...",
"noModelsMatch": "No models match \"{filter}\"",
"audioSpeech": "Audio Speech",
"selectAllModels": "Select all",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"repairEnvSuccess": "OAuth defaults restored",
"modelsActiveCount": "{active}/{total} active",
"repairEnvFailed": "Failed to repair .env",
"showEmails": "Show all emails",
"deselectAllModels": "Deselect all",
"repairEnv": "Repair env",
"embeddings": "Embeddings",
"audioTranscriptions": "Audio Transcriptions",
"hideEmails": "Hide all emails",
"imagesGenerations": "Images Generations"
},
"settings": {
"title": "การตั้งค่า",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary"
},
"translator": {
"title": "นักแปล",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "กำลังรอการอนุญาต OpenAI...",
"waitingForAntigravityAuthorization": "กำลังรอการอนุญาตต้านแรงโน้มถ่วง...",
"waitingForQoderAuthorization": "กำลังรอการอนุญาตจาก Qoder...",
"exchangingCodeForTokens": "การเปลี่ยนรหัสเป็นโทเค็น..."
"exchangingCodeForTokens": "การเปลี่ยนรหัสเป็นโทเค็น...",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleTitle": "Incompatible Node.js Version"
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"hoursTracked": "hours tracked",
"cacheRateDesc": "of total requests",
"busiestHour": "Busiest Hour",
"entriesLoadError": "Failed to load semantic cache entries.",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"semanticCache": "Semantic Cache",
"cachedRequests24h": "Cached Requests (24h)",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"trendHour": "Hour",
"peakCacheRate": "Peak Cache Rate",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"activityVolume": "Activity",
"cacheRate": "Cache Rate",
"lastUpdated": "Last updated"
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Fiyat kaydedilemedi",
"Failed to reset pricing": "Fiyatlandırma sıfırlanamadı",
"apikey": "API Anahtarı",
"http": "HTTP"
"http": "HTTP",
"nothingHere": "Nothing here yet",
"goToDashboard": "Go to Dashboard",
"checkSystemStatus": "Check System Status"
},
"sidebar": {
"home": "Ana Sayfa",
@@ -640,7 +643,8 @@
"opencode": "Terminal yerel ajan çalıştırmaları ve OpenCode ile betik tabanlı otomasyon tercih ettiğinizde kullanın.",
"kiro": "Kiro'yu entegre ederken model yönlendirmesini OmniRoute üzerinden merkezi olarak yönetmek istediğinizde kullanın.",
"antigravity": "Antigravity/Kiro trafiğinin MITM üzerinden yakalanıp OmniRoute'a yönlendirilmesi gerektiğinde kullanın.",
"copilot": "OmniRoute anahtarları ve yönlendirme kuralları uygulanırken Copilot sohbet tarzı bir UX istediğinizde kullanın."
"copilot": "OmniRoute anahtarları ve yönlendirme kuralları uygulanırken Copilot sohbet tarzı bir UX istediğinizde kullanın.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "MITM ile Google Antigravity IDE",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI kodlama ajanı (Terminal)",
"kiro": "Amazon Kiro - AI destekli IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"example": "Example: High-throughput inference across 4+ equivalent model endpoints."
},
"context-relay": {
"when": "Use when long sessions must survive account rotation without losing the working context.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"builderStage": {
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"basics": {
"description": "Name and starting template",
"label": "Basics"
}
},
"builderSelectProvider": "Select provider",
"candidatePoolAllProviders": "All providers",
"budgetCapPlaceholder": "No limit",
"builderStagePending": "Pending",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"builderStageVisited": "Stage completed",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"reviewSequence": "Model Sequence",
"weightTaskFit": "Task Fit",
"builderComboRef": "Combo Ref",
"weightStability": "Stability",
"explorationRateLabel": "Exploration Rate",
"reviewComboRefs": "Combo References",
"reviewAgentFlags": "Agent Flags",
"builderPreview": "Preview",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"candidatePoolLabel": "Candidate Pool",
"budgetCapLabel": "Budget Cap (USD / request)",
"builderLoadingProviders": "Loading providers...",
"reviewIntelligentTitle": "Intelligent Routing Config",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"activeModePack": "Active Mode Pack",
"failedReorder": "Failed to reorder models",
"builderAddComboRef": "Add combo reference",
"routerStrategyLabel": "Router Strategy",
"candidatePoolEmpty": "No active providers available yet.",
"noExcludedProviders": "No providers are currently excluded.",
"builderTitle": "Build a Combo",
"builderComboRefStep": "Add combo reference",
"incidentMode": "Incident Mode",
"builderPinnedAccount": "Pinned Account",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"emailVisibilityStateOff": "Off",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"weightTierPriority": "Tier",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"builderProviderFirst": "Pick provider first",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"builderAddStep": "Add step",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"reviewSteps": "Steps",
"builderProvider": "Provider",
"weightQuota": "Quota",
"filterEmptyTitle": "No combos match this strategy filter.",
"cooldownMinutes": "Cooldown: {minutes}m",
"filterAll": "All",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"contextRelayMaxMessages": "Max Messages For Summary",
"normalOperation": "Normal Operation",
"statusOverview": "Status Overview",
"excludedProviders": "Excluded Providers",
"contextRelay": "Context Relay",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"filterDeterministic": "Deterministic",
"reviewNoSteps": "No steps configured",
"weightCostInv": "Cost",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"reorderHandle": "Drag to reorder",
"builderLegacyEntry": "Legacy entry",
"modePackLabel": "Mode Pack",
"reviewProviders": "Providers",
"builderStageLocked": "Locked — complete previous stage first",
"contextRelaySummaryModel": "Summary Model",
"builderSelectModel": "Select model",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"strategyRules": "Rules (6-Factor Scoring)",
"reviewAccounts": "Accounts",
"weightHealth": "Health",
"reviewAdvanced": "Advanced Settings",
"builderStageCurrent": "Current stage",
"reviewStrategy": "Strategy",
"filterIntelligent": "Intelligent",
"weightLatencyInv": "Latency",
"builderFlowTitle": "Combo Builder Flow",
"builderBrowseCatalog": "Browse catalog",
"builderModel": "Model",
"modePackUpdated": "Mode pack updated to {pack}.",
"builderAccount": "Account",
"emailVisibilityStateOn": "On",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"reviewName": "Name",
"providerScores": "Provider Scores"
},
"costs": {
"title": "Maliyetler",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "JSON-RPC isteklerini `message/send` veya `message/stream` kullanarak `POST /a2a` adresine gönderin.",
"a2aQuickStartStep3": "Görevleri `tasks/get` ve `tasks/cancel` ile izleyin ve yönetin.",
"completionsLegacy": "Tamamlamalar (Eski)",
"completionsLegacyDesc": "Eski OpenAI metin tamamlamaları — hem bilgi istemi dizesini hem de mesaj dizisi biçimini kabul eder"
"completionsLegacyDesc": "Eski OpenAI metin tamamlamaları — hem bilgi istemi dizesini hem de mesaj dizisi biçimini kabul eder",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Uç Nokta Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"deselectAllModels": "Deselect all",
"imagesGenerations": "Images Generations",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"repairEnv": "Repair env",
"showEmails": "Show all emails",
"repairEnvFailed": "Failed to repair .env",
"repairEnvWorking": "Repairing...",
"hideEmails": "Hide all emails",
"audioTranscriptions": "Audio Transcriptions",
"modelsActiveCount": "{active}/{total} active",
"selectAllModels": "Select all",
"noModelsMatch": "No models match \"{filter}\"",
"embeddings": "Embeddings",
"audioSpeech": "Audio Speech",
"repairEnvSuccess": "OAuth defaults restored"
},
"settings": {
"title": "Ayarlar",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold"
},
"translator": {
"title": "Çeviri",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "OpenAI yetkilendirmesi bekleniyor...",
"waitingForAntigravityAuthorization": "Antigravity yetkilendirmesi bekleniyor...",
"waitingForQoderAuthorization": "Qoder yetkilendirmesi bekleniyor...",
"exchangingCodeForTokens": "Kod jetonlarla değiştiriliyor..."
"exchangingCodeForTokens": "Kod jetonlarla değiştiriliyor...",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended.",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release."
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"activityVolume": "Activity",
"trendHour": "Hour",
"cacheRate": "Cache Rate",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"busiestHour": "Busiest Hour",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"cacheRateDesc": "of total requests",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"hoursTracked": "hours tracked",
"cachedRequests24h": "Cached Requests (24h)",
"peakCacheRate": "Peak Cache Rate",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"lastUpdated": "Last updated",
"entriesLoadError": "Failed to load semantic cache entries.",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"semanticCache": "Semantic Cache",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals."
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Не вдалося зберегти ціни",
"Failed to reset pricing": "Не вдалося скинути ціни",
"apikey": "Ключ API",
"http": "HTTP"
"http": "HTTP",
"nothingHere": "Nothing here yet",
"checkSystemStatus": "Check System Status",
"goToDashboard": "Go to Dashboard"
},
"sidebar": {
"home": "додому",
@@ -640,7 +643,8 @@
"opencode": "Використовуйте, якщо ви віддаєте перевагу запуску агента на терміналі та автоматизації за сценарієм через OpenCode.",
"kiro": "Використовуйте під час інтеграції Kiro та централізованого керування маршрутизацією моделі з OmniRoute.",
"antigravity": "Використовуйте, коли трафік Antigravity/Kiro потрібно перехопити через MITM і направити на OmniRoute.",
"copilot": "Використовуйте, коли вам потрібен UX у стилі чату Copilot із застосуванням ключів OmniRoute і правил маршрутизації."
"copilot": "Використовуйте, коли вам потрібен UX у стилі чату Copilot із застосуванням ключів OmniRoute і правил маршрутизації.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "Google Antigravity IDE з MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"context-relay": {
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"when": "Use when long sessions must survive account rotation without losing the working context.",
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
},
"p2c": {
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"builderComboRefStep": "Add combo reference",
"builderFlowTitle": "Combo Builder Flow",
"noExcludedProviders": "No providers are currently excluded.",
"reviewProviders": "Providers",
"excludedProviders": "Excluded Providers",
"routerStrategyLabel": "Router Strategy",
"reviewSequence": "Model Sequence",
"builderStage": {
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
},
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"intelligent": {
"description": "Auto-routing candidate pool, presets, and scoring",
"label": "Smart Routing"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"basics": {
"label": "Basics",
"description": "Name and starting template"
}
},
"reviewSteps": "Steps",
"builderPinnedAccount": "Pinned Account",
"builderSelectProvider": "Select provider",
"builderSelectModel": "Select model",
"reviewAgentFlags": "Agent Flags",
"builderAccount": "Account",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"builderStageVisited": "Stage completed",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayHandoffThreshold": "Handoff Threshold",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"emailVisibilityStateOff": "Off",
"candidatePoolLabel": "Candidate Pool",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"filterEmptyTitle": "No combos match this strategy filter.",
"builderAddStep": "Add step",
"incidentMode": "Incident Mode",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"explorationRateLabel": "Exploration Rate",
"reorderHandle": "Drag to reorder",
"budgetCapLabel": "Budget Cap (USD / request)",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"activeModePack": "Active Mode Pack",
"weightQuota": "Quota",
"normalOperation": "Normal Operation",
"builderProviderFirst": "Pick provider first",
"weightCostInv": "Cost",
"builderLoadingProviders": "Loading providers...",
"weightLatencyInv": "Latency",
"reviewAdvanced": "Advanced Settings",
"filterAll": "All",
"builderTitle": "Build a Combo",
"contextRelay": "Context Relay",
"weightTaskFit": "Task Fit",
"contextRelayMaxMessages": "Max Messages For Summary",
"filterIntelligent": "Intelligent",
"weightTierPriority": "Tier",
"modePackUpdated": "Mode pack updated to {pack}.",
"reviewNoSteps": "No steps configured",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"budgetCapPlaceholder": "No limit",
"reviewName": "Name",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"builderStageLocked": "Locked — complete previous stage first",
"weightHealth": "Health",
"builderStageCurrent": "Current stage",
"providerScores": "Provider Scores",
"emailVisibilityStateOn": "On",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"reviewComboRefs": "Combo References",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"reviewIntelligentTitle": "Intelligent Routing Config",
"failedReorder": "Failed to reorder models",
"builderComboRef": "Combo Ref",
"builderStagePending": "Pending",
"reviewStrategy": "Strategy",
"statusOverview": "Status Overview",
"weightStability": "Stability",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"builderPreview": "Preview",
"builderBrowseCatalog": "Browse catalog",
"reviewAccounts": "Accounts",
"builderProvider": "Provider",
"builderAddComboRef": "Add combo reference",
"builderModel": "Model",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"filterDeterministic": "Deterministic",
"builderLegacyEntry": "Legacy entry",
"modePackLabel": "Mode Pack",
"candidatePoolEmpty": "No active providers available yet.",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"cooldownMinutes": "Cooldown: {minutes}m",
"candidatePoolAllProviders": "All providers",
"strategyRules": "Rules (6-Factor Scoring)"
},
"costs": {
"title": "Витрати",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
"musicGeneration": "Music Generation"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"embeddings": "Embeddings",
"hideEmails": "Hide all emails",
"noModelsMatch": "No models match \"{filter}\"",
"repairEnvSuccess": "OAuth defaults restored",
"repairEnvWorking": "Repairing...",
"audioTranscriptions": "Audio Transcriptions",
"selectAllModels": "Select all",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"imagesGenerations": "Images Generations",
"audioSpeech": "Audio Speech",
"showEmails": "Show all emails",
"modelsActiveCount": "{active}/{total} active",
"repairEnvFailed": "Failed to repair .env",
"repairEnv": "Repair env",
"deselectAllModels": "Deselect all"
},
"settings": {
"title": "Налаштування",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold"
},
"translator": {
"title": "Перекладач",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Очікування авторизації OpenAI...",
"waitingForAntigravityAuthorization": "Очікування авторизації Antigravity...",
"waitingForQoderAuthorization": "Очікування авторизації Qoder...",
"exchangingCodeForTokens": "Обмін коду на токени..."
"exchangingCodeForTokens": "Обмін коду на токени...",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended."
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"cacheRateDesc": "of total requests",
"semanticCache": "Semantic Cache",
"cachedRequests24h": "Cached Requests (24h)",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"trendHour": "Hour",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"entriesLoadError": "Failed to load semantic cache entries.",
"peakCacheRate": "Peak Cache Rate",
"activityVolume": "Activity",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"busiestHour": "Busiest Hour",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
"hoursTracked": "hours tracked",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"lastUpdated": "Last updated",
"cacheRate": "Cache Rate",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting."
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -136,7 +136,10 @@
"Failed to save pricing": "Không lưu được giá",
"Failed to reset pricing": "Không thể đặt lại giá",
"apikey": "Khóa API",
"http": "HTTP"
"http": "HTTP",
"nothingHere": "Nothing here yet",
"checkSystemStatus": "Check System Status",
"goToDashboard": "Go to Dashboard"
},
"sidebar": {
"home": "Trang chủ",
@@ -640,7 +643,8 @@
"opencode": "Sử dụng khi bạn thích chạy tác nhân gốc trên thiết bị đầu cuối và tự động hóa theo kịch bản thông qua OpenCode.",
"kiro": "Sử dụng khi tích hợp Kiro và điều khiển định tuyến mô hình tập trung từ OmniRoute.",
"antigravity": "Sử dụng khi lưu lượng truy cập AntiGravity/Kiro phải bị chặn thông qua MITM và được định tuyến đến OmniRoute.",
"copilot": "Sử dụng khi bạn muốn UX kiểu trò chuyện Copilot trong khi thực thi các khóa OmniRoute và quy tắc định tuyến."
"copilot": "Sử dụng khi bạn muốn UX kiểu trò chuyện Copilot trong khi thực thi các khóa OmniRoute và quy tắc định tuyến.",
"windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute."
},
"toolDescriptions": {
"antigravity": "IDE chống trọng lực của Google với MITM",
@@ -655,7 +659,8 @@
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -890,6 +895,16 @@
"when": "Use when you want perfectly even spread — each model used once before repeating.",
"avoid": "Avoid when models have different quality or latency and order matters.",
"example": "Example: Multiple accounts of the same model to distribute usage evenly."
},
"p2c": {
"example": "Example: High-throughput inference across 4+ equivalent model endpoints.",
"when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
"avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin."
},
"context-relay": {
"example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion.",
"avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
"when": "Use when long sessions must survive account rotation without losing the working context."
}
},
"advancedHelp": {
@@ -1009,7 +1024,117 @@
"wizardStep3Title": "Choose Strategy",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Review & Save",
"wizardStep4Desc": "Review your configuration and activate the combo"
"wizardStep4Desc": "Review your configuration and activate the combo",
"reviewProviders": "Providers",
"builderStage": {
"basics": {
"label": "Basics",
"description": "Name and starting template"
},
"steps": {
"description": "Provider, model, and account selection",
"label": "Steps"
},
"strategy": {
"description": "Routing behavior and advanced settings",
"label": "Strategy"
},
"review": {
"label": "Review",
"description": "Final validation before saving"
},
"intelligent": {
"description": "Auto-routing candidate pool, presets, and scoring",
"label": "Smart Routing"
}
},
"filterAll": "All",
"advancedWeightsTitle": "Advanced: Scoring Weights",
"providerScores": "Provider Scores",
"explorationRateLabel": "Exploration Rate",
"intelligentPanelTitle": "Intelligent Routing Dashboard",
"emailVisibilityStateOff": "Off",
"builderSelectProvider": "Select provider",
"filterIntelligent": "Intelligent",
"modePackUpdated": "Mode pack updated to {pack}.",
"activeModePack": "Active Mode Pack",
"weightStability": "Stability",
"contextRelay": "Context Relay",
"candidatePoolEmpty": "No active providers available yet.",
"emailVisibilityStateOn": "On",
"builderComboRef": "Combo Ref",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
"builderAccount": "Account",
"normalOperation": "Normal Operation",
"builderStageCurrent": "Current stage",
"failedReorder": "Failed to reorder models",
"weightQuota": "Quota",
"filterDeterministic": "Deterministic",
"contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
"builderSelectModel": "Select model",
"filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
"strategyRules": "Rules (6-Factor Scoring)",
"builderPinnedAccount": "Pinned Account",
"filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
"candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
"builderStagePending": "Pending",
"builderLoadingProviders": "Loading providers...",
"excludedProviders": "Excluded Providers",
"budgetCapLabel": "Budget Cap (USD / request)",
"contextRelaySummaryModel": "Summary Model",
"intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
"reviewAdvanced": "Advanced Settings",
"reviewComboRefs": "Combo References",
"reviewNoSteps": "No steps configured",
"reviewSteps": "Steps",
"statusOverview": "Status Overview",
"builderFlowTitle": "Combo Builder Flow",
"allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
"contextRelayMaxMessages": "Max Messages For Summary",
"reorderHandle": "Drag to reorder",
"weightCostInv": "Cost",
"builderStageLocked": "Locked — complete previous stage first",
"candidatePoolLabel": "Candidate Pool",
"weightTaskFit": "Task Fit",
"weightLatencyInv": "Latency",
"reviewAccounts": "Accounts",
"allProvidersHealthy": "Providers are reporting healthy routing conditions.",
"builderIntelligentTitle": "Intelligent Routing Configuration",
"modePackLabel": "Mode Pack",
"explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
"routerStrategyLabel": "Router Strategy",
"builderStageVisited": "Stage completed",
"candidatePoolAllProviders": "All providers",
"contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
"builderModel": "Model",
"builderBrowseCatalog": "Browse catalog",
"builderPreview": "Preview",
"budgetCapPlaceholder": "No limit",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
"reviewName": "Name",
"cooldownMinutes": "Cooldown: {minutes}m",
"builderProviderFirst": "Pick provider first",
"reviewIntelligentTitle": "Intelligent Routing Config",
"incidentMode": "Incident Mode",
"excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
"highCircuitBreakerRate": "High circuit breaker trip rate detected.",
"contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
"weightHealth": "Health",
"builderAddComboRef": "Add combo reference",
"reviewAgentFlags": "Agent Flags",
"modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
"builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
"weightTierPriority": "Tier",
"builderLegacyEntry": "Legacy entry",
"builderAddStep": "Add step",
"noExcludedProviders": "No providers are currently excluded.",
"builderTitle": "Build a Combo",
"builderProvider": "Provider",
"reviewSequence": "Model Sequence",
"reviewStrategy": "Strategy",
"builderComboRefStep": "Add combo reference",
"filterEmptyTitle": "No combos match this strategy filter."
},
"costs": {
"title": "Chi phí",
@@ -1147,7 +1272,9 @@
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"musicGeneration": "Music Generation",
"musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -1749,7 +1876,22 @@
"close": "Close",
"statusDeactivated": "Deactivated (Manual)",
"statusBanned": "Banned / Sandbox Violation",
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted"
"statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
"audioTranscriptions": "Audio Transcriptions",
"audioSpeech": "Audio Speech",
"noModelsMatch": "No models match \"{filter}\"",
"repairEnvWorking": "Repairing...",
"deselectAllModels": "Deselect all",
"hideEmails": "Hide all emails",
"repairEnvFailed": "Failed to repair .env",
"repairEnvSuccess": "OAuth defaults restored",
"embeddings": "Embeddings",
"repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
"repairEnv": "Repair env",
"selectAllModels": "Select all",
"imagesGenerations": "Images Generations",
"showEmails": "Show all emails",
"modelsActiveCount": "{active}/{total} active"
},
"settings": {
"title": "Cài đặt",
@@ -2266,7 +2408,11 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary"
},
"translator": {
"title": "Người phiên dịch",
@@ -2692,7 +2838,11 @@
"waitingForOpenAIAuthorization": "Đang chờ ủy quyền OpenAI...",
"waitingForAntigravityAuthorization": "Đang chờ ủy quyền chống hấp dẫn...",
"waitingForQoderAuthorization": "Đang chờ ủy quyền Qoder...",
"exchangingCodeForTokens": "Đổi mã lấy token..."
"exchangingCodeForTokens": "Đổi mã lấy token...",
"nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
"nodeIncompatibleTitle": "Incompatible Node.js Version",
"nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
"nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS) or 22.22.2+ (22.x LTS). Node 22 LTS is recommended."
},
"landing": {
"brandName": "OmniRoute",
@@ -3108,7 +3258,26 @@
"peakCached": "Peak cached",
"deduplicatedRequests": "Deduplicated Requests",
"savedCalls": "Saved API Calls",
"totalProcessed": "Total Requests Processed"
"totalProcessed": "Total Requests Processed",
"lastUpdated": "Last updated",
"hoursTracked": "hours tracked",
"semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
"promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
"semanticCache": "Semantic Cache",
"promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
"busiestHour": "Busiest Hour",
"noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
"cachedRequests24h": "Cached Requests (24h)",
"semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
"entriesLoadError": "Failed to load semantic cache entries.",
"cacheRate": "Cache Rate",
"semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
"trendHour": "Hour",
"peakCacheRate": "Peak Cache Rate",
"activityVolume": "Activity",
"noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
"cacheRateDesc": "of total requests",
"providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals."
},
"memory": {
"title": "Memory Management",
@@ -3132,7 +3301,8 @@
"factual": "Factual",
"episodic": "Episodic",
"procedural": "Procedural",
"semantic": "Semantic"
"semantic": "Semantic",
"delete": "Delete"
},
"skills": {
"title": "Skills",

View File

@@ -659,7 +659,8 @@
"opencode": "OpenCode AI 编码智能体(终端)",
"kiro": "Amazon Kiro - AI 驱动 IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant"
"copilot": "GitHub Copilot AI Assistant",
"qwen": "Alibaba Qwen Code CLI"
},
"guides": {
"cursor": {
@@ -1976,7 +1977,11 @@
"statusBanned": "已封禁 / 沙箱违规",
"statusCreditsExhausted": "余额不足 / 配额已耗尽",
"showEmails": "显示所有邮箱",
"hideEmails": "隐藏所有邮箱"
"hideEmails": "隐藏所有邮箱",
"imagesGenerations": "Images Generations",
"audioSpeech": "Audio Speech",
"audioTranscriptions": "Audio Transcriptions",
"embeddings": "Embeddings"
},
"settings": {
"title": "设置",