{
  "common": {
    "save": "зберегти",
    "cancel": "Скасувати",
    "delete": "Видалити",
    "loading": "Завантаження...",
    "error": "Сталася помилка",
    "success": "Успіх",
    "confirm": "Ви впевнені?",
    "refresh": "Оновити",
    "close": "Закрити",
    "add": "додати",
    "edit": "Редагувати",
    "search": "Пошук",
    "back": "Назад",
    "next": "Далі",
    "submit": "Надіслати",
    "reset": "Скинути",
    "copy": "Копія",
    "copied": "Скопійовано!",
    "enabled": "Увімкнено",
    "disabled": "Вимкнено",
    "active": "Активний",
    "inactive": "Неактивний",
    "noData": "Немає даних",
    "nothingHere": "Поки що нічого",
    "configure": "Налаштувати",
    "manage": "Керувати",
    "name": "Ім'я",
    "actions": "Дії",
    "status": "Статус",
    "type": "Тип",
    "model": "Модель",
    "models": "моделі",
    "provider": "Провайдер",
    "account": "Обліковий запис",
    "time": "час",
    "details": "Подробиці",
    "created": "Створено",
    "lastUsed": "Востаннє оновлено",
    "loadMore": "Завантажити більше",
    "noResults": "Результатів не знайдено",
    "reloadPage": "Перезавантажити сторінку",
    "connected": "Підключено",
    "disconnected": "Відключено",
    "notConfigured": "Не налаштовано",
    "testConnection": "Тестове підключення",
    "enable": "Увімкнути",
    "disable": "Вимкнути",
    "columns": "Стовпці",
    "newest": "Найновіший",
    "oldest": "Найстаріший",
    "all": "всі",
    "none": "Жодного",
    "yes": "так",
    "no": "немає",
    "on": "Увімк.",
    "off": "Вимк.",
    "warning": "Попередження",
    "note": "Примітка",
    "free": "безкоштовно",
    "skipToContent": "Перейти до вмісту",
    "maintenanceServerIssues": "Сервер працює нестабільно. Деякі функції можуть бути недоступні.",
    "maintenanceServerUnreachable": "Сервер недоступний. Перепідключення...",
    "accept": "прийняти",
    "accountId": "ID облікового запису",
    "alias": "Псевдонім",
    "apiKeyId": "Ідентифікатор ключа API",
    "apiKeyName": "Назва ключа API",
    "apiKeySecret": "Секретний ключ API",
    "authorization": "Авторизація",
    "content-type": "Тип вмісту",
    "content-length": "Довжина вмісту",
    "cookie": "Печиво",
    "file": "Файл",
    "host": "Хост",
    "id": "ID",
    "import": "Імпорт",
    "limit": "Ліміт",
    "offset": "Зсув",
    "open": "відкритий",
    "origin": "Походження",
    "promptTokens": "Жетони підказок",
    "completionTokens": "Жетони завершення",
    "totalTokens": "Загальна кількість токенів",
    "rawModel": "Необроблена модель",
    "scope": "Область застосування",
    "skill": "Майстерність",
    "sortBy": "Сортувати за",
    "sortOrder": "Порядок сортування",
    "tab": "вкладка",
    "text": "текст",
    "textarea": "Текстове поле",
    "tool": "Інструмент",
    "toolId": "ID інструменту",
    "web": "Інтернет",
    "whereUsed": "Де використовується",
    "whitelist": "Білий список",
    "blacklist": "Чорний список",
    "resolve": "Розв'язати",
    "force": "Сила",
    "base64url": "URL-адреса Base64",
    "hex": "Hex",
    "range": "Діапазон",
    "component": "компонент",
    "redirect_uri": "URI перенаправлення",
    "idempotency-key": "Ідемпотентний ключ",
    "error_description": "Опис помилки",
    "code": "Код",
    "compatible": "сумісний",
    "chat-completions": "Завершення чату",
    "oauth": "OAuth",
    "auth_token": "Маркер авторизації",
    "crypto": "Крипто",
    "hours": "години",
    "selfsigned": "Самопідписаний",
    "proxy_id": "ID проксі",
    "proxyId": "ID проксі",
    "connectionId": "ID підключення",
    "resolveConnectionId": "Вирішити ідентифікатор підключення",
    "resolve_connection_id": "Вирішити ідентифікатор підключення",
    "scope_id": "Ідентифікатор області",
    "scopeId": "Ідентифікатор області",
    "jwtSecret": "Секрет JWT",
    "keytar": "Keytar",
    "better-sqlite3": "краще-sqlite3",
    "undici": "undici",
    "builder-id": "ID забудовника",
    "musicDesc": "Опис музики",
    "musicGeneration": "Музичне покоління",
    "idc": "IDC",
    "cloud-status-changed": "Статус хмари змінено",
    "where_used": "Де використовується",
    "windowMs": "Вікно (мс)",
    "social-github": "GitHub",
    "social-google": "Google",
    "TOOL_ALLOWLIST": "Білий список інструментів",
    "TOOL_DENYLIST": "Інструмент Denylist",
    "Failed to save pricing": "Не вдалося зберегти ціни",
    "Failed to reset pricing": "Не вдалося скинути ціни",
    "apikey": "Ключ API",
    "http": "HTTP",
    "goToDashboard": "Перейти до панелі",
    "checkSystemStatus": "Перевірити стан системи",
    "selectModel": "Виберіть модель",
    "combos": "Комбінації",
    "noModelsFound": "Моделі не знайдено",
    "clear": "Очистити",
    "done": "Готово",
    "errorOccurred": "Сталася помилка",
    "comboDeleted": "Комбінацію видалено",
    "hide": "Приховати",
    "creating": "Створення",
    "comboCreated": "Комбінацію створено",
    "swapFormats": "Поміняти формати",
    "daysAgo": "{count} днів тому",
    "retries": "Повтори",
    "errorDuringRestore": "Помилка під час відновлення",
    "eventsAppearHint": "Події з'являться тут",
    "noLockouts": "Блокувань немає",
    "webSearchDesc": "Пошук в Інтернеті",
    "audioProvidersHeading": "Аудіопровайдери",
    "cloudAgentProviders": "Постачальники хмарних агентів",
    "minutesAgo": "{count} хв тому",
    "a": "A",
    "liveAutoRefreshing": "Наживо · автооновлення",
    "webSearch": "Веб-пошук",
    "anthropicPrefixPlaceholder": "Префікс Anthropic",
    "addModelToCombo": "Додати модель до комбінації",
    "failedToLoad": "Не вдалося завантажити",
    "categoryMedia": "Медіа",
    "enableCloud": "Увімкнути хмару",
    "expirationBannerExpiringSoon": "Скоро закінчиться",
    "retry": "Повторити",
    "embeddings": "Вбудовування",
    "errorCount": "Кількість помилок",
    "backupReasonManual": "Ручне резервне копіювання",
    "safeSearchModerate": "Помірний",
    "activeLimiters": "Активні обмежувачі",
    "a2aCardTitle": "A2A Card Title",
    "cloudWorkerUnreachable": "Cloud Worker Unreachable",
    "testFailed": "Test Failed",
    "compatibleBaseUrlHint": "Compatible Base Url Hint",
    "usageTracking": "Usage Tracking",
    "disableCloudTitle": "Disable Cloud Title",
    "noConnections": "No Connections",
    "providerHealth": "Provider Health",
    "confirmDbImport": "Confirm Db Import",
    "notAvailableSymbol": "Not Available Symbol",
    "backupsAvailable": "Backups Available",
    "providerAuto": "Provider Auto",
    "newProviderNamePlaceholder": "New Provider Name Placeholder",
    "a2aQuickStartStep2": "A2A Quick Start Step2",
    "ok": "Ok",
    "available": "Available",
    "noBackupYet": "No Backup Yet",
    "more": "More",
    "noCompatibleYet": "No Compatible Yet",
    "multiProvider": "Multi Provider",
    "repairEnvHint": "Repair Env Hint",
    "disablingCloud": "Disabling Cloud",
    "testBench": "Test Bench",
    "valid": "Valid",
    "cloudBenefitShare": "Cloud Benefit Share",
    "mcpCardTitle": "Mcp Card Title",
    "disableConfirm": "Disable Confirm",
    "filters": "Filters",
    "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
    "saveComboDefaults": "Save Combo Defaults",
    "cloudConnectedVerified": "Cloud Connected Verified",
    "uptime": "Uptime",
    "compatibleProdPlaceholder": "Compatible Prod Placeholder",
    "fallbackChainsTitle": "Fallback Chains Title",
    "oauthLabel": "Oauth Label",
    "a2aCardDescription": "A2A Card Description",
    "okShort": "Ok Short",
    "maintenance": "Maintenance",
    "formatConverter": "Format Converter",
    "zedImportNetworkError": "Zed Import Network Error",
    "apiKeyLabel": "Api Key Label",
    "noModelsForProvider": "No Models For Provider",
    "mcpCardDescription": "Mcp Card Description",
    "apiTypeLabel": "Api Type Label",
    "configuredProvidersLabel": "Configured Providers Label",
    "maxRetriesLabel": "Max Retries Label",
    "title": "Title",
    "output": "Output",
    "prefixHint": "Prefix Hint",
    "skipWizard": "Skip Wizard",
    "failedCount": "Failed Count",
    "confirmDbImportDesc": "Confirm Db Import Desc",
    "entries": "Entries",
    "until": "Until",
    "disableCombo": "Disable Combo",
    "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
    "runningCount": "Running Count",
    "noActiveConnectionsInGroup": "No Active Connections In Group",
    "savedSuccessfully": "Saved Successfully",
    "systemStorage": "System Storage",
    "videoDesc": "Video Desc",
    "maxResults": "Max Results",
    "timeRangeMonth": "Time Range Month",
    "testSummary": "Test Summary",
    "failedSetPassword": "Failed Set Password",
    "audio": "Audio",
    "restore": "Restore",
    "disableWarning": "Disable Warning",
    "moderationsDesc": "Moderations Desc",
    "providerHealthStatusAria": "Provider Health Status Aria",
    "modelNamePlaceholder": "Model Name Placeholder",
    "mcpQuickStartStep2": "Mcp Quick Start Step2",
    "quickStart": "Quick Start",
    "fullExportFailedWithError": "Full Export Failed With Error",
    "loadingBackups": "Loading Backups",
    "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
    "description": "Description",
    "noProviderFound": "No Provider Found",
    "auto": "Auto",
    "protocolsDescription": "Protocols Description",
    "cloudSessionNote": "Cloud Session Note",
    "advancedSettings": "Advanced Settings",
    "defaultStrategy": "Default Strategy",
    "purgeExpiredLogs": "Purge Expired Logs",
    "justNow": "Just Now",
    "providerTestFailed": "Provider Test Failed",
    "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
    "image": "Image",
    "failedCreateChain": "Failed Create Chain",
    "importDatabase": "Import Database",
    "allDataLocal": "All Data Local",
    "sectionTitle": "Section Title",
    "failedToggle": "Failed Toggle",
    "editCombo": "Edit Combo",
    "testResults": "Test Results",
    "searchQuery": "Search Query",
    "addCcCompatible": "Add Cc Compatible",
    "duplicate": "Duplicate",
    "createCombo": "Create Combo",
    "searchTypeWeb": "Search Type Web",
    "addChain": "Add Chain",
    "prefixLabel": "Prefix Label",
    "listModelsDesc": "List Models Desc",
    "databaseSize": "Database Size",
    "chainCreated": "Chain Created",
    "providerTestTimeout": "Provider Test Timeout",
    "routingStrategy": "Routing Strategy",
    "translateAction": "Translate Action",
    "exportFailed": "Export Failed",
    "connectedVerificationPending": "Connected Verification Pending",
    "a2aQuickStartTitle": "A2A Quick Start Title",
    "couldNotTest": "Could Not Test",
    "testAllCompatible": "Test All Compatible",
    "anthropicCompatibleName": "Anthropic Compatible Name",
    "disabling": "Disabling",
    "failedEnable": "Failed Enable",
    "categoryUtility": "Category Utility",
    "customUrlOptional": "Custom Url Optional",
    "localProviders": "Local Providers",
    "comboNamePlaceholder": "Combo Name Placeholder",
    "memoryRss": "Memory Rss",
    "disableProvider": "Disable Provider",
    "welcomeDesc": "Welcome Desc",
    "nameLabel": "Name Label",
    "allOperational": "All Operational",
    "backupNow": "Backup Now",
    "providerMaxRetriesAria": "Provider Max Retries Aria",
    "textToSpeechDesc": "Text To Speech Desc",
    "machineId": "Machine Id",
    "globalProxy": "Global Proxy",
    "hitsMisses": "Hits Misses",
    "testDesc": "Test Desc",
    "chatDesc": "Chat Desc",
    "importSuccess": "Import Success",
    "chat": "Chat",
    "a2aQuickStartStep1": "A2A Quick Start Step1",
    "importFailed": "Import Failed",
    "inputPlaceholder": "Input Placeholder",
    "providerModelsTitle": "Provider Models Title",
    "lastBackup": "Last Backup",
    "yourEndpoint": "Your Endpoint",
    "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
    "rerankDesc": "Rerank Desc",
    "modelsPathPlaceholder": "Models Path Placeholder",
    "noCombosYet": "No Combos Yet",
    "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
    "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
    "enableCloudTitle": "Enable Cloud Title",
    "configuredProvidersHint": "Configured Providers Hint",
    "paused": "Paused",
    "llmProviders": "Llm Providers",
    "enableCombo": "Enable Combo",
    "removeProviderOverrideAria": "Remove Provider Override Aria",
    "nodeVersion": "Node Version",
    "openai": "Openai",
    "exportFailedWithError": "Export Failed With Error",
    "proxyConfigured": "Proxy Configured",
    "concurrencyPerModel": "Concurrency Per Model",
    "protocolTasksLabel": "Protocol Tasks Label",
    "oauthProviders": "Oauth Providers",
    "lockedCount": "Locked Count",
    "deleteChainConfirm": "Delete Chain Confirm",
    "recentTranslations": "Recent Translations",
    "zedImportButton": "Zed Import Button",
    "responsesDesc": "Responses Desc",
    "testedCount": "Tested Count",
    "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
    "signatureDefaults": "Signature Defaults",
    "errorCreating": "Error Creating",
    "timeRangeYear": "Time Range Year",
    "compatibleLabel": "Compatible Label",
    "cloudDisabledSuccess": "Cloud Disabled Success",
    "deleteConfirm": "Delete Confirm",
    "check": "Check",
    "safeSearch": "Safe Search",
    "protocolLastActivity": "Protocol Last Activity",
    "openMcpDashboard": "Open Mcp Dashboard",
    "testBenchTab": "Test Bench Tab",
    "chatPathLabel": "Chat Path Label",
    "retryDelay": "Retry Delay",
    "errorUpdating": "Error Updating",
    "ideCliIntegrations": "Ide Cli Integrations",
    "imageGeneration": "Image Generation",
    "apiKeyRequired": "Api Key Required",
    "resetAllTitle": "Reset All Title",
    "connectionError": "Connection Error",
    "modelName": "Model Name",
    "apiKeyForCheck": "Api Key For Check",
    "cloudRequestTimeout": "Cloud Request Timeout",
    "showConfiguredOnly": "Show Configured Only",
    "showFreeOnly": "Тільки безкоштовно",
    "addFirstProvider": "Додайте свого першого постачальника",
    "addFirstProviderDesc": "Підключіть постачальника AI, щоб розпочати маршрутизацію запитів через OmniRoute. Ви можете використовувати безкоштовні постачальники, ключі API або облікові записи OAuth.",
    "learnMore": "Дізнайтесь більше",
    "includeDomains": "Include Domains",
    "promptCache": "Prompt Cache",
    "cloudConnected": "Cloud Connected",
    "deleteChain": "Delete Chain",
    "chatPathPlaceholder": "Chat Path Placeholder",
    "databasePath": "Database Path",
    "usingLocalServer": "Using Local Server",
    "globalComboConfig": "Global Combo Config",
    "backupFailed": "Backup Failed",
    "tabProtocols": "Tab Protocols",
    "continue": "Continue",
    "categorySearch": "Category Search",
    "rateLimitStatus": "Rate Limit Status",
    "repairEnvSuccess": "Repair Env Success",
    "nameRequired": "Name Required",
    "country": "Country",
    "trackMetricsDesc": "Track Metrics Desc",
    "durationSecondsShort": "Duration Seconds Short",
    "formatConverterDescription": "Format Converter Description",
    "cloudBenefitAccess": "Cloud Benefit Access",
    "maxRetries": "Max Retries",
    "queueTimeout": "Queue Timeout",
    "addProvider": "Add Provider",
    "realtime": "Realtime",
    "totalTranslations": "Total Translations",
    "protocolActiveStreamsLabel": "Protocol Active Streams Label",
    "repairEnv": "Repair Env",
    "modelsCount": "Models Count",
    "viewBackups": "View Backups",
    "responsesApi": "Responses Api",
    "copyComboName": "Copy Combo Name",
    "failures": "Failures",
    "failedUpdate": "Failed Update",
    "imageDesc": "Image Desc",
    "failedCreate": "Failed Create",
    "remainingOfLimit": "Remaining Of Limit",
    "protocolsTitle": "Protocols Title",
    "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
    "source": "Source",
    "failed": "Failed",
    "apiKeyMgmt": "Api Key Mgmt",
    "mcpQuickStartStep1": "Mcp Quick Start Step1",
    "runTest": "Run Test",
    "loadingFallbackChains": "Loading Fallback Chains",
    "healthy": "Healthy",
    "version": "Version",
    "saveBlockWeighted": "Save Block Weighted",
    "zedImportNone": "Zed Import None",
    "noBackupsYet": "No Backups Yet",
    "noGlobalProxy": "No Global Proxy",
    "noModels": "No Models",
    "stickyLimit": "Sticky Limit",
    "passedCount": "Passed Count",
    "zedImportFailed": "Zed Import Failed",
    "saving": "Saving",
    "testAll": "Test All",
    "globalProxyDesc": "Global Proxy Desc",
    "latencyP99": "Latency P99",
    "connectingToCloud": "Connecting To Cloud",
    "responses": "Responses",
    "errorDeleting": "Error Deleting",
    "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
    "enterPassword": "Enter Password",
    "openA2aDashboard": "Open A2A Dashboard",
    "enableProvider": "Enable Provider",
    "modeTest": "Mode Test",
    "failedDeleteChain": "Failed Delete Chain",
    "providerDesc": "Provider Desc",
    "templateLoadHint": "Template Load Hint",
    "lastFailure": "Last Failure",
    "moveDown": "Move Down",
    "providerLabel": "Provider Label",
    "clearCacheFailed": "Clear Cache Failed",
    "imagesGenerations": "Images Generations",
    "repairEnvWorking": "Repair Env Working",
    "millisecondsShort": "Milliseconds Short",
    "globalLabel": "Global Label",
    "failuresPlural": "Failures Plural",
    "completionsLegacyDesc": "Completions Legacy Desc",
    "searchProviders": "Search Providers",
    "chatPathHint": "Chat Path Hint",
    "defaultStrategyDesc": "Default Strategy Desc",
    "latencyP95": "Latency P95",
    "textToSpeech": "Text To Speech",
    "searchType": "Search Type",
    "messages": "Messages",
    "aggregatorsGateways": "Aggregators Gateways",
    "comboStrategyAria": "Combo Strategy Aria",
    "input": "Input",
    "testingConnection": "Testing Connection",
    "excludeDomains": "Exclude Domains",
    "webCookieProviders": "Web Cookie Providers",
    "allTestsPassed": "All Tests Passed",
    "openaiCompatibleName": "Openai Compatible Name",
    "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
    "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
    "hoursAgo": "Hours Ago",
    "notAvailable": "Not Available",
    "skipAndContinue": "Skip And Continue",
    "moderations": "Moderations",
    "proxyConfig": "Proxy Config",
    "upstreamProxyProviders": "Upstream Proxy Providers",
    "exportAll": "Export All",
    "queuedCount": "Queued Count",
    "resetAll": "Reset All",
    "noTranslations": "No Translations",
    "avgLatency": "Avg Latency",
    "throttleStatus": "Throttle Status",
    "backupRetentionDesc": "Backup Retention Desc",
    "noCBData": "No Cb Data",
    "chainDeleted": "Chain Deleted",
    "timeLeft": "Time Left",
    "expirationBannerExpired": "Expiration Banner Expired",
    "language": "Language",
    "invalidFileType": "Invalid File Type",
    "monitoredProviders": "Monitored Providers",
    "errors": "Errors",
    "heap": "Heap",
    "chatCompletions": "Chat Completions",
    "exampleTemplatesHint": "Example Templates Hint",
    "retryDelayLabel": "Retry Delay Label",
    "audioTranscription": "Audio Transcription",
    "fallbackChainsDesc": "Fallback Chains Desc",
    "exampleTemplates": "Example Templates",
    "connectionsCount": "Connections Count",
    "modelsPathLabel": "Models Path Label",
    "activeProvidersHint": "Active Providers Hint",
    "activeLockouts": "Active Lockouts",
    "invalid": "Invalid",
    "skipPassword": "Skip Password",
    "moveUp": "Move Up",
    "timeRange": "Time Range",
    "stickyLimitDesc": "Sticky Limit Desc",
    "cloudBenefitEdge": "Cloud Benefit Edge",
    "custom": "Custom",
    "verifying": "Verifying",
    "baseUrlLabel": "Base Url Label",
    "setPassword": "Set Password",
    "safeSearchStrict": "Safe Search Strict",
    "noChangesSinceBackup": "No Changes Since Backup",
    "modelsPathHint": "Models Path Hint",
    "audioTranscriptions": "Audio Transcriptions",
    "testCombo": "Test Combo",
    "mcpQuickStartTitle": "Mcp Quick Start Title",
    "comboUpdated": "Combo Updated",
    "weighted": "Weighted",
    "providers": "Providers",
    "ccCompatibleLabel": "Cc Compatible Label",
    "noFallbackChainsDesc": "No Fallback Chains Desc",
    "yesImport": "Yes Import",
    "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
    "tabApis": "Tab Apis",
    "sectionDescription": "Section Description",
    "filter": "Filter",
    "purgeLogsFailed": "Purge Logs Failed",
    "latency": "Latency",
    "testAllOAuth": "Test All O Auth",
    "mcpQuickStartStep3": "Mcp Quick Start Step3",
    "repairEnvFailed": "Repair Env Failed",
    "zedImportHint": "Zed Import Hint",
    "modelsAcrossEndpoints": "Models Across Endpoints",
    "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
    "securityDesc": "Security Desc",
    "listModels": "List Models",
    "backupRestore": "Backup Restore",
    "target": "Target",
    "zedImportSuccess": "Zed Import Success",
    "lastHeaderUpdate": "Last Header Update",
    "categoryCore": "Category Core",
    "noFallbackChains": "No Fallback Chains",
    "noSearchProviders": "No Search Providers",
    "autoBalance": "Auto Balance",
    "noModelsYet": "No Models Yet",
    "signatureFamily": "Signature Family",
    "externalApiCalls": "External Api Calls",
    "providerOverridesDesc": "Provider Overrides Desc",
    "signatureTool": "Signature Tool",
    "connectionFailed": "Connection Failed",
    "activeLimitersPlural": "Active Limiters Plural",
    "doneDesc": "Done Desc",
    "down": "Down",
    "noDataYet": "No Data Yet",
    "activeProviders": "Active Providers",
    "nameInvalid": "Name Invalid",
    "skip": "Skip",
    "createChain": "Create Chain",
    "audioSpeech": "Audio Speech",
    "cacheCleared": "Cache Cleared",
    "searchTypeNews": "Search Type News",
    "durationMillisecondsShort": "Duration Milliseconds Short",
    "addOpenAICompatible": "Add Open Ai Compatible",
    "chatTesterTab": "Chat Tester Tab",
    "queued": "Queued",
    "domainPlaceholder": "Domain Placeholder",
    "durationMinutesShort": "Duration Minutes Short",
    "verifyingConnection": "Verifying Connection",
    "imageProviders": "Image Providers",
    "protocolToolsLabel": "Protocol Tools Label",
    "queryPlaceholder": "Query Placeholder",
    "videoGeneration": "Video Generation",
    "timeRangeWeek": "Time Range Week",
    "limitExhausted": "Limit Exhausted",
    "failedDisable": "Failed Disable",
    "inMemoryNote": "In Memory Note",
    "compatibleHint": "Compatible Hint",
    "errorShort": "Error Short",
    "advancedHint": "Advanced Hint",
    "restoreFailed": "Restore Failed",
    "searchProvidersHeading": "Search Providers Heading",
    "comboName": "Combo Name",
    "autoDisableDescription": "Auto Disable Description",
    "embeddingsDesc": "Векторні представлення для семантичного пошуку",
    "operational": "Operational",
    "testAllApiKey": "Test All Api Key",
    "backupCreated": "Backup Created",
    "errorDuringImport": "Error During Import",
    "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
    "connecting": "Connecting",
    "fillModelAndProviders": "Fill Model And Providers",
    "syncing": "Syncing",
    "resetConfirm": "Reset Confirm",
    "trackMetrics": "Track Metrics",
    "successful": "Successful",
    "recovering": "Recovering",
    "autoDisableThreshold": "Auto Disable Threshold",
    "anthropic": "Anthropic",
    "syncingData": "Syncing Data",
    "cloudBenefitPorts": "Cloud Benefit Ports",
    "compatibleProviders": "Compatible Providers",
    "freeTierProviders": "Безкоштовні постачальники рівня",
    "freeTierLabel": "Доступний безкоштовний рівень",
    "freeTierProvidersDesc": "Постачальники з безкоштовними рівнями — деякі вимагають реєстрації ключа API, інші взагалі не потребують облікових даних.",
    "clearCache": "Clear Cache",
    "reqs": "Reqs",
    "addAnthropicCompatible": "Add Anthropic Compatible",
    "apiKeyProviders": "Api Key Providers",
    "tabsAria": "Tabs Aria",
    "resetting": "Resetting",
    "millisecondsAbbr": "Milliseconds Abbr",
    "backupReasonPreRestore": "Backup Reason Pre Restore",
    "disableCloud": "Disable Cloud",
    "newProviderNameAria": "New Provider Name Aria",
    "passwordsMismatch": "Passwords Mismatch",
    "a2aQuickStartStep3": "A2A Quick Start Step3",
    "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
    "failedAddProvider": "Failed Add Provider",
    "addAtLeastOneProvider": "Add At Least One Provider",
    "reasonSeparator": "Reason Separator",
    "zedImporting": "Zed Importing",
    "confirmPasswordPlaceholder": "Confirm Password Placeholder",
    "whatYouGet": "What You Get",
    "signatureSession": "Signature Session",
    "errorCountNoCode": "Error Count No Code",
    "testing": "Testing",
    "providersCommaSeparated": "Providers Comma Separated",
    "exportDatabase": "Export Database",
    "hitRate": "Hit Rate",
    "completionsLegacy": "Completions Legacy",
    "removeModel": "Remove Model",
    "timeRangeDay": "Time Range Day",
    "cloudRequestFailed": "Cloud Request Failed",
    "updatedAt": "Updated At",
    "monitoredProvidersHint": "Monitored Providers Hint",
    "connectionSuccessful": "Connection Successful",
    "latencyP50": "Latency P50",
    "logsDeleted": "Logs Deleted",
    "chatTester": "Chat Tester",
    "safeSearchOff": "Safe Search Off",
    "nameHint": "Name Hint",
    "debugToggle": "Debug Toggle",
    "embedding": "Embedding",
    "issuesLabel": "Issues Label",
    "optionAny": "Option Any",
    "maxNestingDepth": "Max Nesting Depth",
    "rerank": "Rerank",
    "checking": "Checking",
    "getStarted": "Get Started",
    "restoreSuccess": "Restore Success",
    "issuesDetected": "Issues Detected",
    "signatureCache": "Signature Cache",
    "modelLockouts": "Model Lockouts",
    "usingCloudProxy": "Using Cloud Proxy",
    "loadingHealth": "Loading Health",
    "providerOverrides": "Provider Overrides",
    "audioTranscriptionDesc": "Audio Transcription Desc",
    "learnedFromHeaders": "Learned From Headers",
    "totalRequests": "Total Requests",
    "cloudUnstableNote": "Cloud Unstable Note",
    "gamificationAdmin": "Адміністратор Gamification",
    "monitorAnomaliesAndHealth": "Відстежуйте аномалії та стан системи",
    "flaggedAnomalies": "Позначені аномалії",
    "noAnomaliesDetected": "Аномалій не виявлено",
    "apiKey": "Ключ API",
    "xpLastHour": "XP (1 год)",
    "zScore": "Z-оцінка",
    "tokensCommunityServers": "Сервери спільноти",
    "tokensServerNamePlaceholder": "Ім'я сервера",
    "tokensApiKeyPlaceholder": "Ключ API",
    "tokensTokenBalance": "Токен Баланс",
    "tokensSendTokens": "Надіслати токени",
    "tokensRecipientApiKeyId": "ID ключа API одержувача",
    "tokensRecipientApiKeyIdPlaceholder": "Введіть ідентифікатор ключа API одержувача",
    "tokensReasonOptional": "Причина (необов'язково)",
    "tokensReasonPlaceholder": "напр. бонус, винагорода",
    "tokensTransactionHistory": "Історія транзакцій",
    "tokensNoTransactionsYet": "Угод ще немає",
    "tokensInviteCodes": "Коди запрошень",
    "tokensMaxUses": "Макс використовує",
    "tokensRedeemCode": "Викупити код",
    "tokensRedeemCodePlaceholder": "Введіть код запрошення",
    "tokensYourActiveInvites": "Ваші активні запрошення",
    "tierCoverageTitle": "Покриття рівня",
    "tierCoverageSubtitle": "Постачальники, налаштовані на резервний рівень",
    "batchDetailCopyId": "Копіювати ідентифікатор",
    "batchDetailClose": "Закрити",
    "batchDetailEndpoint": "Кінцева точка",
    "batchDetailModel": "Модель",
    "batchDetailWindow": "Вікно",
    "batchDetailCreated": "Створено",
    "providerTopologyEmpty": "Ще немає підключених провайдерів",
    "badgeToastUnlocked": "Значок розблоковано!",
    "batchListSearchPlaceholder": "Пошук за ідентифікатором, кінцевою точкою, моделлю…",
    "batchListDeleteAllCompletedTitle": "Видалити всі завершені пакети",
    "batchListBatchesTable": "Партії",
    "changelogViewerLoading": "Завантаження журналу змін із GitHub...",
    "profileLoading": "Завантаження профілю...",
    "profileHowToEarn": "Як заробити",
    "bootstrapBannerDismiss": "Відхилити",
    "batchListDeleteBatchTitle": "Видалити пакет і його файли",
    "leaderboardYourRank": "Ваш ранг",
    "leaderboardLoading": "Завантаження таблиці лідерів...",
    "batchFileDetailCopyId": "Копіювати ідентифікатор",
    "batchFileDetailClose": "Закрити",
    "batchFileDetailFailedToLoad": "Не вдалося завантажити вміст файлу",
    "batchFilesListSearchPlaceholder": "Пошук за ідентифікатором або назвою файлу…",
    "batchFilesListFilesTable": "Файли",
    "batchPageLoadingMore": "Завантаження більше…",
    "recommended": "Рекомендовано",
    "batchConceptTitle": "Batch processing",
    "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
    "batchConceptHowItWorks": "How it works",
    "batchConceptBenefit50pct": "50% discount on input + output tokens",
    "batchConceptAsync24h": "Async with a 24h completion window",
    "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
    "filesConceptTitle": "Batch files",
    "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
    "filesConceptInput": "Input — your JSONL with one request per line",
    "filesConceptOutput": "Output — results from completed requests",
    "filesConceptError": "Errors — requests that failed",
    "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
    "wizardTitle": "New batch",
    "wizardClose": "Close",
    "wizardNext": "Next",
    "wizardBack": "Back",
    "wizardCancel": "Cancel",
    "wizardCreate": "Create batch",
    "wizardCreating": "Creating…",
    "wizardStep1Destination": "Destination",
    "wizardStep2Input": "Input",
    "wizardStep3Validate": "Validate",
    "wizardStep4Cost": "Cost & create",
    "wizardProviderLabel": "Provider",
    "wizardEndpointLabel": "Endpoint",
    "wizardModelLabel": "Model",
    "wizardInputKindJsonl": "JSONL",
    "wizardInputKindCsv": "CSV (we'll convert)",
    "wizardDropOrPick": "Drop a file or click to pick",
    "wizardCsvMappingTitle": "Map CSV columns → request fields",
    "wizardCsvMappingAddField": "Add field",
    "wizardValidationOk": "All lines valid",
    "wizardValidationErrors": "Validation errors",
    "wizardValidationPreview": "Preview (first 5 requests)",
    "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
    "wizardCostSync": "Sync cost",
    "wizardCostBatch": "Batch cost (-50%)",
    "wizardCostSavings": "Savings",
    "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
    "wizardErrorUpload": "Failed to upload file. Try again.",
    "wizardErrorCreate": "Failed to create batch. Try again.",
    "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
    "uploadModalTitle": "Upload batch file",
    "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
    "uploadModalUpload": "Upload",
    "uploadModalCancel": "Cancel",
    "uploadModalError": "Upload failed. Try again.",
    "uploadModalSuccess": "Uploaded",
    "uploadModalSizeLimit": "Max 512 MB",
    "batchListNewButton": "New batch",
    "batchListAutoRefresh": "Auto-refresh 30s",
    "batchListCostColumn": "Cost",
    "batchActionCancel": "Cancel",
    "batchActionDownloadOutput": "Download output",
    "batchActionDownloadErrors": "Download errors",
    "batchActionRetry": "Retry failed",
    "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
    "expirationBadgeCritical": "Critical",
    "expirationBadgeWarning": "Soon",
    "expirationBadgeNormal": "Pending",
    "expirationBadgeExpired": "Expired",
    "filesListUploadButton": "Upload",
    "filesListUsedByColumn": "Used by",
    "filesListUsedByNone": "None",
    "filesListDelete": "Delete",
    "filesListDownload": "Download",
    "batchDetailActionCancel": "Cancel batch",
    "batchDetailActionRetry": "Retry failed requests",
    "batchDetailCancelling": "Cancelling…",
    "batchDetailRetrying": "Preparing retry…",
    "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
    "batchActionCancelError": "Failed to cancel batch. Try again.",
    "batchActionRetryError": "Failed to retry failed requests. Try again.",
    "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
    "filesListUsedByRoleInput": "input",
    "filesListUsedByRoleOutput": "output",
    "filesListUsedByRoleError": "error",
    "batchListProgressPartial": "(partial)",
    "filesListSizeColumn": "Size",
    "batchListProviderColumn": "Provider",
    "batchListProviderUnknown": "—",
    "batchListBatchCreated": "Batch {id} created — refreshing list…",
    "batchListBatchCreatedDismiss": "Dismiss",
    "batchListRefreshing": "Refreshing…",
    "batchListRefresh": "Refresh",
    "uploadFileModalRemove": "Remove",
    "uploadFileModalUploading": "Uploading…",
    "wizardInputReading": "Reading file…",
    "wizardInputReady": "Ready",
    "wizardInputLargeFileLabel": "Large file — sampling validation",
    "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
    "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
    "wizardCostWindow24h": "24h completion window",
    "wizardValidationFieldsOk": "required fields valid",
    "batchListProviderOther": "Other",
    "batchListTitle": "Batches",
    "batchListCount": "{count} batches",
    "batchListRemovingCompleted": "Removing…",
    "batchListRemoveCompleted": "Remove completed",
    "batchListTableStatus": "Status",
    "batchListTableId": "ID",
    "batchListTableEndpoint": "Endpoint",
    "batchListTableModel": "Model",
    "batchListTableProgress": "Progress",
    "batchListTableCreated": "Created",
    "batchListTableExpires": "Expires",
    "batchListLoading": "Loading…",
    "batchListEmpty": "No batches found",
    "batchListValidating": "Validating…",
    "batchStatusAll": "All statuses",
    "batchStatusInProgress": "In progress",
    "batchStatusValidating": "Validating",
    "batchStatusFinalizing": "Finalizing",
    "batchStatusCompleted": "Completed",
    "batchStatusFailed": "Failed",
    "batchStatusCancelled": "Cancelled",
    "batchStatusCancelling": "Cancelling",
    "batchStatusExpired": "Expired",
    "batchStatusCompletedWithFailures": "completed with failures",
    "batchStatusInProgressWithFailures": "in progress (with failures)",
    "batchStatusFinalizingWithFailures": "finalizing (with failures)",
    "batchStatusCancelledWithFailures": "cancelled with failures",
    "batchStatusExpiredWithFailures": "expired (partial)",
    "wizardCostEstimating": "Estimating cost…",
    "wizardCostRequests": "Requests",
    "wizardCostInputTok": "input tok",
    "wizardCostOutputTok": "output tok",
    "wizardCostWindow": "Window",
    "wizardDestinationSelectProvider": "Select a provider…",
    "wizardDestinationSelectModel": "Select a model…",
    "wizardDestinationConnectProvider": "Connect a provider"
  },
  "sidebar": {
    "home": "додому",
    "dashboard": "Приладова панель",
    "providers": "Провайдери",
    "combos": "Комбо",
    "usage": "Використання",
    "analytics": "Аналітика",
    "costs": "Витрати",
    "health": "Здоров'я",
    "proxy": "Проксі",
    "limits": "Ліміти та квоти",
    "cliTools": "Інструменти CLI",
    "media": "Медіа",
    "settings": "Налаштування",
    "translator": "Перекладач",
    "playground": "Пісочниця",
    "searchTools": "Інструменти пошуку",
    "agents": "Агенти",
    "cloudAgents": "Хмарні агенти",
    "memory": "Пам'ять",
    "skills": "Навички",
    "omniSkills": "OmniSkills",
    "agentSkills": "Навички агентів",
    "docs": "документи",
    "issues": "Питання",
    "endpoints": "Кінцеві точки",
    "endpointsSubtitle": "Ваші URL-адреси підключення AI",
    "apiManager": "Менеджер API",
    "apiManagerSubtitle": "Керуйте ключами API та доступом",
    "embeddedServices": "Вбудовані сервіси",
    "embeddedServicesSubtitle": "Керування локальними проксі-сервісами",
    "logs": "Журнали",
    "webhooks": "Веб-хуки",
    "webhooksSubtitle": "Отримуйте сповіщення про події",
    "combosSubtitle": "Групуйте постачальників для відновлення після відмови",
    "batchSubtitle": "Обробка кількох запитів",
    "contextCavemanSubtitle": "Швидке стиснення",
    "contextRtkSubtitle": "Фільтрація виходу",
    "auditLog": "Журнал аудиту",
    "shutdown": "Вимкнути",
    "restart": "Перезапуск",
    "shutdownConfirm": "Вимкнути OmniRoute?",
    "restartConfirm": "Перезапустити OmniRoute?",
    "version": "v{version}",
    "debug": "Налагодження",
    "system": "система",
    "help": "Довідка",
    "primarySection": "Головне",
    "cliSection": "CLI",
    "debugSection": "Налагодження",
    "systemSection": "Система",
    "helpSection": "Довідка",
    "serverDisconnected": "Сервер відключено",
    "serverDisconnectedMsg": "Проксі-сервер зупинено або перезавантажується.",
    "expandSidebar": "Розгорнути бічну панель",
    "collapseSidebar": "Згорнути бічну панель",
    "themes": "Теми",
    "presetColors": "Популярні кольори",
    "createTheme": "Створити тему",
    "chooseColor": "Виберіть колір",
    "themeCoral": "Кораловий",
    "themeBlue": "Синій",
    "themeRed": "Червоний",
    "themeGreen": "Зелений",
    "themeViolet": "Фіолетовий",
    "themeOrange": "Помаранчевий",
    "themeCyan": "Бірюзовий",
    "cliToolsShort": "Інструменти",
    "cache": "Кеш",
    "cacheShort": "Кеш",
    "batch": "Пакетні завдання",
    "themeSystem": "Системна тема",
    "whitelabelingDesc": "Білий лейбл",
    "switchThemes": "Перемкнути теми",
    "themeAccentDesc": "Акцентний колір теми",
    "uploadFavicon": "Завантажити favicon",
    "themeDark": "Темна тема",
    "customLogoDesc": "Користувацький логотип",
    "sidebarVisibilityToggle": "Видимість бічної панелі",
    "themeAccent": "Акцент теми",
    "resetFavicon": "Скинути favicon",
    "whitelabeling": "Білий лейбл",
    "darkMode": "Темний режим",
    "uploadLogo": "Завантажити логотип",
    "themeLight": "Світла тема",
    "appName": "Назва застосунку",
    "appNameDesc": "Назва застосунку",
    "resetLogo": "Скинути логотип",
    "customFavicon": "Користувацький favicon",
    "hideHealthLogs": "Приховати логи стану",
    "customLogo": "Користувацький логотип",
    "appearance": "Зовнішній вигляд",
    "themeSelectionAria": "Вибір теми",
    "themeCreate": "Створити тему",
    "customFaviconDesc": "Користувацький favicon",
    "logoPreview": "Перегляд логотипа",
    "themeCustom": "Користувацька тема",
    "hideHealthLogsDesc": "Приховати логи стану",
    "faviconPreview": "Перегляд favicon",
    "changelog": "Журнал змін",
    "contextSection": "Контекст і кеш",
    "contextCaveman": "Caveman",
    "contextRtk": "RTK",
    "contextCombos": "Комбінації двигунів",
    "routingSection": "Маршрутизація",
    "protocolsSection": "Протоколи",
    "agentsAiSection": "Агенти та AI",
    "cacheContextSection": "Кеш і контекст",
    "analyticsSection": "Аналітика",
    "costsSection": "Витрати",
    "monitoringSection": "Моніторинг",
    "auditSecuritySection": "Аудит і безпека",
    "devtoolsSection": "Інструменти розробника",
    "configurationSection": "Налаштування",
    "aiFeaturesSection": "Функції AI",
    "mcp": "MCP",
    "a2a": "A2A",
    "apiEndpoints": "API-ендпоінти",
    "batchFiles": "Файли",
    "analyticsEvals": "Оцінювання",
    "analyticsSearch": "Пошук",
    "analyticsUtilization": "Завантаженість",
    "analyticsComboHealth": "Стан комбінацій",
    "analyticsCompression": "Стиснення",
    "costsBudget": "Бюджет",
    "costsQuotaShare": "Спільні квоти",
    "costsPricing": "Ціноутворення",
    "logsProxy": "Логи проксі",
    "logsConsole": "Консоль",
    "logsActivity": "Активність",
    "auditMcp": "Аудит MCP",
    "auditA2a": "Аудит A2A",
    "settingsGeneral": "Загальні",
    "settingsAppearance": "Зовнішній вигляд",
    "settingsAi": "Налаштування AI",
    "settingsSecurity": "Безпека",
    "settingsFeatureFlags": "Прапори функцій",
    "settingsAuthz": "Авторизація",
    "settingsRouting": "Маршрутизація",
    "settingsResilience": "Стійкість",
    "settingsAdvanced": "Розширені",
    "omniProxySection": "OmniProxy",
    "quotaTracker": "Квоти провайдерів",
    "providerQuota": "Квоти провайдерів",
    "runtime": "Середовище виконання",
    "consoleLogs": "Логи консолі",
    "globalRouting": "Глобальна маршрутизація",
    "mitmProxy": "MITM-проксі",
    "oneProxy": "1Proxy",
    "agenticFeaturesSection": "Агентні функції",
    "otherFeaturesSection": "Інші функції",
    "compressionContextGroup": "Стиснення контексту",
    "toolsGroup": "Інструменти",
    "integrationsGroup": "Інтеграції",
    "proxyGroup": "Проксі",
    "costsParametersGroup": "Параметри витрат",
    "auditGroup": "Аудит",
    "batchGroup": "Пакетна обробка",
    "homeSubtitle": "Огляд панелі",
    "providersSubtitle": "Керування AI-провайдерами",
    "quotaTrackerSubtitle": "Відстеження лімітів",
    "providerQuotaSubtitle": "Відстеження лімітів провайдерів",
    "runtimeSubtitle": "Стійкість і сесії в реальному часі",
    "contextCombosSubtitle": "Комбінування двигунів стиснення",
    "cliToolsSubtitle": "Налаштування CLI-середовищ",
    "agentsSubtitle": "Керування локальними агентами",
    "cloudAgentsSubtitle": "Керування хмарними агентами",
    "apiEndpointsSubtitle": "Власні API-ендпоінти",
    "proxySubtitle": "Налаштування HTTP-проксі",
    "mitmProxySubtitle": "Перехоплення MITM",
    "oneProxySubtitle": "Публічний проксі-шлюз",
    "leaderboard": "Рейтинг",
    "profile": "Профіль",
    "tokens": "Токени",
    "leaderboardSubtitle": "Рейтинги та досягнення",
    "profileSubtitle": "Акаунт і налаштування",
    "tokensSubtitle": "Використання токенів і бюджети",
    "usageSubtitle": "Статистика трафіку та використання",
    "analyticsComboHealthSubtitle": "Надійність маршрутів комбінацій",
    "analyticsUtilizationSubtitle": "Завантаженість провайдерів",
    "costsSubtitle": "Розподіл витрат",
    "cacheSubtitle": "Коефіцієнт влучань у кеш",
    "analyticsCompressionSubtitle": "Економія токенів",
    "analyticsSearchSubtitle": "Аналітика інструменту пошуку",
    "analyticsEvalsSubtitle": "Результати оцінювань",
    "logsSubtitle": "Логи застосунку",
    "logsProxySubtitle": "Логи трафіку проксі",
    "consoleLogsSubtitle": "Вивід консолі",
    "logsActivitySubtitle": "Журнал дій користувача",
    "healthSubtitle": "Перевірка стану системи",
    "costsPricingSubtitle": "Правила цін для моделей",
    "costsBudgetSubtitle": "Бюджетні ліміти",
    "costsQuotaShareSubtitle": "Спільне використання квот між ключами",
    "auditLogSubtitle": "Аудит авторизації",
    "auditMcpSubtitle": "Аудит MCP-сервера",
    "auditA2aSubtitle": "Аудит протоколу A2A",
    "translatorSubtitle": "Перетворення форматів",
    "playgroundSubtitle": "Тестування промптів наживо",
    "searchToolsSubtitle": "Реєстр інструментів пошуку",
    "memorySubtitle": "Постійна пам'ять агента",
    "omniSkillsSubtitle": "Реєстр пісочних навичок",
    "agentSkillsSubtitle": "Реєстр навичок A2A",
    "mcpSubtitle": "Керування MCP-сервером",
    "a2aSubtitle": "Сервер протоколу A2A",
    "mediaSubtitle": "Кешовані медіафайли",
    "batchFilesSubtitle": "Файли вводу/виводу пакетної обробки",
    "settingsSubtitle": "Усі налаштування",
    "settingsGeneralSubtitle": "Основи застосунку",
    "settingsAppearanceSubtitle": "Тема та компонування",
    "settingsAiSubtitle": "Налаштування поведінки AI",
    "globalRoutingSubtitle": "Глобальні правила маршрутизації",
    "settingsResilienceSubtitle": "Повтори та запобіжники",
    "settingsAdvancedSubtitle": "Параметри для досвідчених користувачів",
    "settingsSecuritySubtitle": "Автентифікація та шифрування",
    "settingsFeatureFlagsSubtitle": "Перемикання можливостей системи",
    "settingsSidebar": "Бічна панель",
    "settingsSidebarSubtitle": "Налаштування компонування бічної панелі",
    "settingsAuthzSubtitle": "Інвентар маршрутів та політика обходу",
    "docsSubtitle": "Документація",
    "issuesSubtitle": "Повідомити про помилку",
    "changelogSubtitle": "Примітки до випуску"
  },
  "webhooks": {
    "title": "Веб-хуки",
    "description": "Налаштуйте зворотні виклики HTTP для системних подій.",
    "configuredWebhooks": "Налаштовані вебхуки",
    "configuredWebhooksDesc": "Керуйте кінцевими точками доставки, підписаними подіями, статусом і тестовими надсиланнями.",
    "addWebhook": "Додати Webhook",
    "editWebhook": "Редагувати вебхук",
    "name": "Ім'я",
    "namePlaceholder": "Моніторинг виробництва",
    "unnamedWebhook": "Вебхук без назви",
    "url": "URL кінцевої точки",
    "events": "Події",
    "allEvents": "Всі події",
    "secret": "Секрет",
    "secretPlaceholder": "Залиште поле порожнім, щоб автоматично створити секрет",
    "secretEditPlaceholder": "Залиште поле порожнім, щоб зберегти поточний секрет",
    "status": "Статус",
    "active": "Активний",
    "inactive": "Неактивний",
    "errored": "Помилка",
    "total": "Всього",
    "lastTriggered": "Останній виклик",
    "actions": "Дії",
    "enabled": "Увімкнено",
    "enabledDesc": "Вимкнені вебхуки залишаються збереженими, але не отримують доставки.",
    "refresh": "Оновити",
    "loading": "Завантаження вебхуків...",
    "never": "Ніколи",
    "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
    "testWebhook": "Надіслати тест",
    "testSuccess": "Тестовий вебхук успішно надіслано.",
    "testFailed": "Не вдалося перевірити вебхук.",
    "saveSuccess": "Вебхук успішно збережено.",
    "saveFailed": "Не вдалося зберегти вебхук.",
    "loadFailed": "Не вдалося завантажити вебхуки.",
    "delete": "Видалити",
    "deleteConfirm": "Ви впевнені, що хочете видалити цей вебхук?",
    "deleteSuccess": "Вебхук успішно видалено.",
    "deleteFailed": "Не вдалося видалити вебхук.",
    "edit": "Редагувати",
    "enable": "Увімкнути",
    "disable": "Вимкнути",
    "noWebhooks": "Вебхуки ще не налаштовано.",
    "signatureTitle": "Підписи Webhook",
    "signatureDescription": "Кожна доставка містить заголовок X-Webhook-Signature, підписаний HMAC-SHA256 із використанням секрету веб-хука. Перш ніж довіряти корисному навантаженню, перевірте підпис.",
    "wizard": {
      "cancel": "Скасувати",
      "step1Title": "Виберіть інтеграцію",
      "step2Title": "Налаштуйте ціль",
      "step3Title": "Події та тест",
      "back": "Назад",
      "next": "Далі",
      "finish": "Завершити",
      "step1Desc": "Виберіть цільову систему інтеграції для цього веб-хука."
    },
    "howItWorks": {
      "step1": "Виберіть провайдера інтеграції (напр., Slack, Discord, користувацький веб-хук) і налаштуйте параметри з'єднання.",
      "step2": "Налаштуйте системні події для підписки (напр., помилки завершення, резервні перемикання моделей або ліміти використання).",
      "step3": "Перевірте конфігурацію, надіславши тестове повідомлення, щоб переконатися, що ендпоінт його отримує.",
      "step4": "Захистіть свій ендпоінт, валідуючи заголовок X-Webhook-Signature HMAC-SHA256 за секретом веб-хука.",
      "title": "Як працюють веб-хуки",
      "customOnly": "Застосовно лише до користувацьких ендпоінтних інтеграцій.",
      "hmacRecipeTitle": "Рецепт перевірки HMAC",
      "hmacRecipe": "Щоб перевірити повідомлення веб-хука в Node.js, обчисліть HMAC-SHA256 сирого тіла запиту, використовуючи свій секретний ключ. Порівняйте його із заголовком X-Webhook-Signature через timingSafeEqual.",
      "timeoutNote": "Доставка веб-хуків має тайм-аут 10 секунд.",
      "retryNote": "Невдалі доставки повторюються до 5 разів з експоненційним затримкою.",
      "docsLink": "Прочитайте повний посібник для розробників з веб-хуків",
      "hmacRecipePython": "Перевірка HMAC у Python: hmac.new(secret, body, hashlib.sha256).hexdigest()",
      "hmacRecipeBash": "Перевірка HMAC у Bash: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\""
    },
    "deliveries": {
      "title": "Логи доставки",
      "loadFailed": "Не вдалося завантажити логи доставки веб-хуків.",
      "empty": "Поки не зафіксовано доставок. Спричиніть подію або надішліть тестове повідомлення.",
      "status": "Стан",
      "event": "Подія",
      "latency": "Затримка",
      "at": "Надіслано о"
    },
    "kinds": {
      "comingSoon": "Скоро",
      "slack": "__MISSING__:Slack",
      "slackDesc": "Публікуйте системні події безпосередньо в канал Slack",
      "telegram": "__MISSING__:Telegram",
      "telegramDesc": "Надсилайте повідомлення про події через Telegram-бота",
      "discord": "__MISSING__:Discord",
      "discordDesc": "Доставляйте оновлення в реальному часі безпосередньо на сервер Discord",
      "custom": "Користувацький веб-хук",
      "customDesc": "Доставляйте корисні навантаження системних подій на будь-який HTTPS-ендпоінт",
      "email": "Email-сповіщення",
      "emailDesc": "Отримуйте підсумкові оновлення електронною поштою",
      "pagerduty": "__MISSING__:PagerDuty",
      "pagerdutyDesc": "Запускайте сповіщення PagerDuty для критичних системних проблем",
      "teams": "__MISSING__:Microsoft Teams",
      "teamsDesc": "Перенаправляйте системні сповіщення в канали Microsoft Teams"
    },
    "testPayloadSent": "Тестове повідомлення надіслано",
    "testResponse": "Тестова відповідь",
    "validateUrl": {
      "checking": "Перевірка URL...",
      "ok": "URL коректний",
      "blockedPrivate": "URL вказує на заблоковану приватну адресу",
      "invalidUrl": "Невірний формат URL"
    },
    "custom": {
      "endpointUrl": "URL ендпоінта",
      "endpointUrlPlaceholder": "__MISSING__:https://api.yourdomain.com/webhook",
      "secretKey": "Секретний ключ",
      "secretKeyPlaceholder": "Введіть секретний ключ або залиште порожнім для авто-генерації",
      "secretKeyHint": "Використовується для підпису заголовка корисного навантаження для автентифікації."
    },
    "discord": {
      "webhookUrl": "URL веб-хука Discord",
      "webhookUrlPlaceholder": "__MISSING__:https://discord.com/api/webhooks/...",
      "webhookUrlHint": "URL веб-хука, скопійований з налаштувань інтеграції каналу Discord.",
      "tutorial": "Як створити веб-хук у Discord:"
    },
    "slack": {
      "webhookUrl": "URL веб-хука Slack",
      "webhookUrlPlaceholder": "__MISSING__:https://hooks.slack.com/services/...",
      "webhookUrlHint": "URL веб-хука, скопійований з інтеграції Incoming Webhooks у Slack.",
      "tutorial": "Як створити веб-хук у Slack:"
    },
    "telegram": {
      "botToken": "Токен Telegram-бота",
      "botTokenPlaceholder": "__MISSING__:123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
      "botTokenHint": "Токен HTTP API, отриманий від @BotFather під час створення бота.",
      "chatId": "Telegram Chat ID / канал",
      "chatIdPlaceholder": "-100123456789 або @channelname",
      "chatIdHint": "Унікальний числовий ідентифікатор або публічний username чату/каналу.",
      "tutorial": "Як налаштувати веб-хук Telegram:"
    }
  },
  "compliance": {
    "auditTitle": "Аудит",
    "auditDescription": "Переглядайте події відповідності та виклики інструментів MCP з одного робочого подання.",
    "complianceTab": "Відповідність",
    "mcpTab": "Аудит MCP",
    "title": "Аудит відповідності",
    "description": "Події політики, доступу, постачальника та безпеки, зареєстровані в журналі аудиту відповідності.",
    "eventType": "Тип події",
    "eventTypePlaceholder": "Фільтрувати за типом дії або події",
    "severity": "Суворість",
    "allSeverities": "Всі тяжкості",
    "info": "Інформація",
    "warning": "Попередження",
    "critical": "Критичний",
    "sourceIp": "Джерело IP",
    "userOrKey": "Користувач / ключ",
    "action": "Дія",
    "result": "Результат",
    "details": "Подробиці",
    "timestamp": "Мітка часу",
    "from": "Від",
    "to": "до",
    "refresh": "Оновити",
    "export": "Експорт",
    "clearFilters": "Очистити фільтри",
    "loading": "Завантаження подій аудиту...",
    "showing": "Показано {count} з {total} подій",
    "policyViolation": "Порушення політики",
    "accessDenied": "Доступ заборонено",
    "injectionBlocked": "Ін'єкція заблокована",
    "noEvents": "Подій відповідності не зареєстровано.",
    "failedFetch": "Не вдалося отримати журнал аудиту відповідності.",
    "viewDetails": "Переглянути деталі",
    "closeDetails": "Закрити деталі",
    "notAvailable": "—",
    "system": "система",
    "previous": "Попередній",
    "next": "Далі",
    "mcpAudit": "Аудит MCP",
    "mcpAuditDesc": "Записи аудиту викликів інструменту, записані сервером MCP.",
    "failedFetchMcpAudit": "Не вдалося отримати журнал аудиту MCP.",
    "tool": "Інструмент",
    "toolPlaceholder": "Фільтрувати за назвою інструменту",
    "duration": "Тривалість",
    "apiKey": "Ключ API",
    "output": "Вихід",
    "allResults": "Всі результати",
    "success": "Успіх",
    "failure": "провал",
    "noMcpEvents": "Подій аудиту MCP не зареєстровано.",
    "a2aAudit": "Аудит A2A",
    "a2aAuditDesc": "Журнал аудиту виконання завдань, записаний сервером A2A.",
    "a2aShowingTasks": "Показано {count} з {total} завдань",
    "a2aSkill": "Майстерність",
    "a2aSkillPlaceholder": "Фільтрувати за назвою навички",
    "a2aState": "Держава",
    "a2aAllStates": "Всі держави",
    "a2aStateSubmitted": "Надіслано",
    "a2aStateWorking": "Працює",
    "a2aStateCompleted": "Виконано",
    "a2aStateFailed": "Не вдалося",
    "a2aStateCancelled": "Скасовано",
    "a2aTaskId": "ID завдання",
    "a2aEvents": "Події",
    "a2aArtifacts": "Артефакти",
    "a2aNoTasks": "Немає записаних завдань A2A.",
    "a2aLoadingTasks": "Завантаження завдань A2A..."
  },
  "themesPage": {
    "title": "Теми",
    "description": "Виберіть готову тему або створіть свою з одного кольору",
    "presetColors": "Популярні кольори",
    "customTheme": "Користувацька тема",
    "customThemeDesc": "Натисніть «Створити тему» і виберіть один колір",
    "createTheme": "Створити тему",
    "activePreset": "Активна тема"
  },
  "header": {
    "logout": "Вийти",
    "language": "Мова",
    "providers": "Провайдери",
    "providerDescription": "Керуйте з’єднаннями постачальників AI",
    "combos": "Комбо",
    "comboDescription": "Комбіновані моделі з резервним варіантом",
    "usage": "Використання та аналітика",
    "usageDescription": "Відстежуйте використання API, використання маркерів і журнали запитів",
    "analytics": "Аналітика",
    "analyticsDescription": "Діаграми, тенденції та аналізи",
    "cliTools": "Інструменти CLI",
    "cliToolsDescription": "Налаштувати інструменти CLI",
    "home": "додому",
    "homeDescription": "Ласкаво просимо до OmniRoute",
    "endpoint": "Ендпоінти",
    "endpointDescription": "Керування проксі-ендпоінтами, MCP, A2A та API-ендпоінтами",
    "mcp": "MCP",
    "mcpDescription": "Керування сервером і інструментами Model Context Protocol",
    "a2a": "A2A",
    "a2aDescription": "Задачі та спостереження протоколу Agent-to-Agent",
    "settings": "Налаштування",
    "settingsDescription": "Керуйте своїми вподобаннями",
    "openaiCompatible": "Сумісність з OpenAI",
    "anthropicCompatible": "Антропна сумісність",
    "media": "Медіа",
    "mediaDescription": "Генерація зображень, відео та музики",
    "themes": "Теми",
    "themesDescription": "Виберіть колірну тему для всієї панелі керування",
    "costsDescription": "Відстеження витрат, аналіз трендів і керування бюджетом AI у всіх провайдерах",
    "cacheDescription": "Моніторинг ефективності кешу промптів провайдерів і локального семантичного повторного використання відповідей.",
    "limitsDescription": "Налаштування лімітів швидкості та квот для API-ключів і провайдерів",
    "runtimeDescription": "Спостереження за середовищем у реальному часі — запобіжники, охолодження, блокування моделей, сесії та сповіщення про квоти",
    "apiManagerDescription": "Керування API-ключами та контролем доступу для вашого екземпляра OmniRoute",
    "batchDescription": "Асинхронна обробка великих обсягів запитів через пакетні API-виклики",
    "contextCavemanDescription": "Стиснення повідомлень на основі правил, мовні пакети, аналітика та керування режимом виводу.",
    "contextRtkDescription": "Стиснення з урахуванням команд для виводу інструментів, логів терміналу та результатів збірок.",
    "contextCombosDescription": "Визначте, як двигуни комбінуються для різних сценаріїв маршрутизації.",
    "changelogDescription": "Будьте в курсі останніх функцій платформи та анонсів.",
    "agentsDescription": "Керування та налаштування AI-агентів: Codex, Devin, Jules та користувацьких агентів",
    "cloudAgentsDescription": "Оркестрація хмарних AI-агентів із відстеженням задач у реальному часі та затвердженням планів",
    "memoryDescription": "Постійна діалогова пам'ять із семантичним пошуком та повнотекстовим індексом FTS5",
    "skillsDescription": "Встановлення та керування пісочними навичками для автоматичного виконання промптів та інструментів",
    "agentSkillsDescription": "Каталог готових для агентів навичок з копіюванням URL для інтеграції AI-клієнтів",
    "translatorDescription": "Переклад і тестування промптів між API-форматами: OpenAI ↔ Claude ↔ Gemini",
    "playgroundDescription": "Інтерактивне тестування промптів із живими відповідями провайдерів та інспекцією форматів",
    "searchToolsDescription": "Аналітика пошуку, розподіл за провайдерами, коефіцієнт влучань у кеш та відстеження вартості",
    "logsDescription": "Логи запитів у реальному часі, трасування помилок та інспектор потокових подій",
    "auditDescription": "Аудит відповідності: використання API-ключів, виклики MCP-інструментів та події політик",
    "webhooksDescription": "Налаштування ендпоінтів webhook для отримання сповіщень про події в реальному часі",
    "healthDescription": "Огляд стану системи: провайдери, запобіжники, ліміти швидкості та база даних",
    "proxyDescription": "Налаштування вихідного проксі для з'єднань з провайдерами",
    "apiEndpointsDescription": "Керування користувацькими конфігураціями API-ендпоінтів і перевизначеннями маршрутизації",
    "batchFilesDescription": "Перегляд і керування файлами результатів пакетних завдань",
    "analyticsEvalsDescription": "Результати оцінювання моделей та бенчмарки продуктивності",
    "analyticsSearchDescription": "Аналітика пошукових запитів, коефіцієнт влучань у кеш та відстеження вартості",
    "analyticsUtilizationDescription": "Метрики завантаженості провайдерів і планування потужностей",
    "analyticsComboHealthDescription": "Стан і продуктивність комбінованих конфігурацій маршрутизації в реальному часі",
    "analyticsCompressionDescription": "Аналітика стиснення контексту та економії токенів",
    "costsBudgetDescription": "Бюджетні ліміти та сповіщення про витрати для API-ключів і провайдерів",
    "costsPricingDescription": "Користувацькі налаштування цін для розрахунку вартості токенів",
    "logsProxyDescription": "Логи запитів проксі та інспекція трафіку",
    "logsConsoleDescription": "Вивід консолі застосунку та логи налагодження",
    "logsActivityDescription": "Аудит дій користувачів і системних подій",
    "auditMcpDescription": "Аудит викликів MCP-інструментів та записи відповідності",
    "auditA2a": "Аудит A2A",
    "auditA2aDescription": "Журнал аудиту виконання завдань A2A, переходи станів і записи викликів навичок",
    "settingsGeneralDescription": "Сховище, база даних та загальні налаштування екземпляра",
    "settingsAppearanceDescription": "Тема, брендинг та візуальне налаштування",
    "settingsAiDescription": "Поведінка AI, бюджети мислення, зір та налаштування пам'яті",
    "settingsSecurityDescription": "Налаштування автентифікації, авторизації та контролю доступу",
    "featureFlags": "Прапори функцій",
    "featureFlagsDescription": "Можливості системи керування та експериментальні особливості",
    "featureFlagsActive": "{count} активний",
    "featureFlagsInactive": "{count} неактивний",
    "featureFlagsOverrides": "{count} Перевизначення БД",
    "featureFlagsSearch": "Прапори пошуку...",
    "featureFlagsCategoryAll": "все",
    "featureFlagsCategorySecurity": "Безпека",
    "featureFlagsCategoryNetwork": "Мережа",
    "featureFlagsCategoryPolicies": "політики",
    "featureFlagsCategoryRuntime": "Час виконання",
    "featureFlagsCategoryCli": "CLI",
    "featureFlagsCategoryHealth": "Здоров'я",
    "featureFlagsSourceDb": "БД",
    "featureFlagsSourceEnv": "ENV",
    "featureFlagsSourceDefault": "DEF",
    "featureFlagsReset": "Скинути",
    "featureFlagsResetAll": "Скинути всі перевизначення",
    "featureFlagsResetAllConfirm": "Ви впевнені, що бажаєте скинути всі перевизначення прапорів функцій? Це поверне всі прапорці до їхніх ENV або значень за замовчуванням.",
    "featureFlagsRestartRequired": "Для застосування потрібен перезапуск",
    "featureFlagsNoResults": "Жоден прапорець не відповідає вашому пошуку",
    "featureFlagsSaved": "Прапор оновлено",
    "featureFlagsError": "Не вдалося оновити прапор",
    "settingsRoutingDescription": "Правила маршрутизації, аліаси моделей, налаштування комбо та деградації",
    "settingsResilienceDescription": "Налаштування запобіжника, повторів та резервних шляхів",
    "settingsAdvancedDescription": "Розширені правила запитів, ліміти та налаштування API проксі",
    "mitmProxyDescription": "Налаштування MITM-проксі для інспекції трафіку та налагодження",
    "oneProxyDescription": "Налаштування 1Proxy для розширеного ланцюгування проксі"
  },
  "home": {
    "quickStart": "Швидкий старт",
    "quickStartDesc": "Встаньте та побігайте за 4 кроки. Підключити провайдерів, моделі маршрутів, контролювати все.",
    "fullDocs": "Повні документи",
    "step1Title": "1. Створіть ключ API",
    "step1Desc": "Перейдіть до <endpoint>Endpoint</endpoint> -> Зареєстровані ключі. Згенеруйте один ключ для кожного середовища.",
    "step2Title": "2. Підключити провайдерів",
    "step2Desc": "Додайте облікові записи в <providers>Providers</providers>. Підтримує OAuth, ключ API та безкоштовні рівні.",
    "step3Title": "3. Вкажіть свого клієнта",
    "step3Desc": "Установіть базову URL-адресу на {url} у своєму клієнті IDE або API.",
    "step4Title": "4. Моніторинг і оптимізація",
    "step4Desc": "Відстежуйте токени, вартість і помилки в <logs>Request Logs</logs> та <analytics>Analytics</analytics>.",
    "providersOverview": "Огляд постачальників",
    "configuredOf": "{configured} налаштовано з {total} доступних постачальників",
    "noModelsAvailable": "Для цього постачальника немає доступних моделей.",
    "noProvidersConfigured": "Постачальники ще не налаштовано",
    "addProvider": "Додайте провайдера",
    "configureFirst": "Спочатку налаштуйте підключення в {providers}",
    "configureProvider": "Налаштувати постачальника",
    "modelAvailable": "Доступна модель {count}",
    "modelsAvailable": "Доступні моделі {count}",
    "connectionsActive": "{count} підключення активне",
    "connectionsActivePlural": "{count} активних підключень",
    "copyModelName": "Скопіюйте назву моделі",
    "documentation": "Документація",
    "healthMonitor": "Монітор здоров'я",
    "reportIssue": "Повідомити про проблему",
    "activeError": "{active} активний · {errors} помилка",
    "oauthLabel": "OAuth",
    "apiKeyLabel": "Ключ API",
    "requestsShort": "{count} вимагається",
    "providerModelsTitle": "{provider} - Моделі",
    "copiedModel": "Скопійовано: {model}",
    "aliasLabel": "псевдонім",
    "updateNow": "Оновити зараз",
    "updating": "Оновлення...",
    "updateAvailableDesc": "Доступна нова версія. Натисніть, щоб оновити.",
    "updateStarted": "Оновлення розпочато...",
    "reloadingPageAutomatically": "Автоматичне перезавантаження сторінки...",
    "providerTopology": "Топологія провайдера"
  },
  "analytics": {
    "title": "Аналітика",
    "usageAnalyticsTitle": "Аналітика використання",
    "diversityScoreTitle": "Різноманітність постачальників",
    "diversityScoreDesc": "Розподіл навантаження між провайдерами для останнього вікна трафіку.",
    "diversityShannonEntropy": "Ентропія Шеннона",
    "diversityWindow": "Вікно: {count} запитів · останні {mins} хв",
    "diversityHealthy": "Здоровий розподіл",
    "diversityRiskHigh": "Високий ризик прив'язки до постачальника",
    "diversityRiskModerate": "Помірний розподіл",
    "diversityScoreLabel": "оцінка",
    "diversityHigherExplanation": "Вищі значення означають, що трафік розподілено між кількома провайдерами.",
    "diversityNoData": "Немає даних про нещодавнє використання.",
    "chartRequests": "Запити",
    "chartInput": "Вхід",
    "chartOutput": "Вихід",
    "chartTotal": "Усього",
    "chartCost": "Вартість",
    "chartShare": "Частка",
    "chartServiceTier": "Рівень сервісу",
    "chartServiceTierSplit": "Розподіл вартості Fast / Standard",
    "chartCostPct": "{pct}% від вартості",
    "chartUsageDetail": "Деталі використання",
    "chartCacheRead": "Читання з кешу",
    "chartCostByProvider": "Вартість за провайдером",
    "chartNoCostData": "Немає даних про вартість",
    "chartModelUsageOverTime": "Використання моделей з часом",
    "chartNoData": "Немає даних",
    "chartWeekly": "Щотижнево",
    "chartModelBreakdown": "Розподіл за моделями",
    "chartModel": "Модель",
    "chartProvider": "Провайдер",
    "chartProviderBreakdown": "Розподіл за провайдерами",
    "filterAllKeys": "Усі ключі",
    "filterSearchKeys": "Пошук ключів…",
    "filterNoKeysMatch": "Жоден ключ не відповідає",
    "filterOneKey": "1 ключ",
    "filterMultipleKeys": "{count} ключів",
    "rangeToday": "Сьогодні",
    "rangeYesterday": "Учора",
    "rangeLast3Days": "Останні 3 дні",
    "rangeThisWeek": "Цей тиждень",
    "rangeLast14Days": "Останні 14 днів",
    "rangeThisMonth": "Цей місяць",
    "rangeQuickSelect": "Швидкий вибір",
    "rangeStart": "Початок",
    "rangeEnd": "Кінець",
    "rangeCancel": "Скасувати",
    "rangeApply": "Застосувати",
    "rangeErrorInvalid": "Початок має бути раніше за кінець",
    "period1D": "1д",
    "period7D": "7д",
    "period30D": "30д",
    "period90D": "90д",
    "periodYTD": "З поч. року",
    "periodAll": "Увесь час",
    "totalTokens": "Усього токенів",
    "inputTokens": "Вхідні токени",
    "outputTokens": "Вихідні токени",
    "estCost": "Орієнт. вартість",
    "infraTitle": "Інфраструктура",
    "infraAccounts": "Акаунти",
    "infraProviders": "Провайдери",
    "infraApiKeys": "API-ключі",
    "infraModels": "Моделі",
    "perfTitle": "Продуктивність",
    "perfAvgTokens": "Середньо токенів/запит",
    "perfCostReq": "Вартість/запит",
    "perfIoRatio": "Співвідношення В/В",
    "perfFastReq": "Швидкі запити",
    "highlightsTitle": "Ключові показники",
    "highlightsTopModel": "Топ-модель",
    "highlightsTopProvider": "Топ-провайдер",
    "highlightsBusiestDay": "Найзавантаженіший день",
    "highlightsDiversity": "Розмаїття",
    "highlightsFallbackRate": "Частота резервного перемикання",
    "customRange": "Свій",
    "overviewDescription": "Відстежуйте шаблони використання API, споживання маркерів, витрати та тенденції активності в усіх постачальників і моделей.",
    "evalsDescription": "Запустіть пакети оцінювання, щоб протестувати та перевірити кінцеві точки LLM. Порівняйте якість моделі, виявіть регресії та порівняйте затримку.",
    "overview": "Огляд",
    "evals": "Оцінки",
    "utilization": "Використання",
    "utilizationDescription": "Тренди використання квоти постачальника та відстеження обмежень швидкості",
    "modelStatus": "Статус моделі",
    "modelStatusCooldown": "Кулдаун",
    "modelStatusUnavailable": "Недоступний",
    "modelStatusError": "Помилка",
    "comboHealth": "Здоров'я комбінації",
    "comboHealthDescription": "Квота на рівні комбінації, розподіл використання та метрики продуктивності",
    "compressionAnalyticsTitle": "Compression Analytics",
    "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
    "autoRoutingTotalAutoRequests": "Загальна кількість автоматичних запитів",
    "autoRoutingAvgSelectionScore": "Середня оцінка вибору",
    "autoRoutingExplorationRate": "Швидкість розвідки",
    "autoRoutingLkgpHitRate": "LKGP Hit Rate",
    "autoRoutingRequestsByVariant": "Запити за варіантами",
    "autoRoutingTopRoutedProviders": "Найпопулярніші постачальники",
    "comboHealthWorstQuotaLeft": "Залишилася найгірша квота",
    "comboHealthUsageSkew": "Перекіс використання",
    "comboHealthSuccessRate": "Коефіцієнт успішності",
    "comboHealthQuotaHealth": "Квота здоров'я",
    "comboHealthRequests": "Запити",
    "comboHealthTokens": "Жетони",
    "comboHealthAvgLatency": "Середня затримка",
    "comboHealthTotalRequests": "Всього запитів",
    "comboHealthExecutionTargets": "Цілі виконання",
    "comboHealthSuccess": "Успіх",
    "comboHealthLatency": "Затримка",
    "comboHealthQuota": "Квота",
    "comboHealthTitle": "Комбо здоров'я",
    "comboHealthUnableToLoad": "Неможливо завантажити комбо здоров'я",
    "comboHealthGettingStarted": "Початок роботи",
    "compressionAnalyticsTotalRequests": "Загальна кількість запитів",
    "compressionAnalyticsTokensSaved": "Жетони збережено",
    "compressionAnalyticsAvgSavings": "Середня економія",
    "compressionAnalyticsAvgDuration": "Середня тривалість",
    "compressionAnalyticsReceipts": "Квитанції",
    "compressionAnalyticsFallbacks": "Запасні варіанти",
    "compressionAnalyticsPromptTokens": "Підказкові жетони",
    "compressionAnalyticsCompletionTokens": "Жетони завершення",
    "compressionAnalyticsTotalTokens": "Всього жетонів",
    "compressionAnalyticsCacheTokens": "Кеш-токени",
    "compressionAnalyticsNoDataYet": "Ще немає даних про стиснення",
    "searchAnalyticsTotalSearches": "Загальна кількість пошуків",
    "searchAnalyticsCacheHitRate": "Швидкість звернень до кешу",
    "searchAnalyticsTotalCost": "Загальна вартість",
    "searchAnalyticsAvgResponse": "Середня відповідь",
    "searchAnalyticsNoSearchesYet": "Пошуків ще немає",
    "providerUtilizationTitle": "Використання провайдера",
    "providerUtilizationFailedToLoad": "Не вдалося завантажити дані про використання",
    "providerUtilizationNoData": "Немає даних про використання",
    "providerUtilizationGettingStarted": "Початок роботи",
    "providerUtilizationLatestSnapshot": "Останній знімок квоти",
    "providerUtilizationRemainingCapacity": "Ємність, що залишилася"
  },
  "apiManager": {
    "title": "Ключі API",
    "createKey": "Створити ключ API",
    "key": "ключ",
    "revokeKey": "Відкликати ключ",
    "revokeConfirm": "Ви впевнені, що бажаєте відкликати цей ключ API?",
    "noKeys": "Ключів API ще немає",
    "noKeysDesc": "Створіть свій перший ключ API для автентифікації запитів до кінцевої точки",
    "keyLabel": "Мітка ключа",
    "permissions": "Дозволи",
    "expiresAt": "Термін дії закінчується",
    "never": "Ніколи",
    "revoke": "Відкликати",
    "showKey": "Показати ключ",
    "hideKey": "Приховати ключ",
    "copyKey": "Копіювати ключ API",
    "allModels": "Всі моделі",
    "selectedModels": "Вибрані моделі",
    "readOnly": "Тільки для читання",
    "fullAccess": "Повний доступ",
    "keyManagement": "Керування ключами API",
    "keyManagementDesc": "Створюйте та керуйте ключами API для автентифікації запитів до кінцевої точки",
    "totalKeys": "Всього ключів",
    "restricted": "Обмежений",
    "totalRequests": "Загальна кількість запитів",
    "modelsAvailable": "Доступні моделі",
    "registeredKeys": "Зареєстровані ключі",
    "keysRegistered": "Зареєстровано {count} ключів",
    "keyRegistered": "Ключ {count} зареєстровано",
    "keysSecurityNote": "Кожен ключ ізолює відстеження використання та може бути відкликаний незалежно. Ключі маскуються після створення для безпеки.",
    "createFirstKey": "Створіть свій перший ключ",
    "name": "Ім'я",
    "usage": "Використання",
    "created": "Створено",
    "actions": "Дії",
    "reqs": "вимоги",
    "neverUsed": "Ніколи не використовувався",
    "deleteConfirm": "Видалити цей ключ API?",
    "usageTips": "Поради щодо використання",
    "tipAuth": "Використовуйте ключі API у заголовку авторизації як носій YOUR_KEY",
    "tipSecure": "Ключі показуються лише один раз під час створення — зберігайте їх надійно",
    "tipSeparate": "Створіть окремі ключі для різних клієнтів або середовищ",
    "tipRestrict": "Обмежте ключі певними моделями для кращої безпеки та контролю витрат",
    "keyName": "Назва ключа",
    "keyNamePlaceholder": "наприклад, ключ виробництва, ключ розробки",
    "keyNameDesc": "Виберіть описову назву, щоб визначити призначення цього ключа",
    "managementAccessDesc": "Дозволити цьому API-ключу керувати конфігурацією OmniRoute.",
    "selfServiceVisibility": "Видимість самообслуговування",
    "selfServiceVisibilityDesc": "Керує тим, що цей ключ може бачити про власне використання та спільну upstream-квоту.",
    "ownUsageVisibility": "Власна вартість і використання токенів",
    "ownUsageVisibilityDesc": "Дозволити цьому ключу викликати власний endpoint статусу для перегляду власного використання в USD, відсотка бюджету та сум токенів.",
    "sharedAccountQuotaVisibility": "Спільна квота акаунта",
    "sharedAccountQuotaVisibilityDesc": "Дозволити цьому ключу бачити спільну квоту upstream-акаунта, коли налаштовано одне явне підключення.",
    "keyCreated": "Ключ API створено",
    "keyCreatedSuccess": "Ключ успішно створено!",
    "keyCreatedNote": "Скопіюйте та збережіть цей ключ зараз — він більше не відображатиметься.",
    "done": "Готово",
    "savePermissions": "Зберегти дозволи",
    "endpointRestrictions": "Обмеження ендпоінтів",
    "allEndpointsAllowed": "Дозволено всі ендпоінти",
    "endpointsRestricted": "{count, plural, one {# ендпоінт обмежено} few {# ендпоінти обмежено} many {# ендпоінтів обмежено} other {# ендпоінта обмежено}}",
    "autoResolve": "Автоматичне визначення",
    "autoResolveDesc": "Автоматично визначати неоднозначні імена моделей до рідного провайдера для цього API-ключа.",
    "keyActive": "Ключ активний",
    "keyActiveDesc": "Увімкнути або вимкнути цей API-ключ. Вимкнені ключі негайно відхиляються з кодом 403.",
    "accessSchedule": "Розклад доступу",
    "accessScheduleDesc": "Обмежити доступ певними годинами та днями тижня.",
    "scheduleFrom": "З",
    "scheduleUntil": "До",
    "scheduleDays": "Дні",
    "scheduleTimezone": "Часовий пояс",
    "scheduleTimezoneHint": "Використовуйте назви IANA, напр. America/New_York, Europe/Berlin",
    "scheduleActive": "Розклад",
    "disabled": "Вимкнено",
    "daySun": "Нд",
    "dayMon": "Пн",
    "dayTue": "Вт",
    "dayWed": "Ср",
    "dayThu": "Чт",
    "dayFri": "Пт",
    "daySat": "Сб",
    "allowAll": "Дозволити всім",
    "restrict": "Обмежити",
    "allowAllInfo": "Цей ключ може отримати доступ до всіх доступних моделей.",
    "restrictInfo": "Цей ключ має доступ до {selected} з {total} моделей.",
    "selected": "Вибрано {count}",
    "all": "всі",
    "clear": "ясно",
    "searchModels": "Пошук моделей за назвою або постачальником...",
    "noModelsFound": "Моделі не знайдено",
    "keyNameRequired": "Потрібно вказати назву ключа",
    "keyNameTooLong": "Назва ключа має містити не більше {max} символів",
    "keyNameInvalid": "Назва ключа може містити лише літери, цифри, пробіли, дефіси та підкреслення",
    "invalidKeyName": "Недійсна назва ключа",
    "failedCreateKey": "Не вдалося створити ключ",
    "failedCreateKeyRetry": "Не вдалося створити ключ. Спробуйте ще раз.",
    "invalidKeyId": "Недійсний ідентифікатор ключа",
    "failedDeleteKey": "Не вдалося видалити ключ",
    "failedDeleteKeyRetry": "Не вдалося видалити ключ. Спробуйте ще раз.",
    "invalidModelsSelection": "Недійсний вибір моделей",
    "cannotSelectMoreThanModels": "Не можна вибрати більше ніж {max} моделей",
    "failedUpdatePermissions": "Не вдалося оновити дозволи",
    "failedUpdatePermissionsRetry": "Не вдалося оновити дозволи. Спробуйте ще раз.",
    "unknownProvider": "невідомий",
    "copyMaskedKey": "Копіювати замаскований ключ",
    "keyOnlyAvailableAtCreation": "Повний ключ доступний лише під час створення — скопіюйте його одразу",
    "modelsCount": "{count, plural, one {# модель} few {# моделі} many {# моделей} other {# моделі}}",
    "lastUsedOn": "Останній: {date}",
    "editPermissions": "Права на редагування",
    "deleteKey": "Видалити ключ",
    "regenerateKey": "Відновити ключ",
    "regenerateConfirm": "Ви впевнені, що бажаєте відновити цей ключ API? Старий ключ буде негайно визнано недійсним.",
    "failedRegenerateKey": "Не вдалося повторно створити ключ API",
    "failedRegenerateKeyRetry": "Не вдалося повторно створити ключ API. Спробуйте ще раз.",
    "model": "Модель {count}",
    "models": "{count} моделей",
    "permissionsTitle": "Дозволи: {name}",
    "allowAllDesc": "Цей ключ може отримати доступ до всіх доступних моделей.",
    "restrictDesc": "Цей ключ має доступ до {selectedCount} з {totalModels} моделей.",
    "selectedCount": "Вибрано {count}",
    "maxActiveSessions": "Максимальна кількість активних сеансів",
    "apiManagerCustomRateLimits": "Спеціальні ліміти ставок",
    "apiManagerCustomRateLimitsDesc": "Перевизначити глобальні обмеження за умовчанням. Залиште пустим, щоб використовувати значення за умовчанням.",
    "apiManagerRateLimitRequestsPlaceholder": "Запити",
    "apiManagerRateLimitReqPer": "запит /",
    "apiManagerRateLimitSecondsPlaceholder": "секунд",
    "apiManagerRemoveLimitTitle": "Зняти обмеження",
    "apiManagerTimezonePlaceholder": "Америка/Сан-Паулу",
    "noLogPayloadPrivacy": "Конфіденційність корисного навантаження без реєстрації",
    "bannedStatus": "Забанений статус",
    "managementApiAccess": "Доступ API керування",
    "expirationDate": "Термін придатності",
    "managementAccess": "Доступ до керування",
    "allowedConnections": "Дозволені підключення",
    "searchPlaceholder": "Пошук за назвою або токеном...",
    "activeOnly": "Лише активні",
    "filterStatus": "СТАН",
    "filterType": "ТИП",
    "filterAll": "Усі",
    "filterStatusActive": "Активні",
    "filterStatusDisabled": "Вимкнені",
    "filterStatusBanned": "Заблоковані",
    "filterStatusExpired": "Прострочені",
    "filterTypeStandard": "Стандартні",
    "filterTypeManage": "Керування",
    "filterTypeRestricted": "Обмежені",
    "shownOf": "Показано {shown} з {total}",
    "emptyFilterTitle": "Жоден ключ не відповідає фільтрам",
    "emptyFilterClear": "Очистити фільтри"
  },
  "auditLog": {
    "title": "Журнал аудиту",
    "searchPlaceholder": "Пошукові дії...",
    "action": "Дія",
    "actor": "Актор",
    "target": "Цільова",
    "ipAddress": "IP-адреса",
    "timestamp": "Мітка часу",
    "noEntries": "Записів аудиту не знайдено",
    "filterByAction": "Фільтрувати за дією...",
    "filterByActor": "Фільтрувати за актором...",
    "filterEntriesAria": "Фільтрувати записи журналу аудиту",
    "filterByActionTypeAria": "Фільтрувати за типом дії",
    "filterByActorAria": "Фільтрувати за актором",
    "refreshAuditLogAria": "Оновити журнал аудиту",
    "tableAria": "Записи журналу аудиту",
    "failedFetchAuditLog": "Не вдалося отримати журнал аудиту",
    "notAvailable": "—",
    "description": "Адміністративні дії та заходи безпеки",
    "showing": "Показано {count} записів (зміщення {offset})",
    "previous": "Попередній"
  },
  "media": {
    "title": "Медіа-майданчик",
    "subtitle": "Генеруйте зображення, відео та музику",
    "model": "Model",
    "prompt": "Prompt",
    "generate": "Згенерувати",
    "generating": "Generating...",
    "loadingModels": "Loading available models...",
    "noModels": "No models available. Configure providers with media capabilities first.",
    "error": "Generation Failed",
    "result": "Result",
    "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
    "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
    "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
    "kinds": {
      "embedding": "Вбудовування",
      "image": "Зображення",
      "imageToText": "Зображення → текст",
      "tts": "Текст → мова",
      "stt": "Мова → текст",
      "webSearch": "Веб-пошук",
      "webFetch": "__MISSING__:Web Fetch",
      "video": "Відео",
      "music": "Музика"
    },
    "noProviders": "Поки що немає налаштованих провайдерів цього типу.",
    "addConnection": "Додати з'єднання",
    "backToProviders": "Назад до провайдерів",
    "connections": "{count} з'єднань",
    "noConnections": "З'єднань ще немає — додайте з боку сторінки провайдера.",
    "loading": "Завантаження..."
  },
  "search": {
    "searchQuery": "Search Query",
    "searchResults": "Search Results",
    "cachedResult": "Cached",
    "searchCost": "Cost",
    "searchTools": "Search Tools",
    "searchToolsDesc": "Advanced search testing with provider comparison",
    "compareProviders": "Compare Providers",
    "rerankResults": "Rerank Results",
    "searchHistory": "Search History",
    "urlOverlap": "URL Overlap",
    "noSearchProviders": "No search providers configured. Add providers in Settings.",
    "noRerankModels": "No rerank model available",
    "webSearch": "Web Search",
    "provider": "Provider",
    "searchType": "Search Type",
    "maxResults": "Max Results",
    "filters": "Filters",
    "country": "Country",
    "language": "Language",
    "timeRange": "Time Range",
    "includeDomains": "Include Domains",
    "excludeDomains": "Exclude Domains",
    "safeSearch": "Safe Search",
    "safeSearchOff": "Off",
    "safeSearchModerate": "Moderate",
    "safeSearchStrict": "Strict",
    "queryPlaceholder": "Enter search query...",
    "providerAuto": "auto (cheapest)",
    "searchTypeWeb": "web",
    "searchTypeNews": "news",
    "optionAny": "any",
    "timeRangeDay": "Past day",
    "timeRangeWeek": "Past week",
    "timeRangeMonth": "Past month",
    "timeRangeYear": "Past year",
    "domainPlaceholder": "example.com",
    "requestTimedOut": "Request timed out ({seconds}s)",
    "networkError": "Network error",
    "formatted": "Formatted",
    "rawJson": "JSON",
    "cacheMiss": "cache miss",
    "cacheHit": "cache hit",
    "latency": "Latency",
    "cost": "Cost",
    "results": "Results",
    "rerank": "Rerank",
    "rerankModel": "Rerank Model",
    "positionDelta": "Position Change",
    "emptyState": "Send a search query to see results",
    "copy": "Копія",
    "resetToDefault": "Скинути до замовчування",
    "tabSearch": "Search",
    "tabScrape": "Scrape",
    "tabCompare": "Compare",
    "modalitiesGuide": "Modalities guide",
    "searchConceptTitle": "Search",
    "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
    "scrapeConceptTitle": "Scrape",
    "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
    "compareConceptTitle": "Compare",
    "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
    "rerankConceptTitle": "Rerank",
    "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
    "autoConceptTitle": "Auto (cheapest)",
    "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
    "providerCatalogTitle": "Provider Catalog",
    "kindSearch": "Search",
    "kindFetch": "Fetch/Scrape",
    "statusConfigured": "Configured",
    "statusMissing": "No credential",
    "statusRateLimited": "Rate limited",
    "configureProvider": "Configure in Providers",
    "loadingProviders": "Loading providers…",
    "failedToLoadProviders": "Failed to load providers",
    "costPerQuery": "Cost/query",
    "freeQuota": "Free quota/mo",
    "scrapeUrl": "URL to scrape",
    "scrapeUrlPlaceholder": "https://example.com",
    "scrapeExtract": "Extract",
    "scrapeExtracting": "Extracting…",
    "scrapeFullPage": "Full page",
    "scrapeFormat": "Format",
    "formatMarkdown": "Markdown",
    "formatHtml": "HTML",
    "formatText": "Text",
    "scrapePreview": "Preview",
    "scrapeRaw": "Raw",
    "scrapeContentTruncated": "(truncated, view raw)",
    "scrapeMetadata": "Metadata",
    "scrapeProvider": "Provider",
    "scrapeSize": "Size",
    "compareRun": "Compare",
    "compareRunning": "Comparing…",
    "autoProvider": "Auto (cheapest)",
    "configuredStatus": "Configured",
    "rateLimitedStatus": "Rate limited",
    "noCredential": "No credential",
    "searchTypeLabel": "Type",
    "rerankModelLabel": "Rerank model",
    "noneOption": "None",
    "size": "Size"
  },
  "cliTools": {
    "title": "Інструменти CLI",
    "noActiveProviders": "Немає активних провайдерів",
    "noActiveProvidersDesc": "Спочатку додайте та підключіть постачальників, щоб налаштувати інструменти CLI.",
    "mapModels": "Моделі карт",
    "testConnection": "Тестове підключення",
    "connectionStatus": "Статус підключення",
    "configureEndpoint": "Налаштувати кінцеву точку",
    "instructions": "Інструкції",
    "modelMapping": "Відображення моделі",
    "baseUrl": "Базовий URL",
    "apiKey": "Ключ API",
    "configured": "Налаштовано",
    "notConfigured": "Не налаштовано",
    "notInstalled": "Не встановлено",
    "custom": "Custom",
    "unknown": "Невідомий",
    "lastSavedAt": "Востаннє збережено: {date}",
    "never": "Ніколи",
    "justNow": "тільки зараз",
    "minutesAgoShort": "{count}хв тому",
    "hoursAgoShort": "{count} год тому",
    "daysAgoShort": "{count} дн. тому",
    "monthsAgoShort": "{count}міс. тому",
    "yearsAgoShort": "{count}р тому",
    "runtimeCheckFailed": "Помилка перевірки виконання",
    "yourApiKeyPlaceholder": "ваш API-ключ",
    "modelPlaceholder": "постачальник/ідентифікатор моделі",
    "configurationSaved": "Конфігурацію успішно збережено.",
    "failedToSave": "Не вдалося зберегти конфігурацію.",
    "noApiKeysCreateOne": "Немає ключів API – створіть один на сторінці «Ключі».",
    "defaultOmnirouteKey": "sk_omniroute (за замовчуванням)",
    "selectModel": "Виберіть Модель",
    "selectModelForAlias": "Виберіть модель для {alias}",
    "selectModelForTool": "Виберіть модель для {tool}",
    "select": "Виберіть",
    "clear": "ясно",
    "comingSoon": "Скоро буде",
    "checkingRuntime": "Перевірка стану виконання...",
    "guideOnlyIntegration": "Інтеграція лише з довідниками (не потрібно локальне середовище виконання)",
    "cliRuntimeDetected": "Середовище виконання CLI виявлено та готове",
    "cliFoundNotRunnable": "CLI знайдено, але не можна запустити{reason}",
    "cliRuntimeNotDetected": "Середовище виконання CLI не виявлено",
    "binary": "Двійковий",
    "configPath": "Шлях конфігурації",
    "configPathShort": "Конфігурація",
    "failedCheckRuntimeStatus": "Не вдалося перевірити стан виконання.",
    "copy": "Копія",
    "copied": "Скопійовано",
    "copyConfig": "Копіювати конфіг",
    "saveConfig": "Зберегти конфігурацію",
    "selectionSaved": "Вибір збережено",
    "guide": "Гід",
    "detected": "Виявлено",
    "notReady": "Не готовий",
    "active": "Активний",
    "inactive": "Неактивний",
    "startMitm": "Запустіть MITM",
    "stopMitm": "Зупинити MITM",
    "mitmStarted": "MITM успішно стартував!",
    "mitmStopped": "MITM успішно зупинено!",
    "failedStart": "Не вдалося запустити MITM",
    "failedStop": "Не вдалося зупинити MITM",
    "saveMappings": "Зберегти відображення",
    "mappingsSaved": "Карти збережено!",
    "failedSaveMappings": "Не вдалося зберегти зіставлення",
    "howItWorks": "Як це працює:",
    "antigravityHowWorksDesc": "Антигравітація надсилає запити до кінцевої точки Google. MITM перехоплює та перенаправляє їх на OmniRoute.",
    "antigravityStep1": "1. Запустіть MITM для маршрутизації запитів через OmniRoute.",
    "antigravityStep2Prefix": "2. Додайте",
    "antigravityStep2Suffix": "у ваш файл hosts як 127.0.0.1.",
    "antigravityStep3": "3. Відкрийте Антигравітацію, і запити будуть надсилатися через проксі.",
    "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
    "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
    "mitmStep2Prefix": "2. Add",
    "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
    "mitmStep3": "3. Open {toolName} and requests will be proxied.",
    "sudoPasswordRequiredTitle": "Потрібен пароль Sudo",
    "sudoPasswordHint": "Пароль адміністратора потрібен для зміни параметрів файлу хостів і проксі-сервера системи.",
    "enterSudoPassword": "Введіть пароль sudo",
    "sudoPasswordRequiredError": "Потрібен пароль Sudo.",
    "cancel": "Скасувати",
    "confirm": "Підтвердити",
    "settingsApplied": "Налаштування успішно застосовано!",
    "failedApplySettings": "Не вдалося застосувати налаштування",
    "settingsReset": "Налаштування успішно скинуто!",
    "failedResetSettings": "Не вдалося скинути налаштування",
    "backupRestored": "Резервну копію відновлено!",
    "failedRestore": "Не вдалося відновити",
    "checkingCli": "Перевірка {tool} CLI...",
    "cliNotRunnable": "{tool} CLI встановлено, але не працює",
    "cliNotInstalled": "{tool} CLI не встановлено",
    "cliNotDetected": "{tool} CLI не виявлено",
    "cliDetectedReady": "{tool} CLI виявлено та готово",
    "cliFoundFailedHealthcheck": "Знайдено {tool} CLI, але не вдалося перевірити працездатність під час виконання{reason}.",
    "installCliPrompt": "Щоб використовувати цю функцію, установіть {tool} CLI.",
    "installCodexPrompt": "Будь ласка, встановіть Codex CLI, щоб використовувати функцію автоматичного застосування.",
    "hide": "Сховати",
    "howToInstall": "Як встановити",
    "installationGuide": "Керівництво по установці",
    "platforms": "macOS / Linux / Windows:",
    "afterInstallationRun": "Після установки запустіть",
    "toVerify": "для перевірки.",
    "current": "поточний",
    "baseUrlPlaceholder": "https://.../v1",
    "resetToDefault": "Скинути до замовчування",
    "providerModelPlaceholder": "постачальник/ідентифікатор моделі",
    "apply": "Застосувати",
    "reset": "Скинути",
    "manualConfig": "Конфігурація вручну",
    "backups": "Резервні копії",
    "configBackups": "Резервне копіювання конфігурації",
    "noBackupsYet": "Резервних копій ще немає. Резервні копії створюються автоматично перед кожним застосуванням або скиданням.",
    "restore": "Відновити",
    "backupRestoredReloading": "Резервну копію відновлено! Статус перезавантаження...",
    "failedRestoreBackup": "Не вдалося відновити резервну копію",
    "applied": "Застосовується!",
    "failed": "Не вдалося",
    "resetDone": "Скинути!",
    "omnirouteConfiguredOpenAiCompatible": "OmniRoute налаштовано як постачальник, сумісний з OpenAI",
    "provider": "Провайдер",
    "model": "Модель",
    "providers": "Провайдери",
    "auth": "Авт",
    "noApiKeysAvailable": "Немає доступних ключів API",
    "usingDefaultOmniroute": "За замовчуванням: sk_omniroute",
    "updateConfig": "Оновити конфігурацію",
    "applyConfig": "Застосувати конфігурацію",
    "noBackupsAvailable": "Немає резервних копій.",
    "profileSaved": "Профіль \"{name}\" збережено!",
    "failedSaveProfile": "Не вдалося зберегти профіль",
    "profileActivated": "Профіль активований!",
    "failedActivateProfile": "Не вдалося активувати профіль",
    "profiles": "Профілі",
    "savedProfiles": "Збережені профілі",
    "noProfilesYet": "Ще немає збережених профілів. Збережіть поточну конфігурацію як профіль нижче.",
    "activate": "активувати",
    "deleteProfile": "Видалити профіль",
    "profileNamePlaceholder": "Назва профілю (наприклад, особистий обліковий запис)",
    "saveCurrent": "Зберегти поточне",
    "codexAuthNotePrefix": "Codex використовує",
    "codexAuthNoteMiddle": "з",
    "codexAuthNoteSuffix": "Натисніть «Застосувати», щоб виконати автоматичне налаштування.",
    "claudeManualConfiguration": "Claude CLI - Налаштування вручну",
    "codexManualConfiguration": "Codex CLI - Ручна конфігурація",
    "droidManualConfiguration": "Заводський дроїд - налаштування вручну",
    "openClawManualConfiguration": "Open Claw - налаштування вручну",
    "clineManualConfiguration": "Ручне налаштування Cline",
    "kiloManualConfiguration": "Налаштування коду кіло вручну",
    "whenToUseLabel": "Коли використовувати",
    "openToolDocs": "Відкрийте документацію інструмента",
    "toolUseCases": {
      "claude": "Використовуйте, коли вам потрібні потужні робочі процеси планування та довгі багатофайлові рефактори з Claude Code.",
      "codex": "Використовуйте, коли ваша команда стандартизована на потоках OpenAI Codex CLI та автентифікації на основі профілю.",
      "droid": "Використовуйте, коли вам потрібен легкий термінальний агент, зосереджений на швидкому кодуванні та циклах виконання команд.",
      "openclaw": "Використовуйте, якщо вам потрібен агент кодування у стилі Open Claw, але маршрутизується через політики OmniRoute.",
      "cline": "Використовуйте, коли ви налаштовуєте агенти кодування в редакторах і бажаєте кероване налаштування за допомогою моделей OmniRoute.",
      "kilo": "Використовуйте, коли ваш робочий процес залежить від команд Kilo Code та швидких ітеративних редагувань.",
      "cursor": "Використовуйте під час кодування в Cursor, і вам потрібні власні моделі, сумісні з OpenAI через OmniRoute.",
      "continue": "Використовуйте під час запуску Продовжити в IDE і вам потрібна портативна конфігурація постачальника на основі JSON.",
      "opencode": "Використовуйте, якщо ви віддаєте перевагу запуску агента на терміналі та автоматизації за сценарієм через OpenCode.",
      "kiro": "Використовуйте під час інтеграції Kiro та централізованого керування маршрутизацією моделі з OmniRoute.",
      "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
      "antigravity": "Використовуйте, коли трафік Antigravity/Kiro потрібно перехопити через MITM і направити на OmniRoute.",
      "copilot": "Використовуйте, коли вам потрібен UX у стилі чату Copilot із застосуванням ключів OmniRoute і правил маршрутизації.",
      "amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
      "qwen": "Use when you want Qwen Code CLI with OmniRoute-managed provider settings and multi-provider model access.",
      "hermes": "Використовуйте, коли вам потрібен легкий власний помічник зі штучним інтелектом для швидких завдань.",
      "hermes-agent": "Використовуйте, коли потрібен Hermes Agent (від Nousresearch) із моделями за замовчуванням, делегування, vision та допоміжними, маршрутизованими через OmniRoute.",
      "custom": "Використовуйте для реалізації спеціальних інструментів або загальних конфігурацій, сумісних з OpenAI."
    },
    "toolDescriptions": {
      "antigravity": "Google Antigravity IDE з MITM",
      "claude": "Антропний код Клода CLI",
      "codex": "OpenAI Codex CLI",
      "droid": "Factory Droid AI Assistant",
      "openclaw": "Open Claw AI Assistant",
      "cline": "Cline AI Coding Assistant CLI",
      "kilo": "Кіло Код AI Assistant CLI",
      "cursor": "Редактор коду Cursor AI",
      "continue": "Продовжити AI Assistant",
      "opencode": "OpenCode AI coding agent (Terminal)",
      "kiro": "Amazon Kiro — AI-powered IDE",
      "windsurf": "Windsurf AI Code Editor",
      "copilot": "GitHub Copilot AI Assistant",
      "qwen": "Alibaba Qwen Code CLI",
      "amp": "Sourcegraph Amp coding assistant CLI",
      "hermes": "Hermes AI Terminal Assistant",
      "hermes-agent": "Hermes Agent (від Nousresearch) — просунутий термінальний AI з підтримкою мультимоделей (делегування, vision, стиснення тощо)",
      "custom": "Generic OpenAI-сумісний CLI або SDK генератор конфігурації"
    },
    "guides": {
      "cursor": {
        "notes": {
          "0": "Для використання цієї функції потрібен обліковий запис Cursor Pro.",
          "1": "Курсор направляє запити через власний сервер, тому локальна кінцева точка не підтримується. Увімкніть Cloud Endpoint у налаштуваннях."
        },
        "steps": {
          "1": {
            "title": "Відкрийте налаштування",
            "desc": "Перейдіть до Налаштування -> Моделі"
          },
          "2": {
            "title": "Увімкнути OpenAI API",
            "desc": "Увімкніть параметр «Ключ API OpenAI»."
          },
          "3": {
            "title": "Базовий URL"
          },
          "4": {
            "title": "Ключ API"
          },
          "5": {
            "title": "Додати спеціальну модель",
            "desc": "Натисніть «Переглянути всю модель» -> «Додати спеціальну модель»"
          },
          "6": {
            "title": "Виберіть Модель"
          }
        }
      },
      "continue": {
        "steps": {
          "1": {
            "title": "Відкрийте Config",
            "desc": "Відкрийте файл конфігурації Продовжити"
          },
          "2": {
            "title": "Ключ API"
          },
          "3": {
            "title": "Виберіть Модель"
          },
          "4": {
            "title": "Додати конфігурацію моделі",
            "desc": "Додайте таку конфігурацію до свого масиву моделей:"
          }
        },
        "notes": {
          "0": "Продовжити використання файлу конфігурації JSON."
        }
      },
      "opencode": {
        "steps": {
          "1": {
            "title": "Install OpenCode",
            "desc": "Install via npm: npm install -g opencode-ai"
          },
          "2": {
            "title": "API Key"
          },
          "3": {
            "title": "Set Base URL",
            "desc": "opencode config set baseUrl {baseUrl}"
          },
          "4": {
            "title": "Select Model"
          },
          "5": {
            "title": "Use Thinking Variant",
            "desc": "For thinking models, run with --variant high/low/max (example command below)."
          }
        },
        "notes": {
          "0": "OpenCode вимагає налаштування ключа API.",
          "1": "Установіть базову URL-адресу для кінцевої точки OmniRoute."
        }
      },
      "kiro": {
        "steps": {
          "1": {
            "title": "Open Kiro Settings",
            "desc": "Go to Settings → AI Provider"
          },
          "2": {
            "title": "Base URL",
            "desc": "Paste your OmniRoute endpoint URL"
          },
          "3": {
            "title": "API Key"
          },
          "4": {
            "title": "Select Model"
          }
        },
        "notes": {
          "0": "Kiro потрібен обліковий запис Amazon."
        }
      },
      "windsurf": {
        "steps": {
          "1": {
            "title": "Open AI Settings",
            "desc": "Click the AI Settings icon in Windsurf or go to Settings"
          },
          "2": {
            "title": "Add Custom Provider",
            "desc": "Select \"Add custom provider\" (OpenAI-compatible)"
          },
          "3": {
            "title": "Base URL",
            "desc": "http://127.0.0.1:20128/v1"
          },
          "4": {
            "title": "API Key",
            "desc": "Select your OmniRoute API key"
          },
          "5": {
            "title": "Select Model",
            "desc": "Choose a model from the dropdown"
          }
        }
      }
    },
    "autoConfiguredTab": "Auto Configured Tab",
    "toolCategoriesDesc": "Tool Categories Desc",
    "allToolsTab": "All Tools Tab",
    "guidedClientsTab": "Guided Clients Tab",
    "mitmClientsTab": "Mitm Clients Tab",
    "customCliTab": "Спеціальний CLI",
    "toolCategories": "Tool Categories",
    "visibleToolsCount": "Доступні інструменти: {count}",
    "customCliBuilderTitle": "Конструктор CLI, сумісний з OpenAI",
    "customCliBuilderDescription": "Генеруйте змінні env і фрагменти JSON для будь-якого CLI або SDK, які приймають сумісну з OpenAI базову URL-адресу, ключ API та ідентифікатор моделі.",
    "customCliNoModels": "Підключіть принаймні одного постачальника, щоб заповнити селектори моделей.",
    "customCliNameLabel": "Ім'я CLI",
    "customCliNamePlaceholder": "напр. Моя команда CLI",
    "customCliDefaultModelLabel": "Модель за замовчуванням",
    "customCliDefaultModelHelp": "Використовуйте будь-який ідентифікатор моделі OmniRoute або комбінацію. Більшість сумісних з OpenAI CLI потребують лише базової URL-адреси /v1 і рядка моделі.",
    "customCliKeyHelper": "Для локального встановлення OmniRoute може використовувати sk_omniroute. У хмарному режимі виберіть один із ключів API керування.",
    "customCliAliasMappingsLabel": "Відображення псевдонімів",
    "customCliAliasMappingsHelp": "Додаткові допоміжні псевдоніми для сценаріїв-оболонок або файлів конфігурації, які потребують стабільних скорочених імен.",
    "customCliAddAlias": "Додати псевдонім",
    "customCliNoMappings": "Зіставлення псевдонімів ще немає. Додайте його, якщо ваша оболонка або командні сценарії використовують стабільні короткі імена.",
    "customCliAliasPlaceholder": "напр. огляд",
    "customCliTargetModelLabel": "Цільова модель",
    "customCliEndpointHintLabel": "Як підключити кінцеву точку",
    "customCliEndpointHint": "Направте будь-який OpenAI-сумісний клієнт на базову URL-адресу OmniRoute /v1. Необроблена кінцева точка завершення чату – {endpoint}. Використовуйте блок JSON, коли інструменту потрібен об’єкт постачальника, або сценарій env, коли він читає змінні OPENAI_*.",
    "customCliEnvBlockTitle": "Env / фрагмент оболонки",
    "customCliJsonBlockTitle": "Блок JSON постачальника",
    "copilotConfigGenerator": "Генератор конфігурації GitHub Copilot",
    "copilotApiKey": "Ключ API",
    "copilotFilterModelsPlaceholder": "Фільтрувати моделі...",
    "copilotMaxInputTokens": "Максимальна кількість токенів введення",
    "copilotMaxOutputTokens": "Макс вихідних токенів",
    "copilotToolCalling": "Виклик інструменту",
    "copilotPasteInto": "Вставити в: ",
    "wireApiChatCompletions": "Завершення чату (/chat/completions)",
    "wireApiResponses": "Responses API (/responses)"
  },
  "combos": {
    "title": "Комбо",
    "description": "Створюйте комбінації моделей із зваженою маршрутизацією та підтримкою резервного варіанту",
    "autoCatalogTitle": "Каталог автомаршрутизації",
    "autoCatalogTemplateCount": "{count} шаблони",
    "autoCatalogDescription": "Вбудовані комбінації auto/*, які динамічно вирішуються від підключених постачальників. Використовуйте будь-який із цих ідентифікаторів як поле моделі — налаштування не потрібно.",
    "autoCatalogExpand": "Розгорнути каталог автомаршрутизації",
    "autoCatalogCollapse": "Згорнути каталог автоматичного маршрутизації",
    "createCombo": "Створити комбо",
    "editCombo": "Редагувати комбінацію",
    "deleteCombo": "Видалити комбо",
    "noModels": "Немає моделей",
    "noModelsYet": "Моделі ще не додано",
    "addModel": "Додати модель",
    "addModelToCombo": "Додати модель до комбо",
    "routingStrategy": "Стратегія маршрутизації",
    "maxRetries": "Макс. повторних спроб",
    "timeout": "Час очікування (мс)",
    "healthcheck": "Healthcheck",
    "priority": "Пріоритет",
    "fallback": "Запасний варіант",
    "roundRobin": "Кругова система",
    "random": "Випадковий",
    "leastLatency": "Найменша затримка",
    "comboName": "Комбінована назва",
    "comboNamePlaceholder": "моє комбо",
    "deleteConfirm": "Видалити цю комбінацію?",
    "noCombosYet": "Комбо ще немає",
    "comboCreated": "Комбінацію створено успішно",
    "comboUpdated": "Комбо успішно оновлено",
    "comboDeleted": "Комбо видалено",
    "failedCreate": "Не вдалося створити комбо",
    "failedUpdate": "Не вдалося оновити комбінацію",
    "errorCreating": "Помилка створення комбо",
    "errorUpdating": "Помилка оновлення комбо",
    "errorDeleting": "Помилка видалення комбо",
    "testFailed": "Помилка тестового запиту",
    "failedToggle": "Не вдалося перемкнути комбінацію",
    "testResults": "Результати тесту — {name}",
    "resolvedBy": "Вирішено:",
    "more": "+ ще {count}",
    "reqs": "вимоги",
    "success": "успіх",
    "proxyConfigured": "Проксі налаштовано",
    "copyComboName": "Копіювати ім'я комбо",
    "enableCombo": "Увімкнути комбо",
    "disableCombo": "Вимкнути комбо",
    "testCombo": "Тестовий комбо",
    "duplicate": "дублікат",
    "proxyConfig": "Конфігурація проксі",
    "nameRequired": "Необхідно вказати ім'я",
    "nameInvalid": "Тільки літери, цифри, -, _, / і . дозволено",
    "nameHint": "Букви, цифри, -, _, / і . дозволено",
    "priorityDesc": "Послідовний резерв: спочатку пробує модель 1, потім 2 тощо.",
    "weightedDesc": "Розподіляє трафік за ваговим відсотком із резервним варіантом",
    "roundRobinDesc": "Циркулярний розподіл: кожен запит переходить до наступної моделі по черзі",
    "contextRelay": "Context Relay",
    "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
    "randomDesc": "Рівномірний випадковий вибір, а потім повернення до інших моделей",
    "leastUsedDesc": "Вибирає модель із найменшою кількістю запитів, балансуючи навантаження за часом",
    "costOptimizedDesc": "Маршрути до найдешевшої моделі на основі ціни",
    "resetAware": "Reset-Aware RR",
    "resetAwareDesc": "Балансує квоту, що залишилася, із 5-годинним і щотижневим скиданням, а потім циклічними роботами з подібними результатами",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
    "models": "Моделі",
    "autoBalance": "Автобаланс",
    "advancedSettings": "Розширені налаштування",
    "retryDelay": "Затримка повтору (мс)",
    "concurrencyPerModel": "Одночасність / Модель",
    "queueTimeout": "Час очікування черги (мс)",
    "contextRelayHandoffThreshold": "Handoff Threshold",
    "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
    "contextRelayMaxMessages": "Max Messages For Summary",
    "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
    "contextRelaySummaryModel": "Summary Model",
    "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
    "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
    "advancedHint": "Залиште пустим, щоб використовувати глобальні параметри за умовчанням. Вони замінюють налаштування кожного постачальника.",
    "failoverBeforeRetry": "Відмова перед повторною спробою",
    "maxSetRetries": "Максимальна кількість повторних спроб",
    "setRetryDelayMs": "Встановити затримку повтору (мс)",
    "moveUp": "Рухатися вгору",
    "moveDown": "Рухатися вниз",
    "removeModel": "видалити",
    "saving": "Збереження...",
    "weighted": "Зважений",
    "leastUsed": "Найменш використовуваний",
    "costOpt": "Cost-Opt",
    "strategyGuideTitle": "How to use this strategy",
    "strategyGuideWhen": "When to use",
    "strategyGuideAvoid": "Avoid when",
    "strategyGuideExample": "Example",
    "strategyGuide": {
      "priority": {
        "when": "You have one preferred model and only want fallback on failure.",
        "avoid": "You need request distribution across models.",
        "example": "Primary coding model with cheaper backup for outages."
      },
      "weighted": {
        "when": "You need controlled traffic split across models.",
        "avoid": "You cannot maintain accurate weights over time.",
        "example": "80% stable model + 20% canary model rollout."
      },
      "round-robin": {
        "when": "You want predictable and even distribution.",
        "avoid": "Models differ too much in latency or cost.",
        "example": "Same model on multiple accounts to spread throughput."
      },
      "random": {
        "when": "You want simple distribution with minimal setup.",
        "avoid": "You need strict traffic guarantees.",
        "example": "Quick prototyping with equivalent models."
      },
      "least-used": {
        "when": "You want adaptive balancing based on live demand.",
        "avoid": "Traffic is too low to benefit from usage balancing.",
        "example": "Mixed workloads where one model often gets overloaded."
      },
      "cost-optimized": {
        "when": "Cost reduction is your top priority.",
        "avoid": "Pricing data is missing or outdated.",
        "example": "Background or batch jobs where lower cost is preferred."
      },
      "reset-aware": {
        "when": "Ви маршрутизуєте між кількома обліковими записами за допомогою квотної телеметрії та різних вікон скидання.",
        "avoid": "Телеметрія квоти недоступна для більшості облікових записів.",
        "example": "Віддавайте перевагу щотижневому скиданню облікових записів на 60% завтра, ніж оновленню на 80% пізніше."
      },
      "strict-random": {
        "when": "Use when you want perfectly even spread — each model used once before repeating.",
        "avoid": "Avoid when models have different quality or latency and order matters.",
        "example": "Example: Multiple accounts of the same model to distribute usage evenly."
      },
      "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."
      },
      "fill-first": {
        "when": "Використовуйте, коли ви хочете повністю вичерпати квоту одного постачальника перед переходом до наступного.",
        "avoid": "Уникайте, коли вам потрібне балансування навантаження на рівні запиту між постачальниками.",
        "example": "Приклад: використайте всі $200 кредитів Deepgram, перш ніж повернутися до Groq."
      },
      "auto": {
        "when": "Використовуйте, коли вам потрібна багатофакторна оцінка маршруту на основі вартості, затримки та якості.",
        "avoid": "Уникайте, коли вам потрібен суворий пріоритетний порядок або історична стійкість.",
        "example": "Приклад: баланс запитів між моделями з різною сильністю."
      },
      "lkgp": {
        "when": "Використовуйте, коли потрібно скласти маршрут на основі історичних показників успіху та продуктивності.",
        "avoid": "Уникайте випадків, коли історичні дані обмежені або ненадійні.",
        "example": "Приклад: шлях до моделей із хорошим досвідом виконання конкретних завдань."
      },
      "context-optimized": {
        "when": "Використовуйте, коли вам потрібно оптимізувати використання контекстного вікна в різних моделях.",
        "avoid": "Уникайте випадків, коли моделі мають подібну довжину контексту або прості завдання.",
        "example": "Приклад: розподіляйте довгі розмови між моделями з більшими контекстними вікнами."
      }
    },
    "advancedHelp": {
      "maxRetries": "How many retries are attempted before failing a request.",
      "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
      "timeout": "Maximum request duration before aborting.",
      "healthcheck": "Skips unhealthy models/providers from routing decisions.",
      "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
      "queueTimeout": "How long a request can wait in queue before timing out.",
      "failoverBeforeRetry": "Якщо ввімкнено, будь-яка помилка висхідного потоку запускає негайне перемикання після відмови до наступної комбінованої цілі, пропускаючи всі повторні спроби та резервні URL-адреси.",
      "maxSetRetries": "Кількість разів, щоб повторити повний набір цілей, коли кожна ціль не вдається. 0 = немає повторної спроби встановленого рівня.",
      "setRetryDelayMs": "Затримка між повторними спробами встановленого рівня, що дає час для вирішення тимчасових проблем."
    },
    "templatesTitle": "Quick templates",
    "templatesDescription": "Apply a starting profile, then adjust models and config.",
    "templateApply": "Apply template",
    "templateHighAvailability": "High availability",
    "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
    "templateCostSaver": "Cost saver",
    "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
    "templateBalanced": "Balanced load",
    "templateBalancedDesc": "Least-used routing to spread demand over time.",
    "usageGuideHide": "Приховати",
    "usageGuideDontShowAgain": "Більше не показувати",
    "usageGuideShow": "Показати інструкцію",
    "quickTestTitle": "Combo ready to validate",
    "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
    "testNow": "Test now",
    "pricingCoverage": "Pricing coverage",
    "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
    "pricingAvailable": "Pricing available",
    "pricingMissing": "No pricing",
    "pricingAvailableShort": "priced",
    "pricingMissingShort": "no-price",
    "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
    "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
    "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
    "filterAll": "Усі",
    "filterIntelligent": "Інтелектуальні",
    "filterDeterministic": "Детерміновані",
    "filterEmptyTitle": "No combos match this strategy filter.",
    "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
    "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
    "readinessTitle": "Готові економити?",
    "readinessDescription": "Перегляньте контрольний список, перш ніж створювати або оновлювати цю комбінацію.",
    "readinessCheckName": "Ім'я комбінованого тексту дійсне",
    "readinessCheckModels": "Вибрано принаймні одну модель",
    "readinessCheckWeights": "Зважений підсумок становить 100%",
    "readinessCheckWeightsOptional": "Правило ваги не потрібне",
    "readinessCheckPricing": "Ціни доступні",
    "readinessCheckPricingOptional": "Правило ціноутворення не вимагається",
    "saveBlockedTitle": "Збереження заблоковано, доки не будуть виправлені такі елементи:",
    "saveBlockName": "Визначте комбіноване ім’я.",
    "saveBlockModels": "Додайте хоча б одну модель.",
    "saveBlockWeighted": "Встановити ваги на 100% (поточний: {total}%).",
    "saveBlockPricing": "Додайте ціну принаймні на одну модель або виберіть іншу стратегію.",
    "recommendationsLabel": "Recommended setup",
    "applyRecommendations": "Apply recommendations",
    "recommendationsUpdated": "Recommendations updated for {strategy}.",
    "recommendationsApplied": "Recommendations applied to this combo.",
    "intelligentPanelTitle": "Intelligent Routing Dashboard",
    "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
    "configOnlyStatus": "Перегляд конфігурації",
    "configOnlyHint": "Ця панель показує лише вхідні дані маршрутизації. Стан запобіжника в реальному часі доступний на сторінці Стан системи.",
    "routingInputs": "Параметри маршрутизації",
    "routingInputsHint": "Режим і ваги залишаються тут; стан запобіжника в реальному часі — на сторінці Стан системи.",
    "emailVisibilityHint": "Адреси акаунтів тут підпорядковуються глобальному перемикачу приватності.",
    "emailVisibilityTooltip": "Використовуйте піктограму ока, щоб глобально показувати або приховувати адреси акаунтів у комбо, провайдерах і квотах.",
    "manualModel": "Модель вручну",
    "manualModelInvalid": "Введіть модель у форматі провайдер/модель.",
    "manualModelUnknownProvider": "Невідомий префікс провайдера.",
    "builderDynamicAccountShort": "Динамічний акаунт",
    "builderNeedValidName": "Введіть коректну назву комбо перед продовженням.",
    "statusOverview": "Status Overview",
    "normalOperation": "Normal Operation",
    "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
    "incidentMode": "Incident Mode",
    "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
    "activeModePack": "Active Mode Pack",
    "modePackUpdated": "Mode pack updated to {pack}.",
    "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
    "providerScores": "Provider Scores",
    "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
    "excludedProviders": "Excluded Providers",
    "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
    "noExcludedProviders": "No providers are currently excluded.",
    "cooldownMinutes": "Cooldown: {minutes}m",
    "builderIntelligentTitle": "Intelligent Routing Configuration",
    "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
    "candidatePoolLabel": "Candidate Pool",
    "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
    "candidatePoolEmpty": "No active providers available yet.",
    "candidatePoolAllProviders": "All providers",
    "modePackLabel": "Mode Pack",
    "routerStrategyLabel": "Router Strategy",
    "strategyRules": "Rules (6-Factor Scoring)",
    "explorationRateLabel": "Exploration Rate",
    "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
    "budgetCapLabel": "Budget Cap (USD / request)",
    "budgetCapPlaceholder": "No limit",
    "advancedWeightsTitle": "Advanced: Scoring Weights",
    "weightQuota": "Quota",
    "weightHealth": "Health",
    "weightCostInv": "Cost",
    "weightLatencyInv": "Latency",
    "weightTaskFit": "Task Fit",
    "weightStability": "Stability",
    "weightTierPriority": "Tier",
    "reviewIntelligentTitle": "Intelligent Routing Config",
    "strategyRecommendations": {
      "priority": {
        "title": "Fail-safe baseline",
        "description": "Use one primary model and keep fallback chain short and reliable.",
        "tip1": "Put your most reliable model first.",
        "tip2": "Keep 1-2 backup models with similar quality.",
        "tip3": "Use safe retries to absorb transient provider failures."
      },
      "weighted": {
        "title": "Controlled traffic split",
        "description": "Great for canary rollouts and gradual migration between models.",
        "tip1": "Start with conservative split like 90/10.",
        "tip2": "Keep the total at 100% and auto-balance after changes.",
        "tip3": "Monitor success and latency before increasing canary weight."
      },
      "round-robin": {
        "title": "Predictable load sharing",
        "description": "Best when models are equivalent and you need smooth distribution.",
        "tip1": "Use at least 2 models.",
        "tip2": "Set concurrency limits to avoid burst overload.",
        "tip3": "Use queue timeout to fail fast under saturation."
      },
      "random": {
        "title": "Quick spread with low setup",
        "description": "Use when you need simple distribution without strict guarantees.",
        "tip1": "Use models with similar latency profiles.",
        "tip2": "Keep retries enabled to absorb random misses.",
        "tip3": "Prefer this for experimentation, not strict SLAs."
      },
      "least-used": {
        "title": "Adaptive balancing",
        "description": "Routes to less-used models to reduce hotspots over time.",
        "tip1": "Works better under continuous traffic.",
        "tip2": "Combine with health checks for safer balancing.",
        "tip3": "Track per-model usage to validate distribution gains."
      },
      "cost-optimized": {
        "title": "Budget-first routing",
        "description": "Routes to lower-cost models when pricing metadata is available.",
        "tip1": "Ensure pricing coverage for all selected models.",
        "tip2": "Keep a quality fallback for hard prompts.",
        "tip3": "Use for batch/background jobs where cost is the main KPI."
      },
      "reset-aware": {
        "title": "Ротація облікового запису з урахуванням скидання",
        "description": "Балансує залишок квоти постачальника з часом скидання.",
        "tip1": "Використовуйте чіткі кроки облікового запису або маршрутизацію тегів облікового запису для постачальників із квотною телеметрією.",
        "tip2": "Налаштуйте сеанс проти тижневих ваг, коли короткочасне виснаження є більш ризикованим.",
        "tip3": "Тримайте зв’язок невеликим, щоб еквівалентні рахунки все одно справедливо чергувалися."
      },
      "strict-random": {
        "title": "Shuffle deck distribution",
        "description": "Each model is used exactly once per cycle before reshuffling.",
        "tip1": "Use at least 2 models for meaningful distribution.",
        "tip2": "Works best with equivalent-performance models.",
        "tip3": "Ideal for load balancing across multiple API accounts."
      },
      "fill-first": {
        "description": "Послідовно вичерпайте квоти постачальника, перш ніж відступити.",
        "tip1": "Використовуйте для маршрутизації на основі квот із чіткими резервними ланцюжками.",
        "tip2": "Точно встановіть квоти, щоб уникнути передчасного повернення.",
        "tip3": "Найкраще працює з постачальниками, які пропонують безкоштовні рівні або кредитні сегменти.",
        "title": "Вичерпання квоти"
      },
      "auto": {
        "description": "Маршрут на основі оцінки вартості, затримки, якості та працездатності в реальному часі.",
        "tip1": "Дозвольте двигуну автоматично збалансувати численні фактори.",
        "tip2": "Відстежуйте в журналах, які фактори впливають на рішення щодо маршрутизації.",
        "tip3": "Використовуйте для складних робочих навантажень, де не домінує жоден фактор.",
        "title": "Багатофакторна оптимізація"
      },
      "lkgp": {
        "description": "Маршрут, заснований на історичних показниках і моделях успіху.",
        "tip1": "Для точних прогнозів потрібна достатня історія запитів.",
        "tip2": "Добре підходить для робочих навантажень із узгодженими шаблонами продуктивності моделі.",
        "tip3": "Контролюйте точність прогнозу та коригуйте ваги за потреби.",
        "title": "Маршрутизація на основі історії"
      },
      "context-optimized": {
        "description": "Оптимізація маршрутизації на основі використання контекстного вікна та ефективності маркерів.",
        "tip1": "Направляйте довгі розмови на моделі з більшими контекстними вікнами.",
        "tip2": "Контролюйте використання контексту, щоб уникнути марнотратства маркерів.",
        "tip3": "Найкраще для розмовного штучного інтелекту, який потребує значного збереження контексту.",
        "title": "Оптимізація контексту"
      },
      "context-relay": {
        "description": "Найкраще, коли очікується ротація облікових записів і наступний обліковий запис має успадкувати спрощений підсумок завдань.",
        "tip1": "Використовуйте з провайдерами, які змінюють облікові записи для однієї моделі моделі.",
        "tip2": "Встановіть поріг передачі нижче жорстких обмежень квоти для часу генерації підсумків.",
        "tip3": "Встановлюйте спеціальну підсумкову модель, лише якщо основна занадто дорога або нестабільна.",
        "title": "Пріоритет безперервності сеансу"
      },
      "p2c": {
        "description": "Маршрут до постачальника з найменшим поточним навантаженням на основі показників реального часу.",
        "tip1": "Відстежуйте показники здоров’я постачальника для точної оцінки навантаження.",
        "tip2": "Найкраще працює з однорідними пулами провайдерів.",
        "tip3": "Відрегулюйте чутливість, щоб уникнути коливань під час стрибків трафіку.",
        "title": "Сила двох виборів"
      }
    },
    "templateFreeStack": "Free Stack ($0)",
    "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding.",
    "auto": "Auto Combo",
    "autoDesc": "Self-healing smart routing pool (Performance optimized)",
    "lkgp": "LKGP Mode",
    "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
    "wizardGuideTitle": "Початок роботи з Комбо",
    "wizardGuideDesc": "Створіть комбінації моделей для розумної маршрутизації AI-трафіку",
    "wizardGuideHint": "або натисніть + Створити комбо вище",
    "createFirstCombo": "Створити перше комбо",
    "wizardStep1Title": "Назвіть комбо",
    "wizardStep1Desc": "Дайте комбо унікальну назву для ідентифікації в правилах маршрутизації",
    "wizardStep2Title": "Додайте моделі",
    "wizardStep2Desc": "Виберіть AI-моделі та задайте порядок резервного перемикання",
    "wizardStep3Title": "Виберіть стратегію",
    "wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
    "wizardStep4Title": "Перевірте та збережіть",
    "wizardStep4Desc": "Перегляньте конфігурацію та активуйте комбо",
    "emailVisibilityStateOn": "On",
    "emailVisibilityStateOff": "Off",
    "reorderHandle": "Drag to reorder",
    "failedReorder": "Failed to reorder models",
    "builderFlowTitle": "Combo Builder Flow",
    "builderStage": {
      "basics": {
        "label": "Basics",
        "description": "Name and starting template"
      },
      "steps": {
        "label": "Steps",
        "description": "Provider, model, and account selection"
      },
      "strategy": {
        "label": "Strategy",
        "description": "Routing behavior and advanced settings"
      },
      "intelligent": {
        "label": "Smart Routing",
        "description": "Auto-routing candidate pool, presets, and scoring"
      },
      "review": {
        "label": "Review",
        "description": "Final validation before saving"
      }
    },
    "builderStageVisited": "Stage completed",
    "builderStageCurrent": "Current stage",
    "builderStagePending": "Pending",
    "builderStageLocked": "Locked — complete previous stage first",
    "builderTitle": "Build a Combo",
    "builderBrowseCatalog": "Browse catalog",
    "builderProvider": "Provider",
    "builderLoadingProviders": "Loading providers...",
    "builderSelectProvider": "Select provider",
    "builderModel": "Model",
    "builderSelectModel": "Select model",
    "builderProviderFirst": "Pick provider first",
    "builderAccount": "Account",
    "builderPreview": "Preview",
    "builderAddStep": "Add step",
    "builderDuplicateExact": "Цей точний крок постачальника/моделі/облікового запису вже є в комбінації.",
    "builderComboRef": "Combo Ref",
    "builderAddComboRef": "Add combo reference",
    "builderComboRefStep": "Add combo reference",
    "builderPinnedAccount": "Pinned Account",
    "builderLegacyEntry": "Legacy entry",
    "reviewName": "Name",
    "reviewStrategy": "Strategy",
    "reviewSteps": "Steps",
    "reviewAccounts": "Accounts",
    "reviewProviders": "Providers",
    "reviewComboRefs": "Combo References",
    "reviewAdvanced": "Advanced Settings",
    "reviewAgentFlags": "Agent Flags",
    "reviewSequence": "Model Sequence",
    "reviewNoSteps": "No steps configured",
    "builderStagesDescription": "Пройдіть кожен етап, щоб визначити комбінації, побудувати кроки, вибрати стратегію маршрутизації та переглянути результати.",
    "builderStepsDescription": "Створюйте кожен комбінований крок у порядку: постачальник, модель, потім обліковий запис. Це дозволяє повторно використовувати того самого постачальника та модель для різних облікових записів.",
    "selectProvider": "Виберіть Постачальник",
    "selectProviderPlaceholder": "Виберіть провайдера",
    "selectModel": "Виберіть Модель",
    "selectModelPlaceholder": "Спочатку виберіть постачальника",
    "selectAccount": "Виберіть обліковий запис",
    "selectComboToReference": "Виберіть комбо для посилання",
    "comboReference": "Combo Reference",
    "addComboReference": "Додати комбіноване посилання",
    "addStepBeforeContinue": "Будь ласка, додайте принаймні один крок, перш ніж перейти до наступного етапу.",
    "previewNextStep": "Попередній перегляд наступного кроку",
    "autoSelectAccount": "Автоматичний вибір облікового запису під час виконання",
    "modePackBalanced": "Збалансований",
    "modePackBudget": "Бюджет",
    "modePackPerformance": "Продуктивність",
    "modePackCustom": "Custom",
    "browseLegacyCatalog": "Перегляньте застарілий комбінований каталог",
    "agentFeaturesTitle": "Особливості агента",
    "agentFeaturesDescription": "Увімкніть розширені функції для агентів, які використовують цю комбінацію",
    "agentFeaturesSystemMessageOverride": "Перевизначити системне повідомлення",
    "agentFeaturesSystemMessagePlaceholder": "Ви експерт-помічник...",
    "agentFeaturesSystemMessageHint": "Заміна системних повідомлень для агентів",
    "agentFeaturesToolFilterRegex": "/регулярний-шаблон/",
    "agentFeaturesToolFilterHint": "Інструмент фільтрування регулярного виразу для агентів",
    "agentFeaturesContextCacheHint": "Увімкнути контекстний кеш для інструментів агента",
    "agentFeaturesContextCacheProtection": "Захист кешу від мутацій агента",
    "agentFeaturesContextLength": "Довжина контексту",
    "agentFeaturesContextLengthPlaceholder": "напр. 128000",
    "agentFeaturesContextLengthHint": "Визначає контекстне вікно для цього комбо в /v1/models.",
    "agentFeaturesContextLengthErrorInteger": "Довжина контексту має бути дійсним цілим числом",
    "agentFeaturesContextLengthErrorRange": "Довжина контексту має бути від 1000 до 2000000",
    "compressionOverride": "Перевизначення стиснення",
    "modePack": "Пакет режимів"
  },
  "costs": {
    "title": "Витрати",
    "pageDescription": "Відстежуйте витрати, аналізуйте тенденції та керуйте бюджетом штучного інтелекту в усіх постачальників",
    "overview": "Огляд",
    "budget": "Бюджет",
    "totalCost": "Загальна вартість",
    "breakdown": "Розподіл витрат",
    "noData": "Немає даних про вартість",
    "byModel": "За моделлю",
    "byProvider": "Від постачальника",
    "range7d": "7 днів",
    "range30d": "30 днів",
    "range90d": "90 днів",
    "rangeAll": "Весь час",
    "spend30d": "Spend30D",
    "activeModels": "Active Models",
    "selectedWindow": "Selected Window",
    "activeProviders": "Active Providers",
    "overviewTitle": "Overview Title",
    "spend7d": "Spend7D",
    "avgCostPerRequest": "Avg Cost Per Request",
    "noCostDataDescription": "No Cost Data Description",
    "spendToday": "Spend Today",
    "overviewLoadFailed": "Overview Load Failed",
    "overviewDescription": "Overview Description",
    "providerShare": "Provider Share",
    "topProviders": "Top Providers",
    "costTrend": "Cost Trend",
    "noCostDataTitle": "No Cost Data Title",
    "topModels": "Top Models",
    "requestsInWindow": "Requests In Window",
    "tokenUsage": "Використання маркера",
    "totalTokens": "Загальна кількість токенів",
    "inputTokens": "Вхідні маркери",
    "outputTokens": "Вихідні жетони",
    "inputOutputRatio": "Співвідношення вхід/вихід",
    "tokens": "жетони",
    "routingEfficiency": "Ефективність маршрутизації",
    "fallbackCount": "Резервні запити",
    "fallbackRate": "Резервна ставка",
    "modelCoverage": "Покриття моделі",
    "modelCoverageDesc": "% запитів із явною моделлю",
    "outOfRequests": "із {total} запитів",
    "costByApiKey": "Вартість за ключем API",
    "costByAccount": "Вартість за рахунком",
    "apiKeyName": "Ключ API",
    "account": "Обліковий запис",
    "requests": "Запити",
    "cost": "Вартість",
    "dayStreak": "денна смуга",
    "weeklyUsagePattern": "Щотижневий шаблон використання",
    "activityHeatmap": "Активність (365 днів)",
    "less": "менше",
    "more": "більше",
    "monthlyForecast": "Прогноз на місяць",
    "forecastBasis": "На основі останніх {days} днів",
    "avgDailyCost": "Середнє добова вартість",
    "daysRemaining": "Залишилося {days} днів",
    "periodComparison": "Порівняння періодів",
    "previousPeriod": "Попередня половина",
    "currentPeriod": "Поточна половина",
    "exportCSV": "Експортувати як CSV",
    "exportJSON": "Експорт як JSON",
    "legacyFreeLabel": "Застаріле / безкоштовне",
    "costExplorerTitle": "Оглядач витрат",
    "costExplorerDescription": "Переглядайте витрати за постачальником, моделлю, ключем API, обліковим записом або рівнем сервісу.",
    "groupProvider": "Постачальник",
    "groupModel": "Модель",
    "groupApiKey": "Ключ API",
    "groupAccount": "Обліковий запис",
    "groupServiceTier": "Рівень сервісу",
    "serviceTierFast": "__MISSING__:Fast",
    "serviceTierFlex": "__MISSING__:Flex",
    "serviceTierStandard": "__MISSING__:Standard",
    "serviceTierBreakdownTitle": "Рівень сервісу",
    "serviceTierBreakdownSubtitle": "Розподіл Fast / Flex / Standard",
    "serviceTierUsageSaved": "збережено використання",
    "serviceTierCostSaved": "заощаджено",
    "serviceTierCostShareSuffix": "від вартості",
    "dimension": "Вимір",
    "share": "Частка",
    "legacyOrFree": "Застаріле / безкоштовне",
    "filterRows": "Фільтрувати рядки…",
    "filterCostExplorerRows": "Фільтрувати рядки оглядача витрат",
    "noMatchingCostRows": "Немає відповідних рядків витрат",
    "noMatchingCostRowsDescription": "Змініть текст пошуку, групування або вибране часове вікно.",
    "showingCostRows": "Показано {shown} з {total} відповідних рядків.",
    "showingTopCostRows": "Показано {shown} з {total} відповідних рядків (топ 50)."
  },
  "endpoint": {
    "title": "Кінцева точка API",
    "available": "Доступні кінцеві точки",
    "cloudProxy": "Хмарний проксі",
    "disableConfirm": "Ви впевнені, що бажаєте вимкнути хмарний проксі?",
    "baseUrl": "Базовий URL",
    "apiKeyLabel": "Ключ API",
    "registeredKeys": "Зареєстровані ключі",
    "chatCompletions": "Завершення чату",
    "responses": "Відповіді",
    "listModels": "Список моделей",
    "usingCloudProxy": "Використання Cloud Proxy",
    "usingLocalServer": "Використання локального сервера",
    "machineId": "Ідентифікатор машини: {id}...",
    "disableCloud": "Вимкнути хмару",
    "enableCloud": "Увімкнути хмару",
    "modelsAcrossEndpoints": "{models} моделей через {endpoints} кінцевих точок",
    "loadingModels": "Loading available models...",
    "chatDesc": "Потоковий і непотоковий чат з усіма провайдерами",
    "embeddings": "Вбудовування",
    "embeddingsDesc": "Вбудовування тексту для конвеєрів пошуку та RAG",
    "imageGeneration": "Генерація зображень",
    "imageDesc": "Створення зображень із текстових підказок",
    "rerank": "Змінити ранг",
    "rerankDesc": "Реранжувати документи за відповідністю запиту",
    "audioTranscription": "Транскрипція аудіо",
    "audioTranscriptionDesc": "Транскрибувати аудіофайли в текст (Whisper)",
    "textToSpeech": "Перетворення тексту в мовлення",
    "textToSpeechDesc": "Перетворення тексту на природне мовлення",
    "musicGeneration": "Music Generation",
    "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
    "moderations": "Модерації",
    "moderationsDesc": "Модерація контенту та класифікація безпеки",
    "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
    "listModelsDesc": "List all available models across all connected providers",
    "settingsApiDesc": "Read and modify OmniRoute configuration via API",
    "settingsApi": "Settings API",
    "categoryCore": "Основні API",
    "categoryMedia": "Медіа та мультимодальність",
    "categorySearch": "Search & Discovery",
    "categoryUtility": "Утиліти та управління",
    "webSearch": "Web Search",
    "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
    "searchProvider": "Search Provider",
    "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
    "enableCloudTitle": "Увімкнути Cloud Proxy",
    "whatYouGet": "Що ви отримаєте",
    "cloudBenefitAccess": "Отримайте доступ до свого API з будь-якої точки світу",
    "cloudBenefitShare": "Легко діліться кінцевою точкою зі своєю командою",
    "cloudBenefitPorts": "Не потрібно відкривати порти чи налаштовувати брандмауер",
    "cloudBenefitEdge": "Швидка глобальна крайова мережа",
    "cloudSessionNote": "Хмара зберігатиме ваш сеанс авторизації протягом 1 дня. Якщо не використовувати, воно буде автоматично видалено.",
    "cloudUnstableNote": "Хмара зараз нестабільна з Claude Code OAuth у деяких випадках.",
    "cloudConnected": "Cloud Proxy підключено!",
    "connectingToCloud": "Підключення до хмари...",
    "verifyingConnection": "Перевірка підключення...",
    "connecting": "Підключення...",
    "verifying": "Перевірка...",
    "connected": "Підключено!",
    "disableCloudTitle": "Вимкнути хмарний проксі",
    "disableWarning": "Усі сеанси авторизації буде видалено з хмари.",
    "syncingData": "Синхронізація останніх даних...",
    "disablingCloud": "Вимкнення хмари...",
    "syncing": "Синхронізація...",
    "disabling": "Вимкнення...",
    "cloudConnectedVerified": "Cloud Proxy підключено та перевірено!",
    "connectedVerificationPending": "Підключено — очікується перевірка",
    "connectedVerificationPendingWithError": "Підключено — очікується підтвердження: {error}",
    "cloudDisabledSuccess": "Хмару успішно вимкнено",
    "syncedSuccess": "Успішно синхронізовано",
    "failedDisable": "Не вдалося вимкнути хмару",
    "failedEnable": "Не вдалося ввімкнути хмару",
    "cloudRequestTimeout": "Час очікування хмарного запиту",
    "cloudRequestFailed": "Помилка запиту на хмару",
    "cloudWorkerUnreachable": "Не вдалося підключитися до хмарного працівника. Переконайтеся, що хмарна служба запущена (npm run dev в /cloud).",
    "connectionFailed": "Помилка підключення",
    "syncFailed": "Не вдалося синхронізувати хмарні дані",
    "cloudflaredTitle": "Cloudflare Quick Tunnel",
    "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.",
    "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart.",
    "cloudflaredEnable": "Enable Tunnel",
    "cloudflaredInstallAndEnable": "Install & Enable",
    "cloudflaredDisable": "Stop Tunnel",
    "cloudflaredRunning": "Running",
    "cloudflaredStarting": "Starting",
    "cloudflaredStoppedState": "Stopped",
    "cloudflaredNotInstalled": "Not installed",
    "cloudflaredUnsupported": "Unsupported",
    "cloudflaredError": "Error",
    "cloudflaredStarted": "Cloudflare tunnel started",
    "cloudflaredStopped": "Cloudflare tunnel stopped",
    "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
    "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.",
    "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.",
    "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
    "cloudflaredLastError": "Last error: {error}",
    "providerModelsTitle": "{provider} — Моделі",
    "noModelsForProvider": "Для цього постачальника немає доступних моделей.",
    "chat": "Чат",
    "embedding": "Вбудовування",
    "image": "Зображення",
    "custom": "звичай",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "sectionTitle": "Integration Surface",
    "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
    "tabApis": "OpenAI-compatible APIs",
    "tabProtocols": "Protocols",
    "tabsAria": "Endpoint sections",
    "protocolsTitle": "Protocols",
    "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
    "mcpCardTitle": "MCP Server",
    "mcpCardDescription": "Model Context Protocol over stdio",
    "a2aCardTitle": "A2A Server",
    "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
    "protocolToolsLabel": "Tools",
    "protocolTasksLabel": "Tasks",
    "protocolActiveStreamsLabel": "Active streams",
    "protocolLastActivity": "Last activity",
    "quickStart": "Quick Start",
    "openMcpDashboard": "Open MCP management",
    "openA2aDashboard": "Open A2A management",
    "mcpQuickStartTitle": "MCP Quick Start",
    "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
    "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
    "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
    "a2aQuickStartTitle": "A2A Quick Start",
    "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
    "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
    "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
    "completionsLegacy": "Completions (Legacy)",
    "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
    "messagesApi": "Повідомлення",
    "messagesApiDesc": "Формат Native Anthropic Messages API для Claude-сумісних постачальників",
    "imageEdits": "Редагування зображень",
    "imageEditsDesc": "Редагуйте та змінюйте наявні зображення за допомогою ШІ (домальовування, домальовування, варіації)",
    "batchApi": "Пакетний API",
    "batchApiDesc": "Асинхронна обробка великих пакетів запитів (сумісний з OpenAI)",
    "filesApi": "API файлів",
    "filesApiDesc": "Завантажуйте та керуйте файлами для пакетної обробки",
    "videoGeneration": "Video Generation",
    "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
    "tailscaleRequestFailed": "Failed to load Tailscale status",
    "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
    "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
    "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
    "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
    "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
    "tailscaleStarted": "Tailscale Funnel enabled",
    "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
    "tailscaleStopped": "Tailscale Funnel disabled",
    "tailscaleInstallFailed": "Failed to install Tailscale",
    "tailscaleInstallProgress": "Working...",
    "tailscaleInstalled": "Tailscale installed successfully",
    "tailscaleRunning": "Running",
    "tailscaleNeedsLogin": "Needs Login",
    "tailscaleStoppedState": "Stopped",
    "tailscaleNotInstalled": "Not installed",
    "tailscaleUnsupported": "Unsupported",
    "tailscaleError": "Error",
    "tailscaleDisable": "Stop Funnel",
    "tailscaleInstallAndEnable": "Install & Enable",
    "tailscaleLoginAndEnable": "Login & Enable",
    "tailscaleEnable": "Enable Funnel",
    "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
    "tailscaleTitle": "Tailscale Funnel",
    "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
    "tailscaleBinaryPath": "Binary: {path}",
    "tailscaleLastError": "Last error: {error}",
    "tailscaleInstallTitle": "Install Tailscale",
    "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
    "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
    "tailscaleSudoPlaceholder": "Optional sudo password",
    "tailscaleInstalling": "Installing",
    "tailscaleSudoLabel": "Пароль Sudo (потрібний для macOS/Linux)",
    "ngrokTitle": "тунель нгрок",
    "ngrokRunning": "Біг",
    "ngrokStarting": "Запуск",
    "ngrokStoppedState": "Зупинився",
    "ngrokNeedsAuth": "Потрібна авторизація",
    "ngrokNotInstalled": "Не встановлено",
    "ngrokUnsupported": "Не підтримується",
    "ngrokError": "Помилка",
    "ngrokEnable": "Увімкнути тунель",
    "ngrokDisable": "Зупинити тунель",
    "ngrokUrlNotice": "Створює публічний тунель ngrok.",
    "ngrokAuthTokenLabel": "Authtoken (потрібний, якщо NGROK_AUTHTOKEN не встановлено)",
    "ngrokAuthTokenPlaceholder": "Введіть свій токен ngrok",
    "ngrokLastError": "Остання помилка: {error}",
    "ngrokStarted": "почався тунель ngrok",
    "ngrokStopped": "тунель ngrok зупинено",
    "ngrokRequestFailed": "Не вдалося оновити тунель ngrok",
    "tokenSaverSubtitle": "Витрачайте менше жетонів на кожен запит.",
    "tokenSaverToolOutput": "Вихід інструменту",
    "tokenSaverLlmOutput": "LLM вихід",
    "tokenSaverInputCompression": "Вхідне стиснення",
    "apiEndpointsCatalogUnavailable": "Каталог API недоступний",
    "apiEndpointsSearchPlaceholder": "Пошук кінцевих точок...",
    "apiEndpointsRequiresAuth": "Потрібна авторизація",
    "apiEndpointsNoMatch": "Жодна кінцева точка не відповідає вашому фільтру",
    "localServer": "Локальний сервер",
    "cloudOmniroute": "Cloud OmniRoute",
    "copyUrl": "Копіювати URL",
    "badgeLoopbackTooltip": "Цей ендпоінт доступний лише локально (loopback)",
    "badgeAlwaysProtectedTooltip": "Цей ендпоінт завжди захищений і потребує авторизації",
    "badgeInternalTooltip": "Це внутрішній системний ендпоінт",
    "tierAll": "Усі",
    "tierAuth": "З автентифікацією",
    "tierLoopback": "__MISSING__:Loopback",
    "tierAlwaysProtected": "Завжди захищені",
    "tierPublic": "Публічні",
    "hideInternal": "Приховати внутрішні",
    "showInternal": "Показати внутрішні"
  },
  "endpoints": {
    "tabProxy": "Endpoint Proxy",
    "tabApiEndpoints": "API Endpoints",
    "apiEndpointsTitle": "API Endpoints",
    "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
    "comingSoon": "Coming Soon",
    "plannedFeatures": "Planned Features",
    "featureRestApi": "REST API endpoint catalog with interactive documentation",
    "featureWebhooks": "Webhook configuration and event subscriptions",
    "featureSwagger": "OpenAPI / Swagger spec auto-generation",
    "featureAuth": "API key and OAuth scope management per endpoint"
  },
  "mcpDashboard": {
    "loading": "Loading MCP dashboard...",
    "activate": "activate",
    "deactivate": "deactivate",
    "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
    "switchComboFailed": "Failed to switch combo state.",
    "switchComboSuccess": "Combo \"{combo}\" updated.",
    "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
    "applyProfileFailed": "Failed to apply resilience profile.",
    "applyProfileSuccess": "Profile \"{profile}\" applied.",
    "confirmResetBreakers": "Reset all circuit breakers?",
    "resetBreakersFailed": "Failed to reset circuit breakers.",
    "resetBreakersSuccess": "Скидання автоматичних вимикачів.",
    "processStatus": "Статус процесу",
    "online": "Онлайн",
    "offline": "Офлайн",
    "disableLabel": "Вимкнути {label}",
    "enableLabel": "Увімкнути {label}",
    "transportMode": "Режим транспорту",
    "transportStdioDesc": "Локально — IDE запускає процес через omniroute --mcp",
    "transportSseDesc": "Віддалено — Server-Sent Events через HTTP",
    "transportStreamableHttpDesc": "Віддалено — сучасний двонаправлений HTTP",
    "copy": "Копіювати",
    "mcpDashboardCopyUrl": "Копіювати URL",
    "mcpDisabledTitle": "MCP вимкнено",
    "mcpDisabledDesc": "Увімкніть MCP вище, щоб налаштувати транспорт і переглядати телеметрію сервера.",
    "mcpIntro": "Model Context Protocol — {tools} інструментів у {scopes} областях, {transports} транспортів (stdio / SSE / Streamable HTTP).",
    "mcpStep1": "Запустіть через {code}",
    "mcpStep2": "Налаштуйте свого MCP-клієнта на з'єднання через stdio.",
    "mcpStep3": "Викликайте інструменти, як-от {code1} та {code2}.",
    "pid": "PID",
    "sessionUptime": "Час роботи сесії",
    "lastHeartbeat": "Останній удар серця",
    "activity24h": "Активність (24 години)",
    "totalCalls": "Всього дзвінків",
    "successRate": "Коефіцієнт успішності",
    "avgLatency": "Середня затримка",
    "topTools": "Top tools",
    "noToolCalls24h": "No tool calls in the last 24 hours.",
    "runtimeDetails": "Runtime details",
    "transport": "Transport",
    "scopesEnforced": "Scopes enforced",
    "yes": "yes",
    "no": "no",
    "lastCall": "Last call",
    "heartbeatPath": "Heartbeat path",
    "operationalControls": "Operational controls",
    "switchCombo": "Switch combo",
    "inactive": "inactive",
    "active": "active",
    "activateCombo": "Activate combo",
    "deactivateCombo": "Deactivate combo",
    "applyResilienceProfile": "Apply resilience profile",
    "profileAggressive": "aggressive",
    "profileBalanced": "balanced",
    "profileConservative": "conservative",
    "applyProfile": "Apply profile",
    "resetCircuitBreakers": "Reset circuit breakers",
    "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
    "resetAllBreakers": "Reset all breakers",
    "toolsAndScopes": "Tools and scopes",
    "tableTool": "Tool",
    "tableScopes": "Scopes",
    "tablePhase": "Phase",
    "tableAudit": "Audit",
    "auditLog": "Audit log",
    "auditSummary": "Calls: {total} | page {page} of {totalPages}",
    "allTools": "All tools",
    "allResults": "All results",
    "success": "Success",
    "failure": "Failure",
    "apiKeyIdPlaceholder": "apiKeyId",
    "loadingAuditEntries": "Loading audit entries...",
    "noAuditEntriesForFilters": "No audit entries found for current filters.",
    "tableTimestamp": "Timestamp",
    "tableDuration": "Duration",
    "tableResult": "Result",
    "tableApiKey": "API key",
    "failed": "failed",
    "previous": "Previous",
    "next": "Next",
    "apiKeyId": "Api Key Id",
    "offset": "Offset",
    "limit": "Limit",
    "tool": "Tool"
  },
  "a2aDashboard": {
    "loading": "Loading A2A dashboard...",
    "confirmCancelTask": "Cancel task {taskId}?",
    "cancelTaskFailed": "Failed to cancel task.",
    "cancelTaskSuccess": "Task {taskId} cancelled.",
    "smokeSendFailed": "message/send smoke test failed.",
    "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
    "smokeSendSuccess": "message/send ok.",
    "smokeStreamFailed": "message/stream smoke test failed.",
    "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
    "smokeStreamNoTaskId": "message/stream finished without task id.",
    "health": "Health",
    "ok": "ok",
    "totalTasks": "Total tasks",
    "activeStreams": "Active streams",
    "lastTask": "Last task",
    "taskStateOverview": "Task state overview",
    "state": {
      "submitted": "submitted",
      "working": "working",
      "completed": "completed",
      "failed": "failed",
      "cancelled": "cancelled"
    },
    "agentCard": "Agent card",
    "agentCardPath": "__MISSING__:/.well-known/agent.json",
    "version": "Version",
    "url": "URL",
    "capabilities": "Capabilities",
    "agentCardNotAvailable": "Agent card not available.",
    "quickValidation": "Quick validation",
    "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
    "runMessageSend": "Run message/send",
    "runMessageStream": "Run message/stream",
    "taskManagement": "Task management",
    "taskSummary": "{total} tasks | page {page} of {totalPages}",
    "allStates": "all",
    "allSkills": "all skills",
    "loadingTasks": "Loading tasks...",
    "noTasksForFilters": "No tasks found for current filters.",
    "tableTask": "Task",
    "tableSkill": "Skill",
    "tableState": "State",
    "tableUpdated": "Updated",
    "tableActions": "Actions",
    "view": "View",
    "cancel": "Cancel",
    "previous": "Previous",
    "next": "Next",
    "taskDetail": "Task detail",
    "close": "Close",
    "metadata": "Metadata",
    "events": "Events",
    "artifacts": "Artifacts",
    "tablePhase": "Table Phase",
    "offset": "Offset",
    "limit": "Limit",
    "skill": "Skill",
    "rpcEndpoint": "POST /a2a",
    "rpcMethodSend": "повідомлення/відправити",
    "rpcMethodStream": "повідомлення/потік",
    "rpcMethodGet": "завдань / одерж",
    "rpcMethodCancel": "завдань/скас",
    "serviceLabel": "A2A",
    "online": "Онлайн",
    "offline": "Офлайн",
    "disableLabel": "Вимкнути {label}",
    "enableLabel": "Увімкнути {label}",
    "a2aDisabledTitle": "A2A вимкнено",
    "a2aDisabledDesc": "Увімкніть A2A вище, щоб переглядати телеметрію задач, деталі агентів і інструменти валідації.",
    "a2aIntro": "Ендпоінт Agent2Agent JSON-RPC 2.0 — надсилайте задачі, отримуйте відповіді потоково, скасовуйте поточні завдання.",
    "a2aStep1": "Знайдіть картку агента за {code}.",
    "a2aStep2": "Надішліть JSON-RPC на {code1}, використовуючи {code2} або {code3}.",
    "a2aStep3": "Відстежуйте та скасовуйте задачі за допомогою {code1} і {code2}."
  },
  "memory": {
    "title": "Memory Management",
    "description": "View and manage stored memory entries",
    "memories": "Memories",
    "totalEntries": "Total Entries",
    "tokensUsed": "Tokens Used",
    "hitRate": "Hit Rate",
    "loading": "Loading memories...",
    "noMemories": "No memories found",
    "search": "Search memories...",
    "allTypes": "All Types",
    "export": "Export",
    "import": "Import",
    "addMemory": "Add Memory",
    "type": "Type",
    "key": "Key",
    "content": "Content",
    "created": "Created",
    "actions": "Actions",
    "delete": "Delete",
    "factual": "Factual",
    "episodic": "Episodic",
    "procedural": "Procedural",
    "semantic": "Semantic",
    "a": "A",
    "pipelineOk": "Конвеєр OK ({latencyMs}ms)",
    "pipelineError": "Помилка трубопроводу",
    "healthUnknown": "Стан здоров'я невідомий",
    "checkingHealth": "Перевірка…",
    "checkHealth": "Перевір здоров'я",
    "pageInfo": "Сторінка {page} з {totalPages} (усього {total})",
    "previous": "Попередній",
    "next": "Далі",
    "cancel": "Скасувати",
    "save": "зберегти",
    "keyPlaceholder": "напр. user.preferences.theme",
    "contentPlaceholder": "Значення або вміст JSON, який слід запам’ятати"
  },
  "skills": {
    "title": "Skills",
    "description": "Manage and monitor AI skills",
    "skillsTab": "Skills",
    "executionsTab": "Executions",
    "sandboxTab": "Sandbox",
    "loading": "Loading skills...",
    "noSkills": "No skills found",
    "noExecutions": "No executions found",
    "enabled": "Enabled",
    "disabled": "Disabled",
    "version": "Version",
    "tableDescription": "Description",
    "skill": "Skill",
    "status": "Status",
    "duration": "Duration",
    "time": "Time",
    "sandboxConfig": "Sandbox Configuration",
    "cpuLimit": "CPU Limit",
    "cpuLimitDesc": "Maximum execution time per skill",
    "memoryLimit": "Memory Limit",
    "memoryLimitDesc": "Maximum memory allocation",
    "timeout": "Timeout",
    "timeoutDesc": "Maximum wait time for response",
    "networkAccess": "Network Access",
    "networkAccessDesc": "Allow outbound network requests",
    "mode": "Mode",
    "q": "Q",
    "filterSkillsPlaceholder": "Фільтруйте навички за назвою, описом або тегом",
    "allModes": "Всі режими",
    "totalSkills": "Усього навичок",
    "enabledSkills": "Увімкнено",
    "totalExecutions": "Виконань",
    "successRate": "Успішність",
    "marketplaceTab": "Магазин",
    "applyFilters": "Застосувати фільтри",
    "popularDefaultsLabel": "Популярні за замовчуванням для вибраного провайдера:",
    "onMode": "УВІМК.",
    "offMode": "ВИМК.",
    "autoMode": "АВТО",
    "installSkillButton": "Встановити навичку",
    "installSkillModalTitle": "Встановити навичку",
    "installJsonPlaceholder": "Вставте JSON-маніфест навички сюди...",
    "installing": "Встановлення...",
    "installSuccess": "Навичку встановлено ({id})",
    "installError": "Не вдалося встановити",
    "invalidJson": "Некоректний JSON",
    "searchMarketplacePlaceholder": "Пошук навичок...",
    "searchMarketplace": "Пошук у магазині",
    "marketplaceEmpty": "У магазині не знайдено навичок",
    "marketplaceError": "Не вдалося виконати пошук",
    "installingFromMarketplace": "Встановлення з магазину...",
    "popularSkills": "Популярні навички",
    "skillsMarketplace": "Ринок навичок",
    "searching": "Пошук...",
    "pageInfo": "Сторінка {page} з {totalPages} (усього {total})",
    "previous": "Попередня",
    "next": "Наступна",
    "activeProvider": "Активний провайдер:",
    "changeInSettings": "Змінити можна в Налаштування → Пам'ять і навички.",
    "installs": "встановлень",
    "marketplaceSkillsMpHint": "Налаштуйте свій SkillsMP API-ключ у Налаштуваннях, щоб переглядати магазин.",
    "marketplaceSkillsShHint": "Шукайте у відкритому каталозі skills.sh, щоб знаходити й встановлювати навички агентів.",
    "installSkillModalDesc": "Вставте JSON-маніфест навички або завантажте .json-файл.",
    "uploadJson": "Завантажити JSON",
    "cancel": "Скасувати",
    "installSkill": "Встановити навик"
  },
  "health": {
    "title": "Здоров'я системи",
    "description": "Моніторинг вашого екземпляра OmniRoute у реальному часі",
    "healthy": "Здоровий",
    "degraded": "Деградували",
    "down": "вниз",
    "uptime": "Час роботи",
    "memory": "Пам'ять",
    "memoryRss": "Пам'ять (RSS)",
    "heap": "Купа",
    "cpu": "ЦП",
    "database": "База даних",
    "version": "Версія",
    "lastCheck": "Остання перевірка",
    "providerHealth": "Здоров'я постачальника",
    "systemMetrics": "Системні показники",
    "tokenHealth": "Токен здоров'я",
    "refreshAll": "Оновити все",
    "checkNow": "Перевір зараз",
    "loadingHealth": "Завантаження даних про стан здоров'я...",
    "failedToLoad": "Не вдалося завантажити дані про здоров’я: {error}",
    "retry": "Повторіть спробу",
    "allOperational": "Всі системи в робочому стані",
    "issuesDetected": "Виявлено системні проблеми",
    "updatedAt": "Оновлено {time}",
    "latency": "Затримка",
    "latencyP50": "стор.50",
    "latencyP95": "стор.95",
    "latencyP99": "стор.99",
    "millisecondsShort": "{value}мс",
    "notAvailable": "—",
    "totalRequests": "Всього запитів",
    "noDataYet": "Даних ще немає",
    "promptCache": "Кеш підказок",
    "entries": "Записи",
    "hitRate": "Рейтинг попадань",
    "hitsMisses": "Попадання / промахи",
    "signatureCache": "Кеш підписів",
    "signatureDefaults": "За замовчуванням",
    "signatureTool": "Інструмент",
    "signatureFamily": "Сім'я",
    "signatureSession": "Сесія",
    "recovering": "Відновлюється",
    "noCBData": "Немає даних про автоматичний вимикач. Спочатку зробіть кілька запитів.",
    "providerHealthStatusAria": "Стан здоров'я постачальника",
    "issuesLabel": "Виявлені проблеми",
    "operational": "Оперативний",
    "providers": "Провайдери",
    "configuredProvidersLabel": "Налаштовано на інформаційній панелі",
    "configuredProvidersHint": "Постачальники з обліковими даними, збереженими в /dashboard/providers, незалежно від стану виконання.",
    "activeProviders": "{count} active",
    "activeProvidersHint": "Налаштовані постачальники наразі ввімкнено для запитів маршрутизації.",
    "monitoredProviders": "{count} monitored",
    "monitoredProvidersHint": "Постачальники наразі відстежуються моніторами справності автоматичних вимикачів.",
    "healthyCount": "{count} здоровий",
    "nodeVersion": "Вузол {version}",
    "failures": "Помилка {count}",
    "failuresPlural": "{count} помилки",
    "lastFailure": "Останній",
    "rateLimitStatus": "Статус обмеження швидкості",
    "activeLimiters": "{count} активний обмежувач",
    "activeLimitersPlural": "{count} активні обмежувачі",
    "queued": "У черзі",
    "queuedCount": "{count} у черзі",
    "running": "біг",
    "runningCount": "{count} працює",
    "ok": "добре",
    "activeLockouts": "Активні блокування",
    "resetConfirm": "Перевести всі автоматичні вимикачі в справний стан? Це очистить усі підрахунки помилок і відновить усі постачальники до робочого стану.",
    "resetAllTitle": "Скиньте всі автоматичні вимикачі в справний стан",
    "resetting": "Скидання...",
    "resetAll": "Скинути все",
    "until": "До {time}",
    "limitExhausted": "Exhausted",
    "learnedFromHeaders": "Learned from headers",
    "remainingOfLimit": "{remaining}/{limit} remaining",
    "throttleStatus": "Throttle: {value}",
    "lastHeaderUpdate": "Header update: {age}",
    "databaseHealth": "Справність бази даних",
    "stickyBoundSessions": "Сеанси в липкій палітурці",
    "sessionsByApiKey": "Сеанси за ключем API",
    "noActiveSessionsTracked": "Активних сеансів ще не відстежено.",
    "noSessionQuotaMonitorsActive": "Немає активних моніторів квоти сеансу.",
    "gracefulDegradationStatus": "Витончений статус деградації",
    "additionalModels": "+{count} більше моделей",
    "providerHealthMatrixTitle": "Матриця стану провайдерів",
    "providerHealthMatrixDescription": "Стани провайдер × акаунт × модель за запобіжниками, охолодженнями, блокуваннями та логами.",
    "healthMatrixRange": "Діапазон матриці стану",
    "providerFilter": "Фільтр провайдерів",
    "onlyIssues": "Лише проблеми",
    "refresh": "Оновити",
    "accounts": "Акаунти",
    "models": "Моделі",
    "issues": "Проблеми",
    "loadingProviderHealthMatrix": "Завантаження матриці стану провайдерів...",
    "failedProviderHealthMatrix": "Не вдалося завантажити матрицю стану провайдерів: {error}",
    "noProvidersMatchedFilters": "Жоден провайдер не відповідає поточним фільтрам.",
    "modelPillSummary": "{requests} запитів · {successRate} успіх · {latency} середньо",
    "modelLockoutSummary": "{reason} · залишилось {duration}",
    "locked": "заблоковано",
    "inferred": "виведено",
    "inactive": "Неактивний",
    "noConnectionId": "немає ID з'єднання",
    "accountModelSummary": "{connectionId} · {count} моделей",
    "cooldown": "охолодження",
    "durationRemaining": "залишилось {duration}",
    "noSyncedModelsOrTraffic": "Поки немає синхронізованих моделей або нещодавнього трафіку.",
    "providerRowSummary": "{active}/{total} активних акаунтів · {requests} запитів · {successRate} успіх · {latency} середньо",
    "cooldownCount": "{count} охолодження",
    "lockoutCount": "{count} блокувань",
    "issueCount": "{count} проблем",
    "score": "Оцінка",
    "lastRequest": "Останній запит",
    "lastError": "Остання помилка"
  },
  "telemetry": {
    "title": "Системна телеметрія",
    "description": "Постійний запит, час виконання, сеанс і сигнали пам’яті від цього процесу OmniRoute.",
    "uptime": "Час роботи",
    "totalRequests": "Загальна кількість запитів",
    "avgLatency": "Середня затримка",
    "errorRate": "Частота помилок",
    "activeConnections": "Активні підключення",
    "memoryUsage": "Використання пам'яті",
    "latencyTrend": "Тренд затримки",
    "throughputTrend": "Тенденція пропускної здатності",
    "memoryTrend": "Тренд пам'яті",
    "refresh": "Оновити",
    "updatedAt": "Оновлено {time}",
    "loadFailed": "Не вдалося завантажити телеметрію.",
    "partialData": "Телеметрія доступна частково: {error}"
  },
  "mitm": {
    "title": "Проксі MITM",
    "description": "Прозорий проксі для перехоплення та маршрутизації клієнтських запитів.",
    "enable": "Увімкнути проксі MITM",
    "enableDesc": "Запустіть або зупиніть локальний процес перехоплення та заміну DNS.",
    "status": "Статус",
    "running": "Біг",
    "stopped": "Зупинився",
    "start": "старт",
    "stop": "Стоп",
    "refresh": "Оновити",
    "port": "Порт проксі",
    "apiKey": "Ключ API маршрутизатора",
    "apiKeyPlaceholder": "необов'язковий; повертається до локального ключа",
    "sudoPassword": "Пароль Sudo",
    "cachedPassword": "Кешовано для цього процесу",
    "saveSettings": "Зберегти налаштування",
    "settingsSaved": "Налаштування MITM збережено.",
    "startedSuccess": "Проксі MITM запущено.",
    "stoppedSuccess": "Проксі MITM зупинено.",
    "saveFailed": "Не вдалося оновити налаштування MITM.",
    "loadFailed": "Не вдалося завантажити налаштування MITM.",
    "invalidPort": "Для прозорого перехоплення MITM наразі потрібен порт 443.",
    "certificate": "Сертифікат CA",
    "certificateReady": "Сертифікат доступний для встановлення довіри клієнта.",
    "certificateMissing": "Сертифікат ще не створено.",
    "available": "в наявності",
    "missing": "Відсутня",
    "downloadCert": "Завантажте сертифікат CA",
    "regenerateCert": "Відновити сертифікат",
    "regenerateConfirm": "Це призведе до втрати наявної довіри клієнта. Продовжити?",
    "regenerateSuccess": "Сертифікат MITM відновлено.",
    "regenerateFailed": "Не вдалося відновити сертифікат MITM.",
    "targetRoutes": "Цільові маршрути",
    "interceptedRequests": "Перехоплені запити",
    "activeConnections": "Активні підключення",
    "dnsConfigured": "DNS налаштовано",
    "pid": "PID",
    "lastIntercept": "Останнє перехоплення",
    "target": "Цільова",
    "host": "Хост",
    "localPort": "Місцевий порт",
    "endpoints": "Кінцеві точки",
    "enabled": "Увімкнено",
    "configured": "Налаштовано",
    "yes": "так",
    "no": "немає",
    "noTargets": "Цільові маршрути не налаштовано."
  },
  "limits": {
    "title": "Ліміти та квоти",
    "rateLimit": "Обмеження швидкості",
    "remaining": "Залишилося",
    "requestsPerMinute": "Запитів/хв",
    "tokensPerMinute": "Токенів/хв",
    "dailyLimit": "Денний ліміт"
  },
  "logs": {
    "title": "Журнали",
    "requestLogs": "Журнали запитів",
    "proxyLogs": "Журнали проксі",
    "auditLog": "Журнал аудиту",
    "console": "Консоль",
    "auditLogDesc": "Адміністративні дії та заходи безпеки",
    "loading": "Завантаження...",
    "refresh": "Оновити",
    "filterByAction": "Фільтрувати за дією...",
    "filterByActor": "Фільтрувати за актором...",
    "filterEntriesAria": "Фільтрувати записи журналу аудиту",
    "filterByActionTypeAria": "Фільтрувати за типом дії",
    "filterByActorAria": "Фільтрувати за актором",
    "refreshAuditLogAria": "Оновити журнал аудиту",
    "tableAria": "Записи журналу аудиту",
    "failedFetchAuditLog": "Не вдалося отримати журнал аудиту",
    "showing": "Показано {count} записів (зміщення {offset})",
    "search": "Пошук",
    "timestamp": "Мітка часу",
    "action": "Дія",
    "actor": "Актор",
    "target": "Цільова",
    "details": "Подробиці",
    "ipAddress": "IP-адреса",
    "notAvailable": "—",
    "noEntries": "Записів журналу аудиту не знайдено",
    "previous": "Попередній",
    "next": "Далі",
    "providerWarningTitle": "Provider Warning Title",
    "viewDetails": "View Details",
    "eventMetadata": "Event Metadata",
    "eventPayload": "Event Payload",
    "requestId": "Request Id",
    "providerWarningDesc": "Provider Warning Desc",
    "a": "A",
    "offset": "Offset",
    "limit": "Limit",
    "status": "Status",
    "resourceType": "Resource Type",
    "totalEntries": "Total Entries",
    "tab": "Tab",
    "auditModalSubtitle": "Audit Modal Subtitle",
    "close": "Close",
    "runningRequests": "Active Requests",
    "runningRequestsDesc": "Real-time view of currently running upstream requests",
    "clearAll": "Очистити все",
    "confirmClearActiveRequests": "Очистити всі активні запити?",
    "model": "Model",
    "provider": "Provider",
    "account": "Account",
    "elapsed": "Elapsed",
    "activeStage": "Етап",
    "activeStageUnknown": "Ще не надіслано до провайдера",
    "activeStageRegistered": "Зареєстровано",
    "activeStagePayloadPrepared": "Корисне навантаження підготовлено",
    "activeStageWaitingAccountSlot": "Очікування слота акаунта",
    "activeStageWaitingRateLimit": "Очікування обмежувача швидкості",
    "activeStageRateLimitSlotAcquired": "Слот обмеження швидкості отримано",
    "activeStageSendingToProvider": "Надсилання до провайдера",
    "activeStageProviderResponseStarted": "Відповідь провайдера почала надходити",
    "count": "Count",
    "payloads": "Payloads",
    "viewPayloads": "View",
    "activeCount": "{count} active",
    "clientPayload": "Client Request Payload",
    "upstreamPayload": "Upstream Provider Payload",
    "upstreamNotSentYet": "Not sent to upstream yet",
    "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
    "export": "Export",
    "exporting": "Exporting...",
    "exportFailed": "Export failed",
    "timeRange": "Time Range",
    "lastNHours": "Last {hours}",
    "defaultRange": "default",
    "consoleViewer": {
      "fetchFailed": "Failed to fetch logs",
      "copyFailed": "Failed to copy log entry",
      "copyLogEntry": "Copy log entry"
    }
  },
  "onboarding": {
    "welcome": "Ласкаво просимо",
    "security": "Безпека",
    "test": "Тест",
    "ready": "Готовий!",
    "setPassword": "Встановити пароль",
    "addProvider": "Додайте свого першого постачальника",
    "getStarted": "Почніть роботу",
    "skip": "Пропустити",
    "skipWizard": "Повністю пропустити майстер",
    "skipPassword": "Пропустити встановлення пароля",
    "skipAndContinue": "Пропустити та продовжити",
    "passwordLabel": "Пароль",
    "confirmPassword": "Підтвердьте пароль",
    "enterPassword": "Введіть пароль",
    "confirmPasswordPlaceholder": "Підтвердьте пароль",
    "passwordsMismatch": "Паролі не збігаються",
    "setupComplete": "Налаштування завершено!",
    "goToDashboard": "Перейдіть на інформаційну панель →",
    "welcomeDesc": "OmniRoute — це ваш локальний проксі-сервер AI API. Він направляє запити до кількох постачальників штучного інтелекту за допомогою балансування навантаження, відновлення після відмови та відстеження використання.",
    "multiProvider": "Багатопровайдер",
    "usageTracking": "Відстеження використання",
    "securityDesc": "Встановіть пароль, щоб захистити свою інформаційну панель, або пропустіть наразі.",
    "providerDesc": "Підключіть свого першого постачальника AI. Ви можете додати більше пізніше.",
    "apiKeyRequired": "Ключ API (обов'язково)",
    "customUrlOptional": "Спеціальна URL-адреса (необов'язково)",
    "testDesc": "Давайте перевіримо, чи працює підключення до вашого провайдера.",
    "runTest": "Запустіть перевірку підключення",
    "testingConnection": "Перевірка підключення...",
    "connectionSuccessful": "Підключення успішне! Ваш провайдер готовий.",
    "noProviderFound": "Постачальника не знайдено. Ви можете додати його з інформаційної панелі пізніше.",
    "testFailed": "Тестування не вдалося, але ви можете налаштувати це пізніше.",
    "couldNotTest": "Зараз не вдалося перевірити. Тестувати можна з інформаційної панелі.",
    "doneDesc": "Усе готово! Ваш екземпляр OmniRoute налаштований і готовий проксі-сервер запитів ШІ.",
    "yourEndpoint": "Ваша кінцева точка:",
    "continue": "Продовжити",
    "retry": "Повторіть спробу",
    "failedSetPassword": "Не вдалося встановити пароль. Спробуйте знову.",
    "failedAddProvider": "Не вдалося додати постачальника. Спробуйте знову.",
    "connectionError": "Помилка підключення. Спробуйте ще раз.",
    "provider": "Провайдер",
    "apiKeyHelp": "Ключ API — це пароль для служб ШІ. Отримайте його на веб-сайті свого постачальника (наприклад, platform.openai.com, console.anthropic.com).",
    "tier": {
      "subtitle": "OmniRoute розподіляє постачальників на три рівні, тому маршрутизація віддає перевагу найнадійнішому та найнижчому шляху.",
      "tier1": {
        "label": "Преміум клієнти",
        "description": "Першокласні CLI з власними потоками авторизації та моделями міркування."
      },
      "tier2": {
        "label": "Оптимізовано за витратами",
        "description": "Дешеві провайдери з високою пропускною здатністю, які використовуються для щоденного трафіку."
      },
      "tier3": {
        "label": "Запасний варіант і спеціальність",
        "description": "Локальні або спеціальні кінцеві точки, які використовуються як запасні."
      },
      "configure": "Налаштувати провайдерів"
    },
    "tierFlowDiagramAlt": "3-рівнева резервна схема OmniRoute",
    "apiKeyMgmt": "API Key Mgmt"
  },
  "providers": {
    "title": "Провайдери",
    "allProviders": "Усі постачальники",
    "audioProviders": "Постачальники аудіо",
    "showFreeOnly": "Тільки безкоштовно",
    "addProvider": "Додати постачальника",
    "addFirstProvider": "Додайте свого першого постачальника",
    "addFirstProviderDesc": "Підключіть постачальника AI, щоб розпочати маршрутизацію запитів через OmniRoute. Ви можете використовувати безкоштовні постачальники, ключі API або облікові записи OAuth.",
    "learnMore": "Дізнайтесь більше",
    "editProvider": "Редагувати постачальника",
    "deleteProvider": "Видалити постачальника",
    "noProviders": "Постачальники не налаштовані",
    "modelAvailability": "Наявність моделі",
    "accounts": "Облікові записи",
    "newAccount": "Новий акаунт",
    "deleteConfirm": "Ви впевнені, що хочете видалити цього постачальника?",
    "testing": "Тестування...",
    "testConnection": "Тестове підключення",
    "testSuccess": "Підключення успішне",
    "testFailed": "Помилка підключення",
    "available": "в наявності",
    "cooldown": "Кулдаун",
    "unavailable": "Недоступний",
    "unknown": "Невідомий",
    "oauthLabel": "OAuth",
    "compatibleLabel": "сумісний",
    "chat": "Чат",
    "responses": "Відповіді",
    "messages": "Повідомлення",
    "oauthProviders": "Постачальники OAuth",
    "freeProviders": "Безкоштовні постачальники",
    "apiKeyProviders": "Постачальники ключів API",
    "compatibleProviders": "Сумісні постачальники ключів API",
    "testAll": "Перевірити все",
    "testAllOAuth": "Перевірте всі підключення OAuth",
    "testAllFree": "Перевірте всі безкоштовні підключення",
    "testAllApiKey": "Перевірте всі підключення ключів API",
    "testAllCompatible": "Перевірте всі сумісні підключення",
    "connected": "{count} Підключено",
    "errorCount": "Помилка {count} ({code})",
    "errorCountNoCode": "{count} Помилка",
    "warningCount": "{count} Попередження",
    "noConnections": "Жодних зв'язків",
    "expiredBadge": "Прострочено",
    "expiringSoonBadge": "Скоро закінчиться",
    "freeTier": "Вільний рівень",
    "freeTierAvailable": "Доступний безкоштовний рівень",
    "hasFreeTooltip": "Доступний безкоштовний рівень",
    "noAuthLabel": "Без автентифікації",
    "noAuthProviders": "Провайдери без автентифікації",
    "upstreamProxyLabel": "Висхідний проксі",
    "freeAggregated": "Усі провайдери з безкоштовним рівнем (також показані у своїй рідній категорії)",
    "deprecated": "Застаріле",
    "deprecatedProvider": "Цей постачальник більше не підтримується",
    "riskNotice": {
      "title": "Перед тим, як продовжити",
      "tooltip": "Провайдер із застереженнями щодо використання — натисніть для подробиць",
      "oauth": "Цей провайдер використовує вашу офіційну продуктову сесію/OAuth, які не авторизовані для використання у проксі/маршрутизаторі.\n\nМи не рекомендуємо інтенсивне автономне використання агентами (стиль OpenCloud, довгі багатокрокові потоки, великі пакети) — провайдер може у відповідь обмежити або заблокувати акаунт.\n\nВикористовуйте на власний ризик.",
      "webCookie": "Цей провайдер автентифікується через cookie вашої веб-сесії. Сервіс може в будь-який момент анулювати сесію, що вимагатиме повторного входу. Не рекомендовано для довгих автоматизованих операцій.\n\nВикористовуйте на власний ризик.",
      "deprecated": "Цей провайдер припинено сервісом і він може перестати працювати без попередження. Існуючі з'єднання можуть продовжувати працювати, поки сервіс остаточно не закриє доступ. Розгляньте альтернативи.",
      "dontShowAgain": "Більше не показувати для цього провайдера",
      "understand": "Я розумію, продовжити",
      "cancel": "Скасувати"
    },
    "disabled": "Вимкнено",
    "enableProvider": "Увімкнути провайдера",
    "disableProvider": "Вимкнути провайдера",
    "testResults": "Результати тестування",
    "noCompatibleYet": "Сумісних провайдерів ще не додано",
    "compatibleHint": "Використовуйте кнопки вище, щоб додати кінцеві точки, сумісні з OpenAI або Anthropic",
    "addOpenAICompatible": "Додайте OpenAI Compatible",
    "addAnthropicCompatible": "Додати Anthropic Compatible",
    "addNewProvider": "Додати нового постачальника",
    "backToProviders": "Назад до постачальників",
    "configureNewProvider": "Налаштуйте нового постачальника AI для використання з вашими програмами.",
    "providerLabel": "Провайдер",
    "selectProvider": "Виберіть провайдера",
    "selectedProvider": "Вибраний провайдер",
    "authMethod": "Метод автентифікації",
    "apiKeyLabel": "Ключ API",
    "apiKeyRequired": "Потрібен ключ API",
    "selectProviderRequired": "Будь ласка, виберіть постачальника",
    "enterApiKey": "Введіть свій ключ API",
    "apiKeySecure": "Ваш ключ API буде зашифровано та безпечно зберігатиметься.",
    "oauth2Connect": "Підключіться за допомогою OAuth2",
    "oauth2Label": "OAuth2",
    "oauth2Desc": "Підключіть свій обліковий запис за допомогою автентифікації OAuth2.",
    "displayName": "Відображуване ім'я",
    "displayNamePlaceholder": "наприклад, Production API, Dev Environment",
    "displayNameHint": "Додатково. Зрозуміле ім’я для ідентифікації цієї конфігурації.",
    "active": "Активний",
    "activeDescription": "Увімкніть цей провайдер для використання у ваших програмах",
    "cancel": "Скасувати",
    "createProvider": "Створити постачальника",
    "failedCreate": "Не вдалося створити постачальника",
    "errorOccurred": "Сталася помилка. Спробуйте ще раз.",
    "modelStatus": "Статус моделі",
    "showConfiguredOnly": "Лише налаштовані",
    "allModelsOperational": "Всі моделі робочі",
    "modelsWithIssues": "{count} моделі з проблемами",
    "allModelsNormal": "Усі моделі реагують нормально.",
    "cooldownCleared": "Зарядку для {model} очищено",
    "failedClearCooldown": "Не вдалося очистити час відновлення",
    "loadingAvailability": "Завантаження доступності моделі...",
    "clearCooldown": "ясно",
    "clearing": "Очищення...",
    "until": "До {time}",
    "providerTestFailed": "Тест постачальника не вдався",
    "providerTestTimeout": "Provider test timed out — too many connections to test at once",
    "modeTest": "Тест {mode}",
    "passedCount": "{count} пройдено",
    "failedCount": "{count} не вдалося",
    "testedCount": "{count} перевірено",
    "millisecondsAbbr": "{value}мс",
    "okShort": "добре",
    "errorShort": "ПОМИЛКА",
    "noActiveConnectionsInGroup": "Для цієї групи не знайдено активних з’єднань.",
    "allTestsPassed": "Усі тести {total} пройдено",
    "testSummary": "{passed}/{total} пройдено, {failed} не виконано",
    "nameLabel": "Ім'я",
    "prefixLabel": "Префікс",
    "baseUrlLabel": "Базовий URL",
    "apiTypeLabel": "Тип API",
    "prefixHint": "Обов'язковий. Унікальний префікс для назв моделей.",
    "nameHint": "Обов'язковий. Зручна мітка для цього вузла.",
    "baseUrlHint": "Обов'язковий.  Основна URL-адреса API постачальника.",
    "anthropicPrefixPlaceholder": "ac-prod",
    "openaiPrefixPlaceholder": "oc-prod",
    "anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
    "openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
    "validateConnection": "Перевірте підключення",
    "validating": "Перевірка...",
    "connectionValid": "Підключення дійсне!",
    "connectionFailed": "Помилка підключення. Перевірте URL-адресу та ключ.",
    "testKeyLabel": "Тестовий ключ API",
    "testKeyPlaceholder": "sk-... (лише для перевірки)",
    "providerNotFound": "Постачальник не знайдено",
    "deleteConnectionConfirm": "Видалити це підключення?",
    "batchDeleteSelected": "Delete Selected ({count})",
    "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
    "batchDeleteSuccess": "Deleted {count} connection(s)",
    "batchActivateSelected": "__MISSING__:Activate",
    "batchDeactivateSelected": "__MISSING__:Deactivate",
    "batchRetestSelected": "__MISSING__:Retest",
    "batchActivateSuccess": "__MISSING__:Activated {count} connection(s)",
    "batchDeactivateSuccess": "__MISSING__:Deactivated {count} connection(s)",
    "failedSetAlias": "Не вдалося встановити псевдонім",
    "failedSaveConnection": "Не вдалося зберегти з’єднання",
    "failedSaveConnectionRetry": "Не вдалося зберегти з’єднання. Спробуйте ще раз.",
    "failedRetestConnection": "Не вдалося повторно перевірити з’єднання",
    "deleteCompatibleNodeConfirm": "Видалити цей {type} сумісний вузол?",
    "anthropicCompatibleDetails": "Antropic Compatible Деталі",
    "openaiCompatibleDetails": "Відомості про сумісність з OpenAI",
    "messagesApi": "API повідомлень",
    "responsesApi": "API відповідей",
    "embeddings": "Вбудовування",
    "audioTranscriptions": "Audio Transcriptions",
    "audioSpeech": "Audio Speech",
    "imagesGenerations": "Images Generations",
    "chatCompletions": "Завершення чату",
    "importingModels": "Імпорт...",
    "importFromModels": "Імпортувати з /models",
    "modelsImported": "{count} models imported",
    "allModelsAlreadyImported": "Усі моделі вже імпортовано",
    "noNewModelsToImport": "Немає нових моделей для імпорту — усі моделі вже є в реєстрі або списку користувацьких моделей",
    "skippingExistingModels": "Пропуск {count} наявних моделей",
    "autoSync": "Автоматична синхронізація",
    "autoSyncTooltip": "Автоматично оновлювати список моделей кожні 24 години (налаштовується через MODEL_SYNC_INTERVAL_HOURS)",
    "autoSyncEnabled": "Автоматична синхронізація ввімкнена — моделі періодично оновлюватимуться",
    "autoSyncDisabled": "Автоматична синхронізація вимкнена",
    "autoSyncToggleFailed": "Не вдалося вимкнути автоматичну синхронізацію",
    "clearAllModels": "Очистити всі моделі",
    "clearAllModelsConfirm": "Ви впевнені, що хочете видалити всі моделі цього постачальника? Це неможливо скасувати.",
    "clearAllModelsSuccess": "Всі моделі розмитнені",
    "clearAllModelsFailed": "Не вдалося очистити моделі",
    "addConnectionToImport": "Додайте підключення, щоб увімкнути імпорт.",
    "noModelsConfigured": "Немає налаштованих моделей",
    "connectionCount": "{count} підключення(-я)",
    "fetchingModels": "Отримання доступних моделей...",
    "failedFetchModels": "Не вдалося отримати моделі",
    "noModelsFound": "Моделі не знайдено",
    "importFailed": "Помилка імпорту",
    "noNewModelsAdded": "Нові моделі не додано.",
    "adding": "Додавання...",
    "close": "Close",
    "importingModelsTitle": "Імпорт моделей",
    "copyModel": "Копія моделі",
    "filterModels": "Фільтрувати моделі…",
    "modelsActive": "активні",
    "showModel": "Показати модель",
    "hideModel": "Приховати модель",
    "removeModel": "Зняти модель",
    "rateLimitProtected": "Захищений",
    "rateLimitUnprotected": "Незахищений",
    "enableRateLimitProtection": "Натисніть, щоб увімкнути захист обмеження швидкості",
    "disableRateLimitProtection": "Натисніть, щоб вимкнути захист обмеження швидкості",
    "productionKey": "Ключ виробництва",
    "enterNewApiKey": "Введіть новий ключ API",
    "codexApplyModalTitle": "Зверніться до місцевого Кодексу",
    "codexApplyTargetLabel": "Цільовий шлях",
    "codexApplyBackupLabel": "Резервні копії",
    "codexApplyWarning": "Це замінить наявний auth.json. Продовжити?",
    "codexApplyConfirmCheckbox": "Я підтверджую, що хочу замінити наявний auth.json",
    "codexApply": "Застосувати",
    "bulkTabSingle": "неодружений",
    "bulkTabBulkAdd": "Масове додавання",
    "bulkAddFormatHint": "Один ключ на рядок. Формат: ім’я|apiKey або просто apiKey (автоматична назва за індексом).",
    "bulkValidateKeys": "Перевірте кожен ключ перед збереженням (повільніше)",
    "bulkAddAllKeys": "Додати всі ключі",
    "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
    "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
    "optional": "Додатково",
    "anthropicCompatibleName": "Антропна сумісність",
    "openaiCompatibleName": "Сумісність з OpenAI",
    "failedImportModels": "Не вдалося імпортувати моделі",
    "noModelsReturnedFromEndpoint": "З кінцевої точки /models не повернуто моделей.",
    "importingModelsProgress": "Імпорт {current} з {total} моделей...",
    "foundModelsStartingImport": "Знайдено {count} моделей. Початок імпорту...",
    "importingModelById": "Імпорт {modelId}...",
    "importSuccessCount": "Успішно імпортовано {count, plural, one {# model} other {# models}}!",
    "noNewModelsAddedExisting": "Нові моделі не додано (усі вже є).",
    "importDoneCount": "✓ Готово! {count, plural, one {# model imported.} other {# models imported.}}",
    "unexpectedErrorOccurred": "Сталася неочікувана помилка",
    "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
    "messagesPath": "повідомлення",
    "responsesPath": "відповіді",
    "chatCompletionsPath": "чат/завершення",
    "add": "додати",
    "edit": "Редагувати",
    "delete": "Видалити",
    "anthropic": "Антропний",
    "openai": "OpenAI",
    "singleConnectionPerCompatible": "Дозволяється лише одне з’єднання для сумісного вузла. Додайте інший вузол, якщо вам потрібно більше з’єднань.",
    "connections": "Зв'язки",
    "providerProxyTitleConfigured": "Проксі-сервер постачальника: {host}",
    "configured": "налаштовано",
    "providerProxyConfigureHint": "Налаштувати проксі для всіх підключень цього провайдера",
    "providerProxy": "Проксі-сервер постачальника",
    "repairEnv": "Repair env",
    "repairEnvWorking": "Repairing...",
    "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
    "repairEnvSuccess": "OAuth defaults restored",
    "repairEnvFailed": "Failed to repair .env",
    "noConnectionsYet": "Підключень ще немає",
    "addFirstConnectionHint": "Щоб почати, додайте своє перше підключення",
    "addConnection": "Додати підключення",
    "availableModels": "Доступні моделі",
    "builtInModels": "Built-in models",
    "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
    "pageAutoRefresh": "Сторінка оновиться автоматично...",
    "statusDisabled": "вимкнено",
    "statusConnected": "підключений",
    "statusRuntimeIssue": "проблема виконання",
    "statusAuthFailed": "авторизація не вдалася",
    "statusRateLimited": "швидкість обмежена",
    "statusNetworkIssue": "проблема мережі",
    "statusTestUnsupported": "тест не підтримується",
    "statusUnavailable": "недоступний",
    "statusFailed": "не вдалося",
    "statusError": "помилка",
    "oauthAccount": "Обліковий запис OAuth",
    "errorTypeRuntime": "Локальний час виконання",
    "errorTypeUpstreamAuth": "Вихідна авторизація",
    "errorTypeMissingCredential": "Відсутні облікові дані",
    "errorTypeRefreshFailed": "Не вдалося оновити",
    "errorTypeTokenExpired": "Термін дії маркера минув",
    "errorTypeRateLimited": "Тариф обмежений",
    "errorTypeUpstreamUnavailable": "Вгору недоступний",
    "errorTypeNetworkError": "Помилка мережі",
    "errorTypeTestUnsupported": "Тест не підтримується",
    "errorTypeUpstreamError": "Вихідна помилка",
    "proxySourceGlobal": "Глобальний",
    "proxySourceProvider": "Провайдер",
    "proxySourceKey": "ключ",
    "proxyConfiguredBySource": "Проксі ({source}): {host}",
    "autoPriority": "Автоматично: {priority}",
    "proxy": "Проксі",
    "retestAuthentication": "Перевірити автентифікацію",
    "retest": "Перетестувати",
    "disableConnection": "Відключити підключення",
    "enableConnection": "Увімкнути підключення",
    "reauthenticateConnection": "Повторно автентифікуйте це підключення",
    "proxyConfig": "Конфігурація проксі",
    "aliasExistsAlert": "Псевдонім \"{alias}\" вже існує. Використовуйте іншу модель або відредагуйте існуючий псевдонім.",
    "openRouterAnyModelHint": "OpenRouter підтримує будь-яку модель. Додайте моделі та створіть псевдоніми для швидкого доступу.",
    "modelIdFromOpenRouter": "ID моделі (з OpenRouter)",
    "openRouterModelPlaceholder": "антропний/claude-3-opus",
    "customModels": "Спеціальні моделі",
    "customModelsHint": "Додайте ідентифікатори моделей, яких немає в списку за замовчуванням. Вони будуть доступні для маршрутизації.",
    "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
    "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
    "compatAdjustmentsTitle": "Compatibility",
    "compatButtonLabel": "Compatibility",
    "compatToolIdShort": "Tool ID 9",
    "compatDeveloperShort": "Developer role",
    "compatDoNotPreserveDeveloper": "Do not preserve developer role",
    "compatBadgeNoPreserve": "No preserve",
    "compatProtocolLabel": "Client request protocol",
    "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
    "compatProtocolOpenAI": "OpenAI Chat Completions",
    "compatProtocolOpenAIResponses": "OpenAI Responses API",
    "compatProtocolClaude": "Anthropic Messages",
    "compatUpstreamHeadersLabel": "Extra upstream headers",
    "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
    "compatUpstreamHeaderName": "Header name",
    "compatUpstreamHeaderValue": "Value",
    "compatUpstreamAddRow": "Add header",
    "compatUpstreamRemoveRow": "Remove row",
    "compatBadgeUpstreamHeaders": "Headers",
    "perModelQuotaLabel": "Per Model Quota Label",
    "perModelQuotaDescription": "Per Model Quota Description",
    "perModelQuotaToggle": "Перемикач квоти для кожної моделі",
    "modelId": "ID моделі",
    "customModelPlaceholder": "напр. gpt-4.5-турбо",
    "loading": "Завантаження...",
    "removeCustomModel": "Видалити спеціальну модель",
    "noCustomModels": "Спеціальні моделі ще не додано.",
    "allSuggestedAliasesExist": "Усі запропоновані псевдоніми вже існують. Виберіть іншу модель або видаліть конфліктні псевдоніми.",
    "failedSaveCustomModel": "Не вдалося зберегти спеціальну модель",
    "modelAddedSuccess": "Модель {modelId} успішно додано",
    "failedAddModelTryAgain": "Не вдалося додати модель. Спробуйте ще раз.",
    "failedSaveImportedModel": "Не вдалося зберегти імпортовану модель до спеціальної бази даних",
    "failedImportModelsTryAgain": "Не вдалося імпортувати моделі. Спробуйте ще раз.",
    "failedRemoveModelFromDatabase": "Не вдалося видалити модель із бази даних",
    "modelRemovedSuccess": "Модель успішно видалено",
    "failedDeleteModelTryAgain": "Не вдалося видалити модель. Спробуйте ще раз.",
    "compatibleModelsDescription": "Додайте {type}-сумісні моделі вручну або імпортуйте їх із кінцевої точки /models.",
    "anthropicCompatibleModelPlaceholder": "claude-3-opus-20240229",
    "openaiCompatibleModelPlaceholder": "gpt-4o",
    "apiKeyValidationFailed": "Помилка перевірки ключа API. Перевірте свій ключ і повторіть спробу.",
    "addProviderApiKeyTitle": "Додайте ключ API {provider}",
    "checking": "Перевірка...",
    "check": "Перевірте",
    "valid": "Дійсний",
    "invalid": "Недійсний",
    "creating": "Створення...",
    "validationChecksAnthropicCompatible": "Перевірка перевіряє {provider} шляхом підтвердження ключа API.",
    "validationChecksOpenAiCompatible": "Перевірка перевірки {provider} через /models на вашій базовій URL-адресі.",
    "priorityLabel": "Пріоритет",
    "saving": "Збереження...",
    "save": "зберегти",
    "editConnection": "Редагувати підключення",
    "accountName": "Ім'я облікового запису",
    "email": "Електронна пошта",
    "healthCheckMinutes": "Перевірка стану (хв.)",
    "healthCheckHint": "Проактивний інтервал оновлення маркера. 0 = вимкнено.",
    "selectAllModels": "Select all",
    "deselectAllModels": "Deselect all",
    "modelsActiveCount": "{active}/{total} active",
    "noModelsMatch": "No models match \"{filter}\"",
    "groupLabel": "Environment",
    "groupPlaceholder": "e.g. eKaizen, Personal",
    "failedTestConnection": "Не вдалося перевірити з’єднання",
    "failed": "Не вдалося",
    "leaveBlankKeepCurrentApiKey": "Залиште поле порожнім, щоб зберегти поточний ключ API.",
    "editCompatibleTitle": "Редагувати {type} Сумісний",
    "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
    "apiKeyForCheck": "Ключ API (для перевірки)",
    "compatibleProdPlaceholder": "{type} Сумісність (Prod)",
    "tokenRefreshed": "Token refreshed successfully",
    "tokenRefreshFailed": "Token refresh failed",
    "applyCodexAuthLocal": "Apply auth",
    "exportCodexAuthFile": "Export auth",
    "applyClaudeAuthLocal": "Застосувати авторизацію",
    "exportClaudeAuthFile": "Аутентифікація експорту",
    "importClaudeAuth": "Аутентифікація імпорту",
    "claudeApplyModalTitle": "Зверніться до місцевого коду Клода",
    "claudeApplyTargetLabel": "Цільовий шлях",
    "claudeApplyBackupLabel": "Резервні копії",
    "claudeApplyMcpHint": "Наявний стан OAuth MCP буде збережено.",
    "claudeApplyWarning": "Це замінить існуючий розділ claudeAiOauth. Продовжити?",
    "claudeApplyConfirmCheckbox": "Я підтверджую, що хочу замінити існуючий розділ claudeAiOauth",
    "claudeApply": "Застосувати",
    "claudeAuthAppliedLocal": "Аутентифікація Claude застосовується локально",
    "claudeAuthApplyFailed": "Не вдалося застосувати автентифікацію Claude локально",
    "claudeAuthExported": "Файл авторизації Claude експортовано",
    "claudeAuthExportFailed": "Не вдалося експортувати файл авторизації Claude",
    "claudeImportModalTitle": "Імпорт Claude Auth",
    "claudeImportTabSingle": "неодружений",
    "claudeImportTabBulk": "Масовий",
    "claudeImportTabUpload": "Завантажити файл",
    "claudeImportTabPaste": "Вставте JSON",
    "claudeImportFileLabel": "Виберіть .credentials.json",
    "claudeImportPasteLabel": "Вставте вміст JSON",
    "claudeImportEmailLabel": "Електронна адреса облікового запису",
    "claudeImportNameLabel": "Ім'я підключення (необов'язково)",
    "claudeImportOverwriteLabel": "Замініть наявне підключення, якщо обліковий запис уже існує",
    "claudeImportSubmit": "Імпорт",
    "claudeImportSuccess": "Підключення Claude успішно імпортовано",
    "claudeImportInvalidJson": "Не вдалося розібрати файл як JSON",
    "claudeImportInvalidShape": "Файл недійсний .credentials.json",
    "claudeImportDuplicate": "Обліковий запис уже існує — увімкніть «Замінити існуючий», щоб перезаписати",
    "claudeImportIdentityUnverified": "Bootstrap не зміг перевірити обліковий запис. Увімкніть «Замінити існуючий» або вкажіть адресу електронної пошти.",
    "claudeImportFailed": "Не вдалося імпортувати авторизацію Claude",
    "claudeImportBulkModeUpload": "Завантажте файли",
    "claudeImportBulkModePaste": "Вставити масив JSON",
    "claudeImportBulkModeZip": "Завантажити ZIP",
    "claudeImportBulkUploadHint": "Перемістіть або виберіть до 50 файлів .credentials.json (256 КБ кожен, 10 МБ загалом).",
    "claudeImportBulkPasteHint": "Вставте масив об’єктів: [{ json, name?, email? }, ...]",
    "claudeImportBulkZipHint": "ZIP із записами .json. Макс. 50 записів, 10 Мб без упаковки.",
    "claudeImportBulkSubmit": "Імпортувати все",
    "claudeImportBulkSuccess": "Імпортовано підключення {count} Claude",
    "claudeImportBulkFailed": "Деякі записи не вдалося імпортувати",
    "claudeImportBulkZipExtracting": "Розпакування ZIP…",
    "claudeImportBulkZipError": "Не вдалося розпакувати ZIP",
    "applyGeminiAuthLocal": "Застосувати авторизацію",
    "exportGeminiAuthFile": "Аутентифікація експорту",
    "importGeminiAuth": "Аутентифікація імпорту",
    "geminiApplyModalTitle": "Застосувати до локального Gemini CLI",
    "geminiApplyTargetLabel": "Цільовий шлях",
    "geminiApplyBackupLabel": "Резервні копії",
    "geminiApplyAccountsHint": "Активний обліковий запис google_accounts.json буде оновлено відповідно до цього підключення.",
    "geminiApplyWarning": "Це замінить наявний oauth_creds.json і оновить google_accounts.json. Продовжити?",
    "geminiApplyConfirmCheckbox": "Я підтверджую, що хочу замінити наявний oauth_creds.json",
    "geminiApply": "Застосувати",
    "geminiAuthAppliedLocal": "Аутентифікація Gemini застосовується локально",
    "geminiAuthApplyFailed": "Не вдалося застосувати автентифікацію Gemini локально",
    "geminiAuthExported": "Файл автентифікації Gemini експортовано",
    "geminiAuthExportFailed": "Не вдалося експортувати файл автентифікації Gemini",
    "geminiImportModalTitle": "Імпорт Gemini Auth",
    "geminiImportTabSingle": "неодружений",
    "geminiImportTabBulk": "Масовий",
    "geminiImportTabUpload": "Завантажити файл",
    "geminiImportTabPaste": "Вставте JSON",
    "geminiImportFileLabel": "Виберіть oauth_creds.json",
    "geminiImportPasteLabel": "Вставте вміст JSON",
    "geminiImportEmailLabel": "Електронна адреса облікового запису",
    "geminiImportNameLabel": "Ім'я підключення (необов'язково)",
    "geminiImportOverwriteLabel": "Замініть наявне підключення, якщо обліковий запис уже існує",
    "geminiImportSubmit": "Імпорт",
    "geminiImportSuccess": "Підключення Gemini успішно імпортовано",
    "geminiImportInvalidJson": "Не вдалося розібрати файл як JSON",
    "geminiImportInvalidShape": "Файл не є дійсним oauth_creds.json",
    "geminiImportDuplicate": "Обліковий запис уже існує — увімкніть «Замінити існуючий», щоб перезаписати",
    "geminiImportIdentityUnverified": "Не вдалося підтвердити особу з id_token. Увімкніть «Замінити існуючий» або вкажіть адресу електронної пошти.",
    "geminiImportFailed": "Не вдалося імпортувати автентифікацію Gemini",
    "geminiImportBulkModeUpload": "Завантажте файли",
    "geminiImportBulkModePaste": "Вставити масив JSON",
    "geminiImportBulkModeZip": "Завантажити ZIP",
    "geminiImportBulkUploadHint": "Витягніть або виберіть до 50 файлів oauth_creds.json (256 КБ кожен, 10 МБ загалом).",
    "geminiImportBulkPasteHint": "Вставте масив об’єктів: [{ json, name?, email? }, ...]",
    "geminiImportBulkZipHint": "ZIP із записами oauth_creds.json. Макс. 50 записів, 10 Мб без упаковки.",
    "geminiImportBulkSubmit": "Імпортувати все",
    "geminiImportBulkSuccess": "Імпортовано підключення {count} Gemini",
    "geminiImportBulkFailed": "Деякі записи не вдалося імпортувати",
    "geminiImportBulkZipExtracting": "Розпакування ZIP…",
    "geminiImportBulkZipError": "Не вдалося розпакувати ZIP",
    "codexAuthAppliedLocal": "Codex auth.json applied locally",
    "codexAuthApplyFailed": "Failed to apply Codex auth.json locally",
    "codexAuthExported": "Codex auth.json exported",
    "codexAuthExportFailed": "Failed to export Codex auth.json",
    "importCodexAuth": "Аутентифікація імпорту",
    "codexImportModalTitle": "Імпорт Codex Auth",
    "codexImportTabSingle": "неодружений",
    "codexImportTabBulk": "Масовий",
    "codexImportTabUpload": "Завантажити файл",
    "codexImportTabPaste": "Вставте JSON",
    "codexImportFileLabel": "Виберіть auth.json",
    "codexImportFileHint": "Виберіть файл auth.json, експортований із Codex або OmniRoute.",
    "codexImportPasteLabel": "Вставте вміст JSON",
    "codexImportEmailLabel": "Електронна адреса облікового запису",
    "codexImportEmailHint": "Автоматичне визначення з файлу; редагувати, якщо потрібно.",
    "codexImportNameLabel": "Ім'я підключення (необов'язково)",
    "codexImportOverwriteLabel": "Замініть наявне підключення, якщо обліковий запис уже існує",
    "codexImportSubmit": "Імпорт",
    "codexImportSuccess": "Підключення Codex успішно імпортовано",
    "codexImportInvalidJson": "Не вдалося розібрати файл як JSON",
    "codexImportInvalidShape": "Файл недійсний Codex auth.json",
    "codexImportDuplicate": "Обліковий запис уже існує — увімкніть «Замінити існуючий», щоб перезаписати",
    "codexImportFailed": "Не вдалося імпортувати автентифікацію Codex",
    "codexImportDetectedEmail": "Виявлено: {email}",
    "codexImportNoEmailDetected": "У файлі не виявлено електронної пошти",
    "codexImportBulkModeUpload": "Завантажте файли",
    "codexImportBulkModePaste": "Вставити список",
    "codexImportBulkModeZip": "ZIP архів",
    "codexImportBulkUploadHint": "Виберіть кілька файлів .json або перетягніть їх",
    "codexImportBulkPasteHint": "Масив JSON [ {...}, {...} ] або кілька JSON, розділених --- в окремому рядку",
    "codexImportBulkZipHint": "Завантажте .zip, що містить файли auth.json (макс. 50 файлів, 10 МБ)",
    "codexImportBulkSubmit": "Імпортувати облікові записи {count}",
    "codexImportBulkLimit": "Максимум 50 файлів на імпорт",
    "codexImportBulkSuccess": "{count} імпортовано",
    "codexImportBulkFailed": "{count} не вдалося",
    "codexImportBulkZipExtracting": "Розпакування ZIP…",
    "codexImportBulkZipError": "Не вдалося розпакувати ZIP",
    "advancedSettings": "Advanced Settings",
    "chatPathLabel": "Chat Endpoint Path",
    "chatPathPlaceholder": "/chat/completions",
    "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
    "modelsPathLabel": "Models Endpoint Path",
    "modelsPathPlaceholder": "/models",
    "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
    "statusDeactivated": "Deactivated (Manual)",
    "statusBanned": "Banned / Sandbox Violation",
    "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
    "showEmails": "Show all emails",
    "hideEmails": "Hide all emails",
    "a": "A",
    "accountConcurrencyCapHint": "Account Concurrency Cap Hint",
    "accountConcurrencyCapLabel": "Account Concurrency Cap Label",
    "accountIdHint": "Account Id Hint",
    "accountIdLabel": "Account Id Label",
    "accountIdPlaceholder": "Account Id Placeholder",
    "addAnotherApiKey": "Add another API key or paste multiple keys",
    "addCcCompatible": "Add Cc Compatible",
    "aggregatorsGateways": "Aggregators Gateways",
    "enterpriseCloud": "Підприємство та хмара",
    "apiFormatLabel": "Api Format Label",
    "apiKeyOptionalHint": "Api Key Optional Hint",
    "apiKeyOptionalLabel": "Api Key Optional Label",
    "apiRegionChina": "Api Region China",
    "apiRegionHint": "Api Region Hint",
    "apiRegionInternational": "Api Region International",
    "apiRegionLabel": "Api Region Label",
    "apikey": "Apikey",
    "audio": "Audio",
    "audioProvidersHeading": "Audio Providers Heading",
    "cloudAgentProviders": "Постачальники хмарних агентів",
    "audioShortLabel": "Audio Short Label",
    "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
    "bailianBaseUrlHint": "Bailian Base Url Hint",
    "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
    "claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
    "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
    "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
    "t3ChatWebCookieHint": "Відкрийте t3.chat → DevTools → Application → Local Storage → https://t3.chat, скопіюйте 'convex-session-id'. Потім відкрийте DevTools → Network, скопіюйте повний заголовок Cookie з будь-якого запиту чату. Вставте обидва значення в поля нижче.",
    "t3ChatWebCookiePlaceholder": "convex-session-id=abc123...",
    "blockClaudeExtraUsageDescription": "Block Claude Extra Usage Description",
    "blockClaudeExtraUsageLabel": "Block Claude Extra Usage Label",
    "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
    "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
    "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
    "ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
    "ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
    "ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
    "ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
    "ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
    "ccCompatibleDetailsTitle": "Cc Compatible Details Title",
    "ccCompatibleLabel": "Cc Compatible Label",
    "ccCompatibleModelsDescription": "Cc Compatible Models Description",
    "ccCompatibleNameHint": "Cc Compatible Name Hint",
    "ccCompatibleNamePlaceholder": "Cc Compatible Name Placeholder",
    "ccCompatiblePrefixHint": "Cc Compatible Prefix Hint",
    "ccCompatiblePrefixPlaceholder": "Cc Compatible Prefix Placeholder",
    "ccCompatibleValidationHint": "Cc Compatible Validation Hint",
    "claudeExtraUsageShort": "Claude Extra Usage Short",
    "claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
    "codex5hToggleTitle": "Codex5H Toggle Title",
    "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
    "codexFastServiceTierLabel": "Codex fast service tier",
    "codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
    "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
    "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
    "compatible": "Сумісні",
    "configuredCount": "Configured Count",
    "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
    "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
    "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
    "cpaModeDisabledTitle": "Cpa Mode Disabled Title",
    "cpaModeEnabledTitle": "Cpa Mode Enabled Title",
    "customUserAgentHint": "Custom User Agent Hint",
    "customUserAgentLabel": "Custom User Agent Label",
    "databricksBaseUrlHint": "Databricks Base Url Hint",
    "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
    "defaultThinkingStrengthLabel": "Default thinking strength",
    "deleteAllExtraApiKeys": "Delete all",
    "excludedModelsHint": "Excluded Models Hint",
    "excludedModelsLabel": "Excluded Models Label",
    "excludedModelsPlaceholder": "Excluded Models Placeholder",
    "expirationBannerExpired": "Expiration Banner Expired",
    "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
    "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
    "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
    "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
    "extraApiKeysHint": "Extra Api Keys Hint",
    "extraApiKeysLabel": "Extra Api Keys Label",
    "apiKeyHealthLabel": "API Key Health",
    "apiKeyStatusActive": "Active",
    "apiKeyStatusWarning": "Warning ({count} failures)",
    "apiKeyStatusInvalid": "Invalid",
    "primaryKey": "Primary Key",
    "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
    "apiKeyInvalidAlertTitle": "API Key Health Alert",
    "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
    "apiKeyWarningAlertTitle": "API Key Warning",
    "googlePseInfo": "Google Pse Info",
    "geminiCliProjectIdHint": "Ваш ідентифікатор проекту Google Cloud. Необхідний для облікових записів з винятками. Введіть свій ідентифікатор проекту GCP для використання з Gemini CLI.",
    "geminiCliProjectIdLabel": "Ідентифікатор проекту Google Cloud",
    "geminiCliProjectIdPlaceholder": "мій-gcp-ідентифікатор-проекту",
    "antigravityProjectIdHint": "Додаткове перевизначення для запитів на код Antigravity Cloud. Залиште поле порожнім, щоб використовувати проект, виявлений під час Google OAuth.",
    "antigravityClientProfileLabel": "Профіль клієнта",
    "antigravityClientProfileHint": "Виберіть, яку клієнтську ідентичність Antigravity OmniRoute представляє API.",
    "antigravityClientProfileIde": "__MISSING__:IDE",
    "antigravityClientProfileHarness": "__MISSING__:Harness / CLI",
    "codexFastTierActiveChip": "Codex Fast tier активний",
    "tierFast": "__MISSING__:Fast",
    "antigravityProjectIdLabel": "Ідентифікатор проекту Google Cloud",
    "antigravityProjectIdPlaceholder": "мій-gcp-ідентифікатор-проекту",
    "grokWebCookieHint": "Grok Web Cookie Hint",
    "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
    "herokuBaseUrlHint": "Heroku Base Url Hint",
    "hideEmail": "Hide Email",
    "imageProviders": "Image Providers",
    "videoProviders": "Генерація відео",
    "embeddingRerankProviders": "Вбудовування та зміна рейтингу",
    "imagesShortLabel": "Images Short Label",
    "llmProviders": "Llm Providers",
    "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
    "localProviderBaseUrlHint": "Local Provider Base Url Hint",
    "localProviders": "Local Providers",
    "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
    "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
    "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
    "oauth": "Oauth",
    "openCliTools": "Open Cli Tools",
    "openSettings": "Open Settings",
    "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
    "openaiResponsesStoreLabel": "OpenAI Responses store",
    "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
    "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
    "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
    "personalAccessTokenLabel": "Personal Access Token Label",
    "qoderPatHint": "Qoder Pat Hint",
    "qoderPatPlaceholder": "Qoder Pat Placeholder",
    "refreshOauthTokenTitle": "Refresh Oauth Token Title",
    "regionHint": "Region Hint",
    "regionLabel": "Region Label",
    "removeThisKey": "Remove This Key",
    "routingTagsHint": "Routing Tags Hint",
    "routingTagsLabel": "Routing Tags Label",
    "routingTagsPlaceholder": "Routing Tags Placeholder",
    "search": "Search",
    "searchEngineIdHint": "Search Engine Id Hint",
    "searchEngineIdLabel": "Search Engine Id Label",
    "searchEngineIdRequired": "Search Engine Id Required",
    "searchProvider": "Search Provider",
    "searchProviderDesc": "Search Provider Desc",
    "searchProviders": "Пошук постачальників...",
    "searchProvidersHeading": "Search Providers Heading",
    "searxngBaseUrlHint": "Searxng Base Url Hint",
    "searxngInfo": "Searxng Info",
    "sessionCookieLabel": "Session Cookie Label",
    "showEmail": "Show Email",
    "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
    "supportedEndpointAudio": "Supported Endpoint Audio",
    "supportedEndpointChat": "Supported Endpoint Chat",
    "supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
    "supportedEndpointImages": "Supported Endpoint Images",
    "supportedEndpointsLabel": "Supported Endpoints Label",
    "tagGroupHint": "Tag Group Hint",
    "tagGroupLabel": "Tag Group Label",
    "tagGroupPlaceholder": "Tag Group Placeholder",
    "testModel": "Test Model",
    "testingModel": "Testing Model",
    "toggleOffShort": "Toggle Off Short",
    "toggleOnShort": "Toggle On Short",
    "tokenExpiredBadge": "Token Expired Badge",
    "tokenExpiredTitle": "Token Expired Title",
    "tokenExpiresSoonTitle": "Token Expires Soon Title",
    "tokenShort": "Token Short",
    "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
    "unhideModel": "Unhide Model",
    "upstreamProxyProviders": "Upstream Proxy Providers",
    "validationModelIdHint": "Validation Model Id Hint",
    "validationModelIdLabel": "Validation Model Id Label",
    "validationModelIdPlaceholder": "Validation Model Id Placeholder",
    "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
    "webCookieProviders": "Web Cookie Providers",
    "weeklyShort": "Weekly Short",
    "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
    "zedImportButton": "Zed Import Button",
    "zedImportFailed": "Zed Import Failed",
    "zedImportHint": "Zed Import Hint",
    "zedImportNetworkError": "Zed Import Network Error",
    "zedImportNone": "Zed Import None",
    "zedImportSuccess": "Zed Import Success",
    "zedImporting": "Zed Importing",
    "freeTierProviders": "Безкоштовні постачальники рівня",
    "freeTierLabel": "Доступний безкоштовний рівень",
    "freeTierProvidersDesc": "Постачальники з безкоштовними рівнями — деякі вимагають реєстрації ключа API, інші взагалі не потребують облікових даних.",
    "providerSummaryAll": "Всього",
    "ideProviders": "Постачальники IDE",
    "ideProvidersDesc": "Редактори з вбудованою підпискою на AI. Використовуйте сторінку постачальника, щоб імпортувати облікові дані безпосередньо з брелока IDE.",
    "noIdeProviders": "Жоден постачальник IDE не відповідає поточним фільтрам.",
    "providerDetailFastTierTooltip": "За замовчуванням застосовуйте рівень Codex Fast до всіх підключень Codex",
    "providerDetailFastDefaultLabel": "Швидкий дефолт",
    "providerDetailBrowserManualConnect": "Браузер/ручне підключення",
    "providerDetailAuthUrl": "URL авторизації",
    "providerDetailCallbackUrl": "URL зворотного виклику",
    "providerDetailValidClaudeCredentialsFile": "Дійсний файл облікових даних Claude",
    "providerDetailPathAutoDetectedAllOs": "Шлях визначається автоматично для кожної ОС (Linux/Mac/Windows).",
    "providerDetailMyClaudeAccountPlaceholder": "Мій обліковий запис Клода",
    "providerDetailPathAutoDetected": "Шлях визначається автоматично для кожної ОС (Linux/Mac).",
    "webFetch": "__MISSING__:Web Fetch",
    "webFetchTooltip": "Провайдери, що отримують вміст із веб-URL (HTML → Markdown, парсинг, скріншоти)",
    "webFetchProvidersHeading": "Провайдери Web Fetch",
    "compatibleProvidersDesc": "OpenAI-сумісні та Anthropic-сумісні ендпоінти, які ви хостите або налаштовуєте. Спрямуйте будь-який OpenAI SDK на свій URL і маршрутизуйте запити сюди.",
    "oauthProvidersDesc": "Провайдери з автентифікацією через OAuth — увійдіть один раз, OmniRoute автоматично обертатиме токени.",
    "webCookieProvidersDesc": "Ці постачальники використовують веб-сеанси браузера, файли cookie або веб-токени замість ключів API. Відкрийте постачальника, щоб додати необхідні облікові дані сеансу.",
    "apiKeyProvidersDesc": "Стандартні провайдери з API-ключами. Додайте ключ один раз, OmniRoute сам маршрутизує, повторює запити та контролює ліміти.",
    "noAuthProvidersDesc": "Відкриті ендпоінти без облікових даних — готові до використання одразу, без реєстрації.",
    "upstreamProxyProvidersDesc": "Спрямовуйте вихідний трафік через висхідний проксі перед тим, як він досягне провайдера. Корисно для корпоративних мереж або інспекції трафіку.",
    "webFetchProvidersDesc": "Провайдери, що отримують і витягують вміст із веб-URL. Використовуйте їх, щоб збагатити промпти даними з вебу в реальному часі.",
    "aggregatorsGatewaysDesc": "Мультипровайдерські агрегатори та AI-шлюзи з єдиним уніфікованим API для десятків моделей.",
    "enterpriseCloudDesc": "Корпоративні та хмарні моделі з розширеними SLA, сертифікацією відповідності та виділеними потужностями.",
    "cloudAgentProvidersDesc": "Автономні хмарні агенти, які виконують довготривалі задачі з підтвердженням плану та відстеженням статусу в реальному часі.",
    "localProvidersDesc": "Самостійно розгорнуті моделі на вашому обладнанні. Дані не залишають вашу інфраструктуру.",
    "searchProvidersDesc": "Провайдери веб- і документного пошуку. Підключіть їх до LLM-викликів для retrieval-augmented generation.",
    "audioProvidersDesc": "Провайдери TTS і STT для голосового вводу/виводу та транскрипції аудіо.",
    "embeddingRerankProvidersDesc": "Провайдери векторних вбудовувань і переранжування для семантичного пошуку, RAG-конвеєрів та оцінювання схожості.",
    "imageProvidersDesc": "Провайдери генерації та аналізу зображень — створюйте зображення з тексту або аналізуйте наявні.",
    "videoProvidersDesc": "Провайдери генерації відео. Створюйте короткі відеокліпи з текстових промптів або зображень.",
    "onboardingWizard": "Майстер адаптації постачальника",
    "onboardingWizardShort": "Майстер адаптації",
    "onboardingWizardDescription": "Підключіть постачальників ключів API, настроюваної сумісності та OAuth із перевіркою, стійкістю та негайним тестом з’єднання.",
    "onboardingStepType": "Тип",
    "onboardingStepProvider": "Провайдер",
    "onboardingStepCredentials": "Облікові дані",
    "onboardingStepResult": "Результат",
    "onboardingTypeApiKeyTitle": "Постачальник API-ключів",
    "onboardingTypeApiKeyText": "Використовуйте такі вбудовані постачальники, як OpenAI, Anthropic, Gemini, Groq, Azure тощо.",
    "onboardingTypeCustomTitle": "Індивідуальний сумісний постачальник",
    "onboardingTypeCustomText": "Створіть кінцеву точку, сумісну з OpenAI, Anthropic або Claude Code, і додайте її ключ.",
    "onboardingTypeOAuthTitle": "Постачальник OAuth",
    "onboardingTypeOAuthText": "Повторно використовуйте існуючі потоки OAuth, код пристрою або локальний імпорт для постачальників кодування.",
    "onboardingChooseOAuthProvider": "Виберіть постачальника OAuth",
    "onboardingChooseApiKeyProvider": "Виберіть постачальника API-ключів",
    "onboardingChooseProviderDescription": "Виберіть постачальника, а потім майстер проведе вас через облікові дані та тестування.",
    "onboardingChangeType": "Змінити тип",
    "onboardingChangeProvider": "Змінити провайдера",
    "onboardingSearchProviders": "Пошук постачальників…",
    "onboardingApiKeyOptional": "Ключ API необов'язковий",
    "onboardingProviderConnected": "Провайдер підключений",
    "onboardingProviderSavedWithWarnings": "Провайдер зберігся з попередженнями",
    "onboardingProviderFinished": "Реєстрацію постачальника завершено",
    "onboardingYourProviderConnection": "Підключення вашого провайдера",
    "onboardingTestPassed": "Тест пройдено",
    "onboardingTestFailed": "Тест не вдалося",
    "onboardingOpenProviderDetails": "Відкрийте інформацію про постачальника",
    "onboardingTryInPlayground": "Спробуйте на дитячому майданчику",
    "onboardingDefaultConnectionName": "{provider} Основний",
    "onboardingTestingConnection": "Тестування підключення до постачальника…",
    "onboardingValidatingCredentials": "Перевірка облікових даних…",
    "onboardingSavingConnection": "Збереження підключення до постачальника…",
    "onboardingProviderFailed": "Помилка реєстрації постачальника",
    "onboardingCreatingCompatibleProvider": "Створення сумісного постачальника…",
    "onboardingSavingCompatibleConnection": "Збереження підключення сумісного постачальника…",
    "onboardingCustomProviderFallbackName": "Індивідуальний провайдер",
    "onboardingCustomProviderFailed": "Помилка адаптації спеціального постачальника",
    "onboardingLoadingOAuthConnection": "Завантаження з’єднання OAuth…",
    "onboardingOAuthNoConnectionFound": "OAuth завершено, але підключення до постачальника не знайдено.",
    "onboardingOAuthFailed": "Помилка реєстрації OAuth",
    "onboardingAddProvider": "Додати {provider}",
    "onboardingConnectionName": "Назва підключення",
    "onboardingApiKeyOptionalLabel": "Ключ API (необов'язково)",
    "onboardingBaseUrlOverride": "Перевизначення базової URL-адреси",
    "onboardingBaseUrlOverrideHint": "Додатково. Зберігається як providerSpecificData.baseUrl.",
    "onboardingRegion": "Регіон",
    "onboardingSearchCx": "Пошук CX / Engine ID",
    "onboardingProviderSpecificIdPlaceholder": "Додатковий ідентифікатор постачальника",
    "onboardingCustomUserAgent": "Спеціальний агент користувача",
    "onboardingWorking": "Робота…",
    "onboardingValidateSaveTest": "Перевірте, збережіть і протестуйте",
    "onboardingBack": "Назад",
    "onboardingCreateCustomCompatibleProvider": "Створення спеціального сумісного постачальника",
    "onboardingCreateCustomCompatibleDescription": "Майстер спочатку створює вузол провайдера, а потім зберігає та перевіряє його з’єднання з ключем API.",
    "onboardingProtocol": "Протокол",
    "onboardingOpenAiCompatible": "OpenAI-сумісний",
    "onboardingAnthropicCompatible": "Антропосумісний",
    "onboardingClaudeCodeCompatible": "Claude Code-сумісний",
    "onboardingProviderPrefix": "Префікс провайдера",
    "onboardingProviderPrefixHint": "Використовується для створення ідентифікатора керованого постачальника.",
    "onboardingChatPath": "Шлях чату",
    "onboardingModelsPath": "Шлях моделей",
    "onboardingCreateSaveTest": "Створіть, збережіть і перевірте",
    "onboardingConnectProvider": "Підключити {provider}",
    "onboardingOAuthFlowDescription": "OmniRoute відкриє наявний потік OAuth для цього постачальника. Після входу майстер перезавантажує збережене з’єднання та запускає той самий тест з’єднання, що й сторінка постачальника.",
    "onboardingStartOAuthFlow": "Запустіть потік OAuth",
    "passthroughModelsDescription": "{provider} приймає власні ідентифікатори моделі постачальника. Імпортуйте з /models або додайте власні ідентифікатори для маршрутизації.",
    "bedrockModelsDescription": "Моделі Amazon Bedrock залежать від регіону AWS. Імпортуйте з /models або додайте ідентифікатори моделі Bedrock, активовані у вибраному регіоні.",
    "bedrockModelPlaceholder": "антропічний.claude-sonnet-4-6",
    "addProviderSessionCookieTitle": "Додайте {provider} cookie сесії",
    "addProviderWebTokenTitle": "Додайте веб-маркер {provider}",
    "addProviderConnectionTitle": "Додайте підключення {provider}",
    "webTokenCredentialLabel": "Маркер веб-сесії",
    "webNoAuthCredentialLabel": "Облікові дані не потрібні",
    "webCookieCredentialHint": "Необхідні файли cookie: {credential}. Вставте значення заголовка Cookie із власного веб-сеансу {provider}, під час якого ви ввійшли в систему. Не включайте префікс Cookie:.",
    "webTokenCredentialHint": "Облікові дані: {credential}. Вставте значення маркера з власного веб-сеансу {provider}, під час якого ви ввійшли, або експорту HAR DevTools, якщо постачальник підтримує це.",
    "webCookieEditHint": "Залиште поле порожнім, щоб зберегти файл cookie поточного сеансу. Необхідні файли cookie: {credential}.",
    "webTokenEditHint": "Залиште поле порожнім, щоб зберегти маркер поточного веб-сеансу. Облікові дані: {credential}.",
    "webSessionGuideTitle": "Як отримати облікові дані сесії",
    "webSessionGuideIntro": "{provider} використовує веб-сеанс браузера замість ключа API.",
    "webCookieRequiredCredential": "Необхідний файл cookie: {credential}",
    "webTokenRequiredCredential": "Необхідний маркер: {credential}",
    "webSessionGuideStep1": "Увійдіть до {provider} у своєму браузері.",
    "webSessionGuideStep2": "Відкрийте інструменти розробника браузера та перевірте запит, зроблений веб-програмою.",
    "webSessionGuideStep3": "Скопіюйте необхідні облікові дані з власного домену постачальника. Для файлів cookie скопіюйте лише значення заголовка Cookie і пропустіть Cookie:.",
    "webSessionGuideStep4": "Вставте його сюди та перевірте з’єднання. Якщо він перестане працювати, увійдіть ще раз і замініть його новим значенням.",
    "webSessionSecurityHint": "Розглядайте це як пароль: він може отримати доступ до вашого веб-облікового запису, у який ви ввійшли, доки його термін дії не закінчиться або його не буде відкликано.",
    "webNoAuthGuideTitle": "Облікові дані не потрібні",
    "webNoAuthGuideBody": "{provider} не потребує ключа API або файлу cookie. Збережіть підключення, щоб використовувати його безкоштовну веб-кінцеву точку.",
    "webSessionCredentialValidationFailed": "Помилка перевірки облікових даних сеансу. Увійдіть знову, скопіюйте нові облікові дані та повторіть спробу.",
    "checkCookie": "Перевірте cookie",
    "checkWebToken": "Чек жетона"
  },
  "settings": {
    "title": "Налаштування",
    "general": "Загальний",
    "security": "Безпека",
    "appearance": "Зовнішній вигляд",
    "routing": "Маршрутизація",
    "cache": "Кеш",
    "resilience": "Стійкість",
    "routingSettingsIntro": "Контролює, як ваші запити маршрутизуються, перетворюються та надсилаються постачальникам AI.",
    "routingOpDropParagraphContainsLabel": "Видалити абзац (містить)",
    "routingOpDropParagraphStartsWithLabel": "Видалити абзац (починається з)",
    "routingOpReplaceTextLabel": "Замінити текст",
    "routingOpReplaceRegexLabel": "Замінити за regex",
    "routingOpDropBlockContainsLabel": "Видалити блок (містить)",
    "routingOpPrependSystemBlockLabel": "Додати системний блок на початок",
    "routingOpAppendSystemBlockLabel": "Додати системний блок у кінець",
    "routingOpInjectBillingHeaderLabel": "Вставити billing-заголовок",
    "routingOpObfuscateWordsLabel": "Обфускувати слова (ZWJ)",
    "routingOpDropParagraphContainsDesc": "Видаляє будь-який абзац (текстовий блок, розділений порожніми рядками) у системному промпті, текст якого містить БУДЬ-ЯКИЙ з перелічених підрядків. Використовуйте для видалення відбитків сторонніх клієнтів, як-от 'github.com/anomalyco/opencode' чи 'docs.openwebui.com', які класифікатор Anthropic позначає як підозрілі.",
    "routingOpDropParagraphStartsWithDesc": "Видаляє будь-який абзац, що ПОЧИНАЄТЬСЯ З одного з перелічених префіксів. Використовуйте для рядків ідентифікації на кшталт 'You are OpenCode' або 'You are Open WebUI', які повідомляють про викликаючого клієнта.",
    "routingOpReplaceTextDesc": "Заміняє літеральний підрядок іншим літеральним підрядком. Використовуйте для відомих тригер-фраз — напр., замініть 'Here is some useful information about the environment you are running in:' на 'Environment context you are running in:' (емпірично перевірена тригер-фраза).",
    "routingOpReplaceRegexDesc": "Заміняє текст, що відповідає регулярному виразу. Використовуйте, коли потрібні шаблони (класи символів, опціональні пробіли, якорі), а не літеральні підрядки. Некоректний шаблон ловиться під час виконання операції.",
    "routingOpDropBlockContainsDesc": "Видаляє ЦІЛІ системні блоки (не лише абзаци), текст яких містить будь-який з перелічених підрядків. Використовуйте, коли цілий блок є відбитком і ви хочете його прибрати — напр., вставлений опис MCP-сервера.",
    "routingOpPrependSystemBlockDesc": "Вставляє новий текстовий блок на ПОЧАТОК масиву system. Використовуйте, щоб додати ідентичність SDK 'You are a Claude agent, built on Anthropic's Claude Agent SDK.', яку очікує класифікатор Anthropic.",
    "routingOpAppendSystemBlockDesc": "Вставляє новий текстовий блок у КІНЕЦЬ масиву system. Використовуйте для косметичних доповнень, які не мають бути на позиції [0].",
    "routingOpInjectBillingHeaderDesc": "Додає на початок спеціальний блок 'x-anthropic-billing-header: cc_version=...; cc_entrypoint=...; cch=...;', який валідує класифікатор Anthropic. Обов'язково для CC bridge relay-ендпоінтів; для рідного провайдера claude OmniRoute уже вставляє власний рядок billing, тож тут операція зазвичай зайва.",
    "routingOpObfuscateWordsDesc": "Вставляє символ Zero-Width-Joiner після першої літери кожного перелічене слова, так що 'opencode' стає 'o‍pencode'. Для людей читається однаково, але обходить збіги слів класифікатора. Орієнтовано на системні блоки, повідомлення user/assistant і описи інструментів.",
    "routingNeedlesHint": "Список підрядків. Абзац збігається, якщо містить БУДЬ-ЯКИЙ з них. Додавайте по одному через 'Додати запис'.",
    "routingPrefixesHint": "Список рядків. Абзац збігається, якщо починається з будь-якого з них (провідні пробіли обрізаються перед порівнянням).",
    "routingCaseSensitiveHint": "Коли УВІМКНЕНО, 'OpenCode' і 'opencode' — різні рядки. Коли ВИМКНЕНО (за замовчуванням), порівняння ігнорує регістр.",
    "routingMatchLiteralHint": "Точний літеральний підрядок для пошуку. Без regex-синтаксису — спеціальні символи . * ? трактуються як самі себе.",
    "routingReplacementTextHint": "Рядок-заміна. Залиште порожнім, щоб видалити збіг. Оточуючий текст зберігається.",
    "routingAllOccurrencesHint": "Коли УВІМКНЕНО (за замовчуванням), заміняються всі входження. Коли ВИМКНЕНО, лише перший збіг.",
    "routingPatternHint": "Джерело JavaScript-regex. Не загортайте у слеші — просто 'foo(.*)bar'. Сервер відхиляє шаблони, які не компілюються.",
    "routingRegexFlagsHint": "Прапорці JavaScript-regex (g = усі збіги, i = без врахування регістру, s = крапка збігає newline, m = багаторядково). За замовчуванням 'g'.",
    "routingBlockTextHint": "Повний текст нового системного блоку. Використовуйте літеральний рядок; системний блок зберігає лише текст.",
    "routingIdempotencyKeyHint": "Опційно. Якщо задано, операція пропускається, коли блок із текстом, що починається з цього ключа, уже присутній. Запобігає подвійному вставленню при повторах.",
    "routingBillingEntrypointHint": "Значення, що вставляється як 'cc_entrypoint='. Anthropic приймає 'sdk-cli' (Agent SDK), 'cli' (Claude Code CLI) або інші задокументовані значення.",
    "routingBillingVersionFormatHint": "Як обчислюється 3-символьний хеш збірки після cc_version=. 'ex-machina' = sha256 від CCH_SALT+символів-першого-user-повідомлення+версії (на кожне повідомлення). 'omniroute-daystamp' = sha256 від YYYY-MM-DD+версії (стабільно за день).",
    "routingBillingCchAlgoHint": "Як обчислюється 5-символьний токен cch=. 'sha256-first-user' = sha256 тексту першого user-повідомлення. 'xxhash64-body' = підпис на рівні body заповнюється пізніше. 'static-zero' = літеральний '00000' плейсхолдер.",
    "routingObfuscateWordsHint": "Слова в нижньому регістрі для обфускації. Вставка ZWJ застосовується без врахування регістру, тож 'opencode' також збігається з 'OpenCode' і 'OPENCODE'.",
    "routingObfuscateTargetsHint": "Які зони body сканувати на слова: системні блоки, повідомлення user/assistant та/або описи інструментів.",
    "routingObfuscateTargetsLabel": "Цілі",
    "routingSummarizeDropParagraphContains": "видалити абзаци, що містять: {items}",
    "routingSummarizeDropParagraphStartsWith": "видалити абзаци, що починаються з: {items}",
    "routingSummarizeReplaceText": "замінити \"{match}\" → \"{replacement}\"",
    "routingSummarizeReplaceRegex": "__MISSING__:regex /{pattern}/{flags} → \"{replacement}\"",
    "routingSummarizeDropBlockContains": "видалити блоки, що містять: {items}",
    "routingSummarizePrependSystemBlock": "додати блок на початок: \"{text}\"",
    "routingSummarizeAppendSystemBlock": "додати блок у кінець: \"{text}\"",
    "routingSummarizeInjectBillingHeader": "вставити billing-заголовок (entrypoint={entrypoint}, version={versionFormat}, cch={cchAlgo})",
    "routingSummarizeObfuscateWords": "обфускувати {count} слово(а) через ZWJ у {targets}",
    "routingDefaultAutoVariantLKGP": "Останній справний провайдер",
    "routingDefaultAutoVariantLKGPDesc": "Останній справний провайдер",
    "routingDefaultAutoVariantCoding": "Якість насамперед — для коду",
    "routingDefaultAutoVariantCodingDesc": "Якість насамперед — для коду",
    "routingDefaultAutoVariantFast": "Маршрутизація з низькою затримкою",
    "routingDefaultAutoVariantFastDesc": "Маршрутизація з низькою затримкою",
    "routingDefaultAutoVariantCheap": "Оптимізація за вартістю",
    "routingDefaultAutoVariantCheapDesc": "Оптимізація за вартістю",
    "routingDefaultAutoVariantOffline": "Висока доступність",
    "routingDefaultAutoVariantOfflineDesc": "Висока доступність",
    "routingDefaultAutoVariantSmart": "Найкраще виявлення (10% розвідки)",
    "routingDefaultAutoVariantSmartDesc": "Найкраще виявлення (10% розвідки)",
    "routingOpSummaryCount": "{count, plural, =0 {немає операцій} one {# операція} few {# операції} many {# операцій} other {# операції}}",
    "routingOpEnabled": "увімкнено",
    "routingOpDisabled": "вимкнено",
    "routingOpStatusSeparator": "__MISSING__: · ",
    "resilienceSettingsIntro": "Автоматична повторна спроба, час відновлення та резервний варіант у разі збою постачальників.",
    "aiSettingsIntro": "Спеціальні параметри ШІ для планування бюджету, поведінки моделі та стиснення.",
    "systemPrompt": "Системна підказка",
    "thinkingBudget": "Мислення про бюджет",
    "proxy": "Проксі",
    "httpProxy": "HTTP Proxy",
    "1proxy": "1proxy",
    "proxySubTabsAria": "Proxy sections",
    "requestBodyLimitTitle": "Request Body Limit",
    "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
    "requestBodyLimitInputLabel": "Request body limit in MB",
    "requestBodyLimitEmptyError": "Enter a limit in MB",
    "requestBodyLimitWholeNumberError": "Use a whole number",
    "requestBodyLimitMinimumError": "Minimum is {min} MB",
    "requestBodyLimitMaximumError": "Maximum is {max} MB",
    "requestBodyLimitLoadFailed": "Failed to load request limit settings",
    "requestBodyLimitSaveSuccess": "Request body limit saved",
    "requestBodyLimitSaveFailed": "Failed to save request body limit",
    "requestBodyLimitSaving": "Saving...",
    "requestBodyLimitSave": "Save",
    "requestBodyLimitCurrent": "Current: {value}",
    "mitmProxy": "Проксі MITM",
    "pricing": "Ціноутворення",
    "storage": "Зберігання",
    "policies": "політики",
    "ipFilter": "IP-фільтр",
    "comboDefaults": "Комбіновані параметри за замовчуванням",
    "fallbackChains": "Резервні ланцюги",
    "changePassword": "Змінити пароль",
    "enablePassword": "Увімкнути пароль",
    "darkMode": "Темний режим",
    "lightMode": "Світловий режим",
    "memoryTitle": "Memory",
    "memoryDesc": "Persistent cross-session conversational memory",
    "memoryEnabled": "Enable Memory",
    "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
    "maxTokens": "Max Tokens",
    "retentionDays": "Retention",
    "recent": "Recent",
    "recentDesc": "Chronological window",
    "semantic": "Semantic",
    "semanticDesc": "Vector search",
    "hybrid": "Hybrid",
    "hybridDesc": "Recent + Semantic",
    "skillsTitle": "Skills",
    "skillsDesc": "Tools for models",
    "skillsEnabled": "Enable Skills",
    "skillsEnabledDesc": "Allows agents to trigger functions.",
    "skillsComingSoon": "Skills marketplace coming soon.",
    "memorySkillsTitle": "Memory & Skills",
    "memorySkillsDesc": "Persistent context & capabilities",
    "modelsDevTitle": "Model Database",
    "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
    "modelsDevEnabled": "Enable models.dev Sync",
    "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
    "modelsDevInterval": "Sync Interval",
    "syncNow": "Sync Now",
    "syncing": "Syncing...",
    "lastSync": "Last sync",
    "never": "Never",
    "justNow": "тільки зараз",
    "modelsDevStats": "Sync Statistics",
    "modelsDevStatsDesc": "Current models.dev data coverage",
    "providers": "Провайдери",
    "modelsWithPricing": "Models with Pricing",
    "capabilities": "Capabilities",
    "lastSyncCount": "Last Sync Count",
    "lastSyncFull": "Last full sync",
    "modelsDevInfo": "How It Works",
    "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
    "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
    "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
    "systemTheme": "Тема системи",
    "debugToggle": "Enable Debug Mode",
    "sidebarVisibilityToggle": "Show Sidebar Items",
    "enableCache": "Увімкнути кеш",
    "cacheTTL": "Кеш TTL",
    "maxCacheSize": "Максимальний розмір кешу",
    "clearCache": "Очистити кеш",
    "cacheCleared": "Cache cleared successfully",
    "clearCacheFailed": "Failed to clear cache",
    "cacheHits": "Звернення до кешу",
    "cacheMisses": "Промахи кешу",
    "hitRate": "Рейтинг попадань",
    "cacheEntries": "Записи кешу",
    "cacheSettings": "Cache Settings",
    "semanticCache": "Semantic Cache",
    "maxEntries": "Max Entries",
    "ttlMinutes": "TTL (minutes)",
    "promptCache": "Кеш підказок",
    "strategy": "Strategy",
    "preserveClientCache": "Preserve Client Cache",
    "enabled": "Enabled",
    "loading": "Loading...",
    "saving": "Збереження...",
    "save": "Save",
    "circuitBreaker": "Автоматичний вимикач",
    "retryPolicy": "Політика повторних спроб",
    "maxRetries": "Макс. повторних спроб",
    "retryDelay": "Затримка повтору",
    "timeoutMs": "Час очікування (мс)",
    "enableSystemPrompt": "Увімкнути системну підказку",
    "systemPromptText": "Текст системної підказки",
    "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
    "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
    "autoDisableThreshold": "Ban Threshold",
    "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
    "resilienceStructureTitle": "Resilience Structure",
    "resilienceStructureDesc": "Ця сторінка лише налаштовує поведінку. Стан живого вимикача відображається на сторінці «Справочинність». Повторна спроба комбінованого вибору та циклічний контроль слотів залишаються в налаштуваннях комбо.",
    "enableThinking": "Увімкнути мислення",
    "maxThinkingTokens": "Макс жетонів мислення",
    "enableProxy": "Увімкнути проксі",
    "proxyUrl": "URL проксі",
    "pricingRates": "Формат ціноутворення",
    "currentPricing": "Огляд поточних цін",
    "loadingPricing": "Завантаження даних про ціни...",
    "noPricing": "Немає даних про ціни",
    "input": "Введення",
    "output": "Вихід",
    "cached": "Кешовано",
    "reasoning": "Міркування",
    "cacheCreation": "Створення кешу",
    "customPricing": "Спеціальне ціноутворення",
    "databaseSize": "Розмір бази даних",
    "backupDb": "Резервне копіювання бази даних",
    "restoreDb": "Відновити базу даних",
    "exportData": "Експорт даних",
    "importData": "Імпорт даних",
    "clearData": "Очистити всі дані",
    "clearDataConfirm": "Це призведе до остаточного видалення всіх даних. Ви впевнені?",
    "enableRequestLogs": "Увімкнути журнали запитів",
    "logRetention": "Зберігання журналу",
    "ipWhitelist": "Білий список IP-адрес",
    "ipBlacklist": "Чорний список IP",
    "addIP": "Додайте IP",
    "savedSuccessfully": "Налаштування успішно збережено",
    "ai": "ШІ",
    "advanced": "Просунутий",
    "localMode": "Локальний режим — усі дані, що зберігаються на вашій машині",
    "settingsSectionsAria": "Розділи налаштувань",
    "switchThemes": "Перемикання між світлою та темною темами",
    "themeSelectionAria": "Вибір теми",
    "themeLight": "світло",
    "themeDark": "Темний",
    "themeSystem": "система",
    "endpointTunnelVisibility": "Видимість тунелю кінцевої точки",
    "endpointTunnelVisibilityDesc": "Приховати елементи керування тунелем на сторінці кінцевої точки без зміни стану тунелю.",
    "showCloudflareTunnel": "Швидкий тунель Cloudflare",
    "showCloudflareTunnelDesc": "Показати елементи керування Cloudflare Quick Tunnel на сторінці кінцевої точки.",
    "showTailscaleFunnel": "Хвостова воронка",
    "showTailscaleFunnelDesc": "Показати елементи керування воронкою Tailscale на сторінці кінцевої точки.",
    "showNgrokTunnel": "тунель нгрок",
    "showNgrokTunnelDesc": "Показати елементи керування тунелем ngrok на сторінці кінцевої точки.",
    "sidebarVisibility": "Hide sidebar items",
    "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
    "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
    "hideHealthLogs": "Приховати журнали перевірки справності",
    "hideHealthLogsDesc": "Коли ввімкнено, блокувати повідомлення [HealthCheck] на консолі сервера",
    "themeAccent": "Колір теми",
    "themeAccentDesc": "Оберіть готовий колір або створіть власну тему з одного кольору",
    "themeCreate": "Створити тему",
    "themeCustom": "Користувацька тема",
    "themeBlue": "Синій",
    "themeRed": "Червоний",
    "themeGreen": "Зелений",
    "themeViolet": "Фіолетовий",
    "themeOrange": "Помаранчевий",
    "themeCyan": "Ціан",
    "whitelabeling": "Branding",
    "whitelabelingDesc": "Customize the application name and logo",
    "appName": "Application Name",
    "appNameDesc": "Display name shown in sidebar and browser tab",
    "customLogo": "Custom Logo URL",
    "customLogoDesc": "URL to your custom logo image",
    "uploadLogo": "Upload Logo",
    "resetLogo": "Reset to Default",
    "logoPreview": "Preview",
    "customFavicon": "Browser Favicon",
    "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
    "uploadFavicon": "Upload Favicon",
    "resetFavicon": "Reset Favicon",
    "faviconPreview": "Favicon Preview",
    "flushCache": "Очистити кеш",
    "flushing": "Промивання…",
    "size": "Розмір",
    "hits": "Хіти",
    "evictions": "Виселення",
    "loadingCacheStats": "Завантаження статистики кешу…",
    "globalProxy": "Глобальний проксі",
    "globalProxyDesc": "Налаштуйте глобальний вихідний проксі для всіх викликів API. Окремі постачальники, комбінації та ключі можуть замінити це.",
    "noGlobalProxy": "Глобальний проксі не налаштовано",
    "globalLabel": "Глобальний",
    "configure": "Налаштувати",
    "globalSystemPrompt": "Глобальна системна підказка",
    "saved": "Збережено",
    "beforePromptLabel": "Перед промптом",
    "beforePromptDesc": "Вставляється перед системними інструкціями агента/провайдера",
    "beforePromptPlaceholder": "Інструкції, що вставляються перед промптом агента/провайдера...",
    "afterPromptLabel": "Після промпту",
    "afterPromptDesc": "Вставляється після системних інструкцій агента/провайдера",
    "afterPromptPlaceholder": "Інструкції, що вставляються після промпту агента/провайдера...",
    "chars": "{count} символів",
    "thinkingBudgetTitle": "Мислення про бюджет",
    "thinkingBudgetDesc": "Контролюйте використання маркера міркування AI для всіх запитів",
    "passthrough": "Прохідний",
    "passthroughDesc": "Без змін — клієнт контролює бюджет мислення",
    "auto": "Авто",
    "autoDesc": "Видаліть усі конфігурації мислення — дозвольте постачальнику вирішувати",
    "custom": "Custom",
    "customDesc": "Встановіть фіксований бюджет токенів для всіх запитів",
    "adaptive": "Адаптивний",
    "adaptiveDesc": "Масштабуйте бюджет на основі складності запиту",
    "effortNone": "Жодного (0 токенів)",
    "effortLow": "Низький (1 тис. жетонів)",
    "effortMedium": "Середній (10 тисяч токенів)",
    "effortHigh": "Високий (128 тис. токенів)",
    "tokenBudget": "Токен Бюджет",
    "tokens": "жетони",
    "baseEffortLevel": "Базовий рівень зусиль",
    "adaptiveHint": "Адаптивний режим масштабується від цього базового рівня на основі кількості повідомлень, використання інструментів і тривалості запиту.",
    "requireLogin": "Вимагати авторизації",
    "requireLoginDesc": "Коли УВІМКНЕНО, інформаційна панель вимагає пароля. Коли ВИМКНЕНО, доступ без входу.",
    "currentPassword": "Поточний пароль",
    "enterCurrentPassword": "Введіть поточний пароль",
    "newPassword": "Новий пароль",
    "enterNewPassword": "Введіть новий пароль",
    "confirmPassword": "Підтвердьте новий пароль",
    "confirmPasswordPlaceholder": "Підтвердьте новий пароль",
    "passwordsNoMatch": "Паролі не збігаються",
    "passwordUpdated": "Пароль успішно оновлено",
    "failedUpdatePassword": "Не вдалося оновити пароль",
    "errorOccurred": "Сталася помилка",
    "updatePassword": "Оновити пароль",
    "setPassword": "Встановити пароль",
    "apiEndpointProtection": "API Endpoint Protection",
    "requireAuthModels": "Вимагати ключ API для /models",
    "requireAuthModelsDesc": "Якщо ON, кінцева точка /v1/models повертає 404 для неавтентифікованих запитів. Запобігає виявленню моделі неавторизованими користувачами.",
    "authModelHeading": "Активна модель авторизації",
    "authModelClient": "Для кінцевих точок API клієнта (/v1/*, /chat/*, /responses/*, /codex/*, /messages/*) потрібен ключ API-носія.",
    "authModelManagement": "Для кінцевих точок керування (/dashboard, /api/*) потрібен сеанс інформаційної панелі або облікові дані керування.",
    "authModelPublic": "Загальнодоступними є лише маршрути входу, стану здоров’я та початкового завантаження.",
    "bruteForceProtection": "Захист від грубої сили входу",
    "bruteForceProtectionDesc": "Регулювання та блокування /api/auth/login після повторних помилок з тієї самої IP-адреси.",
    "corsAllowedOrigins": "Дозволені джерела CORS",
    "corsAllowedOriginsDesc": "Розділений комами список джерел веб-переглядача, яким дозволено викликати цей сервер. Порожній список = відсутність доступу до CORS браузера (сервер-сервер усе ще працює). Використовуйте CORS_ALLOW_ALL=true env var тільки для розробки.",
    "blockedProviders": "Заблоковані постачальники",
    "blockedProvidersDesc": "Приховати певних постачальників у відповіді /v1/models. Заблоковані постачальники не відображатимуться в списках моделей.",
    "providersBlocked": "{count} постачальник(ів) заблоковано для /models",
    "blockProviderTitle": "Заблокувати {provider}",
    "unblockProviderTitle": "Розблокувати {provider}",
    "cliFingerprint": "CLI Fingerprint Matching",
    "cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
    "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
    "enableFingerprintTitle": "Enable fingerprint for {provider}",
    "disableFingerprintTitle": "Disable fingerprint for {provider}",
    "systemTransforms": "Системний блок Transform Pipeline",
    "systemTransformsDesc": "Упорядкований постачальником конвеєр перетворень, застосованих до тіла запиту перед пересиланням. Підтримує будь-який ID провайдера.",
    "systemTransformsAddProvider": "Додати провайдера",
    "systemTransformsAddProviderPlaceholder": "Виберіть постачальника…",
    "systemTransformsAddProviderAllConfigured": "Усі провайдери вже налаштовані",
    "systemTransformsRemoveProvider": "Видалити провайдера",
    "systemTransformsNoProviders": "Постачальники не налаштовані. Щоб почати, додайте постачальника.",
    "systemTransformsOpMoveUp": "Рухатися вгору",
    "systemTransformsOpMoveDown": "Рухатися вниз",
    "systemTransformsOpDelete": "Вилучити ор",
    "routingStrategy": "Стратегія маршрутизації",
    "routingAdvancedGuideTitle": "Розширені вказівки щодо маршрутизації",
    "routingAdvancedGuideHint1": "Використовуйте Fill First для передбачуваного пріоритету, Round Robin для справедливості та P2C для стійкості до затримок.",
    "routingAdvancedGuideHint2": "Якщо постачальники відрізняються за якістю/вартістю, почніть із Cost Opt для фонової роботи та Least Used для збалансованого зносу.",
    "fillFirst": "Заповніть спочатку",
    "fillFirstDesc": "Використовуйте облікові записи в пріоритетному порядку",
    "roundRobin": "Кругова система",
    "roundRobinDesc": "Перегляньте всі облікові записи",
    "p2c": "P2C",
    "p2cDesc": "Виберіть 2 навмання, використовуйте здоровіший",
    "random": "Випадковий",
    "randomDesc": "Випадковий рахунок для кожного запиту",
    "leastUsed": "Найменш використовуваний",
    "leastUsedDesc": "Виберіть нещодавно використовуваний обліковий запис",
    "costOpt": "Вартість Opt",
    "costOptDesc": "Віддайте перевагу найдешевшому доступному обліковому запису",
    "resetAware": "Reset-Aware RR",
    "resetAwareDesc": "Віддавайте перевагу обліковим записам із достатньою квотою, що залишилася, і найближчими скиданнями",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
    "stickyLimit": "Sticky Limit",
    "stickyLimitDesc": "Дзвінки на обліковий запис перед переходом",
    "modelAliases": "Псевдоніми моделі",
    "modelAliasesTitle": "Псевдоніми моделей",
    "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
    "addCustomAlias": "Додати власний псевдонім",
    "deprecatedModelId": "Застарілий ID моделі",
    "newModelId": "Новий ID моделі",
    "customAliases": "Власні псевдоніми",
    "builtInAliases": "Вбудовані псевдоніми",
    "backgroundDegradationTitle": "Деградація фонових завдань",
    "backgroundDegradationDesc": "Автоматично виявляє фонові завдання (заголовки, резюме) і перенаправляє на дешевші моделі",
    "enableDegradation": "Увімкнути деградацію фонових завдань",
    "enableDegradationHint": "Коли увімкнено, фонові завдання, такі як генерація заголовків і підсумування, автоматично перенаправляються на дешевші моделі",
    "tasksDetected": "Виявлено завдань",
    "degradationMap": "Карта деградації моделей",
    "premiumModel": "Преміум-модель",
    "cheapModel": "Дешева модель",
    "detectionPatterns": "Шаблони виявлення",
    "newPattern": "напр. \"згенерувати заголовок\"",
    "aliasPatternPlaceholder": "клод-сонет-*",
    "aliasTargetPlaceholder": "claude-sonnet-4-20250514",
    "pattern": "Візерунок",
    "targetModel": "Цільова модель",
    "add": "+ Додати",
    "session": "Сесія",
    "sessionDetailsAria": "Деталі сеансу",
    "status": "Статус",
    "authenticated": "Автентифіковано",
    "guest": "Гість",
    "loginTime": "Час входу",
    "sessionAge": "Вік сесії",
    "browser": "Браузер",
    "clearLocalData": "Очистити локальні дані",
    "logout": "Вийти",
    "clearLocalDataConfirm": "Очистити всі локальні дані? Це скине ваші налаштування.",
    "unknown": "Невідомий",
    "systemActor": "система",
    "ipAccessControl": "Контроль IP доступу",
    "ipAccessControlDesc": "Блокувати або дозволяти певні IP-адреси",
    "ipModeDisabled": "Вимкнено",
    "ipModeBlacklist": "Чорний список",
    "ipModeWhitelist": "Білий список",
    "ipModeWhitelistPriority": "Пріоритет WL",
    "addIpAddress": "Додайте IP-адресу",
    "ipAddressPlaceholder": "192.168.1.0/24 або 10.0.*.*",
    "block": "+ Блокувати",
    "allow": "+ Дозволити",
    "blocked": "Заблоковано ({count})",
    "allowed": "Дозволено ({count})",
    "temporaryBans": "Тимчасові заборони ({count})",
    "minLeft": "Залишилося {min}хв",
    "auditLog": "Журнал аудиту",
    "searchAuditLogs": "Шукати журнали аудиту...",
    "failedLoadAuditLog": "Не вдалося завантажити журнал аудиту",
    "noAuditEvents": "Подій аудиту не знайдено",
    "action": "Дія",
    "actor": "Актор",
    "details": "Подробиці",
    "time": "час",
    "fallbackChainsTitle": "Резервні ланцюги",
    "fallbackChainsDesc": "Визначте запасний порядок постачальника для кожної моделі",
    "addChain": "+ Додати ланцюг",
    "modelName": "Назва моделі",
    "modelNamePlaceholder": "claude-sonnet-4-20250514",
    "providersCommaSeparated": "Постачальники (через кому, у порядку пріоритету)",
    "providersCommaSeparatedPlaceholder": "антропний, опенай, геміні",
    "createChain": "Створити ланцюжок",
    "noFallbackChains": "Без запасних ланцюгів",
    "noFallbackChainsDesc": "Створіть ланцюжок, щоб визначити запасний порядок постачальника для моделі.",
    "loadingFallbackChains": "Завантаження резервних ланцюжків...",
    "deleteChainConfirm": "Видалити резервний ланцюжок для \"{model}\"?",
    "chainCreated": "Створено ланцюжок для {model}",
    "chainDeleted": "Ланцюжок видалено для {model}",
    "failedCreateChain": "Не вдалося створити ланцюжок",
    "failedDeleteChain": "Не вдалося видалити ланцюжок",
    "deleteChain": "Видалити ланцюжок",
    "fillModelAndProviders": "Введіть назву моделі та постачальників",
    "addAtLeastOneProvider": "Додайте хоча б одного постачальника",
    "comboDefaultsTitle": "Комбіновані параметри за замовчуванням",
    "comboDefaultsGuideTitle": "Як налаштувати параметри комбо за замовчуванням",
    "comboDefaultsGuideHint1": "Зберігайте низькі повторні спроби в потоках із низькою затримкою; збільшити час очікування лише для завдань тривалого покоління.",
    "comboDefaultsGuideHint2": "Використовуйте перевизначення постачальника, коли одному постачальнику потрібна інша поведінка тайм-ауту/повторної спроби, ніж глобальні стандартні налаштування.",
    "globalComboConfig": "Конфігурація глобального комбо",
    "defaultStrategy": "Стратегія за замовчуванням",
    "defaultStrategyDesc": "Застосовується до нових комбо без явної стратегії",
    "comboStrategyAria": "Комбінована стратегія",
    "priority": "Пріоритет",
    "weighted": "Зважений",
    "contextRelay": "Context Relay",
    "contextRelayDesc": "Hands off context between providers with automatic summarization",
    "maxRetriesLabel": "Макс. повторних спроб",
    "retryDelayLabel": "Затримка повтору (мс)",
    "timeoutLabel": "Час очікування (мс)",
    "healthCheck": "Перевірка стану здоров'я",
    "healthCheckDesc": "Попередньо уточнюйте наявність у провайдера",
    "trackMetrics": "Відстежувати показники",
    "trackMetricsDesc": "Записуйте показники комбінованих запитів",
    "providerOverrides": "Перевизначення постачальника",
    "providerOverridesDesc": "Перевизначити час очікування та повторити спроби для кожного постачальника. Налаштування постачальника замінюють глобальні налаштування за умовчанням.",
    "providerMaxRetriesAria": "Максимальна кількість повторних спроб: {provider}",
    "providerTimeoutAria": "{provider} тайм-аут мс",
    "removeProviderOverrideAria": "Видалити перевизначення {provider}",
    "newProviderNamePlaceholder": "напр. гугли, відкривай...",
    "newProviderNameAria": "Нова назва провайдера",
    "retries": "повтори",
    "ms": "мс",
    "saveComboDefaults": "Зберегти комбіновані параметри за замовчуванням",
    "maxNestingDepth": "Максимальна глибина вкладення",
    "concurrencyPerModel": "Одночасність / Модель",
    "queueTimeout": "Час очікування черги (мс)",
    "contextRelayHandoffThreshold": "Handoff Threshold",
    "contextRelayMaxMessages": "Max Messages For Summary",
    "contextRelaySummaryModel": "Summary Model",
    "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
    "providerProfiles": "Профілі постачальників",
    "providerProfilesDesc": "Окремі параметри стійкості для постачальників OAuth (на основі сеансу) і ключа API (з вимірюванням). Постачальники OAuth мають суворіші порогові значення через нижчі обмеження швидкості.",
    "oauthProviders": "Постачальники OAuth",
    "apiKeyProviders": "Постачальники ключів API",
    "transientCooldown": "Перехідний час відновлення",
    "rateLimitCooldown": "Обмеження швидкості відновлення",
    "maxBackoffLevel": "Максимальний рівень резервування",
    "cbThreshold": "Поріг CB",
    "cbResetTime": "Час скидання CB",
    "rateLimiting": "Обмеження швидкості",
    "rateLimitingDesc": "Постачальники ключів API автоматично обмежуються швидкістю з безпечними параметрами за замовчуванням. Обмеження вивчаються із заголовків відповідей і адаптуються з часом.",
    "defaultSafetyNet": "Стандартна мережа безпеки",
    "rpm": "RPM",
    "minGap": "Мінімальний розрив",
    "maxConcurrent": "Максимальна одночасність",
    "activeLimiters": "Активні обмежувачі",
    "noActiveLimiters": "Активних обмежувачів швидкості ще немає.",
    "reservoir": "Водосховище",
    "running": "Біг",
    "queued": "У черзі",
    "circuitBreakers": "Автоматичні вимикачі",
    "breakerStateClosed": "Закрито",
    "breakerStateOpen": "відкритий",
    "breakerStateHalfOpen": "Напіввідкритий",
    "tripped": "{count} спрацював",
    "healthy": "{count} здоровий",
    "resetAll": "Скинути все",
    "noCircuitBreakers": "Ще немає активних автоматичних вимикачів. Вони створюються автоматично, коли запити проходять через комбінований конвеєр.",
    "failures": "{count} помилка(и)",
    "policiesLocked": "Політики та заблоковані ідентифікатори",
    "allOperational": "Усі системи в робочому стані — жодних блокувань чи спрацьованих вимикачів",
    "loadingPolicies": "Завантаження правил...",
    "lockedIdentifiers": "Заблоковані ідентифікатори",
    "unlockedIdentifier": "Розблоковано: {identifier}",
    "sinceDate": "з {date}",
    "forceUnlock": "Примусове розблокування",
    "unlocking": "Розблокування...",
    "failedUnlock": "Не вдалося розблокувати",
    "failedLoadWithStatus": "Не вдалося завантажити: {status}",
    "failedLoadResilience": "Не вдалося завантажити статус стійкості",
    "saveFailed": "Не вдалося зберегти",
    "resetFailed": "Помилка скидання",
    "loadingResilience": "Завантаження стану стійкості...",
    "retry": "Повторіть спробу",
    "systemStorage": "Система та зберігання",
    "allDataLocal": "Усі дані зберігаються локально на вашій машині",
    "databasePath": "Шлях до бази даних",
    "exportDatabase": "Експорт бази даних",
    "exportAll": "Експортувати все (.tar.gz)",
    "importDatabase": "Імпорт бази даних",
    "confirmDbImport": "Підтвердьте імпорт бази даних",
    "confirmDbImportDesc": "Усі поточні дані буде замінено вмістом із {file}. Резервна копія буде створена автоматично перед імпортом.",
    "yesImport": "Так, імпорт",
    "lastBackup": "Остання резервна копія",
    "noBackupYet": "Резервної копії ще немає",
    "backupNow": "Резервне копіювання зараз",
    "backupRestore": "Резервне копіювання та відновлення",
    "viewBackups": "Переглянути резервні копії",
    "hide": "Сховати",
    "backupRetentionDesc": "Знімки бази даних створюються автоматично перед відновленням і кожні 15 хвилин, коли дані змінюються. Зберігання: 24 години на годину + 30 щоденних резервних копій із розумною ротацією.",
    "loadingBackups": "Завантаження резервних копій...",
    "noBackupsYet": "Резервних копій ще немає. Резервні копії створюватимуться автоматично при зміні даних.",
    "backupsAvailable": "Доступні резервні копії {count}",
    "refresh": "Оновити",
    "confirm": "Підтвердити?",
    "yes": "так",
    "no": "немає",
    "restore": "Відновити",
    "invalidFileType": "Недійсний тип файлу. Приймаються лише файли .sqlite.",
    "exportFailed": "Помилка експорту",
    "exportFailedWithError": "Помилка експорту: {error}",
    "fullExportFailedWithError": "Помилка повного експорту: {error}",
    "backupCreated": "Створено резервну копію: {file}",
    "restoreSuccess": "Відновлено! {connections} підключень, {nodes} вузлів, {combos} комбо, {apiKeys} ключів API.",
    "importSuccess": "Базу даних імпортовано! {connections} підключень, {nodes} вузлів, {combos} комбо, {apiKeys} ключів API.",
    "minutesAgo": "{count}хв тому",
    "hoursAgo": "{count} год тому",
    "daysAgo": "{count} дн. тому",
    "backupReasonManual": "посібник",
    "backupReasonPreRestore": "попереднє відновлення",
    "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
    "noChangesSinceBackup": "Жодних змін з часу останнього резервного копіювання",
    "backupFailed": "Помилка резервного копіювання",
    "restoreFailed": "Не вдалося відновити",
    "importFailed": "Помилка імпорту",
    "errorDuringRestore": "Під час відновлення сталася помилка",
    "errorDuringImport": "Під час імпорту сталася помилка",
    "modelPricing": "Модель ціноутворення",
    "modelPricingDesc": "Налаштуйте ставки витрат для моделі • Усі ставки в токенах $/1 млн",
    "registry": "Реєстр",
    "priced": "Ціна",
    "searchProvidersModels": "Пошук постачальників або моделей...",
    "showAll": "Показати все",
    "noProvidersMatch": "Жоден провайдер не відповідає вашому запиту.",
    "howPricingWorks": "Як працює ціноутворення",
    "cacheWrite": "Запис кешу",
    "unsaved": "незбережено",
    "resetDefaults": "Скинути значення за замовчуванням",
    "saveProvider": "Зберегти постачальника",
    "model": "Модель",
    "models": "моделі",
    "moreProviders": "{count} більше постачальників",
    "withPricing": "із налаштованим ціноутворенням",
    "policiesCircuitBreakers": "Правила та автоматичні вимикачі",
    "activeIssuesDetected": "Виявлено активні проблеми",
    "off": "Вимкнено",
    "resetPricingConfirm": "Відновити всі ціни для {provider} до стандартних?",
    "pricingDescInput": "Вхід: токени, надіслані моделі",
    "pricingDescOutput": "Результат: згенеровано токени",
    "pricingDescCached": "Кешовано: повторно використаний вхід (~50% швидкості введення)",
    "pricingDescReasoning": "Міркування: маркери мислення (повертається до результату)",
    "pricingDescCacheWrite": "Cache Write: створення записів кешу (повертається до Input)",
    "pricingDescFormula": "Вартість = (input × input_rate) + (output × output_rate) + (cached × cached_rate) на мільйон токенів.",
    "pricingSettingsTitle": "Налаштування ціни",
    "totalModels": "Всього моделей",
    "active": "Активний",
    "costCalculation": "Розрахунок вартості",
    "costCalculationDesc": "Витрати розраховуються на основі використання токенів і ставок ціноутворення, налаштованих для кожної моделі.",
    "pricingFormat": "Формат ціноутворення",
    "pricingFormatDesc": "Усі ставки вказані в $/1 млн токенів (доларів за мільйон токенів).",
    "tokenTypes": "Типи токенів",
    "inputTokenDesc": "Стандартні маркери підказок",
    "outputTokenDesc": "Жетони завершення/відповіді",
    "cachedTokenDesc": "Кешовані маркери введення (зазвичай 50% швидкості введення)",
    "reasoningTokenDesc": "Спеціальні маркери міркування/мислення (відкат до швидкості виведення)",
    "cacheCreationTokenDesc": "Токени, що використовуються для створення записів кешу (резервний вихід до швидкості введення)",
    "customPricingNote": "Ви можете змінити ціни за умовчанням для певних моделей. Спеціальні зміни мають пріоритет над автоматично визначеними цінами.",
    "editPricing": "Редагувати ціни",
    "viewFullDetails": "Переглянути повну інформацію",
    "themeCoral": "Корал",
    "adaptiveVolumeRouting": "Adaptive Volume Routing",
    "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
    "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
    "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
    "clearLkgpCache": "Clear LKGP Cache",
    "lkgpCacheCleared": "LKGP cache cleared successfully",
    "lkgpCacheClearFailed": "Failed to clear LKGP cache",
    "days": "Days",
    "lkgp": "LKGP Mode",
    "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
    "maintenance": "Maintenance",
    "purgeExpiredLogs": "Purge Expired Logs",
    "purgeLogsFailed": "Failed to purge logs",
    "contextOpt": "Context Optimized",
    "contextOptDesc": "Routes based on context window requirements and conversation length",
    "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
    "weightedDesc": "Distributes traffic by percentage weights across providers",
    "modelRoutingTitle": "Model Routing Rules",
    "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
    "addRule": "Add Rule",
    "routeToCombo": "Route to Combo",
    "selectCombo": "Select combo...",
    "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
    "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
    "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
    "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
    "deleteRoutingRule": "Delete this model routing rule?",
    "exactMatchMode": "Exact Match",
    "wildcardPatternMode": "Wildcard Pattern",
    "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
    "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
    "noExactAliasesConfigured": "No exact-match aliases configured.",
    "wildcardRulesTitle": "Wildcard Rules",
    "noWildcardAliasesConfigured": "No wildcard aliases configured.",
    "overview": "Overview",
    "unknownError": "Unknown Error",
    "pricingSourceLiteLLM": "Pricing Source Lite Llm",
    "clearSyncedPricingConfirm": "Clear Synced Pricing Confirm",
    "clearSyncedPricingFailed": "Clear Synced Pricing Failed",
    "pricingSourceUser": "Pricing Source User",
    "pageDescription": "Page Description",
    "pricingSyncStatus": "Pricing Sync Status",
    "whitelist": "Whitelist",
    "syncDisabled": "Sync Disabled",
    "pricingLoadFailed": "Pricing Load Failed",
    "pricingSyncDescription": "Pricing Sync Description",
    "clearSyncedPricingSuccess": "Clear Synced Pricing Success",
    "clearSyncedPricingFailedWithReason": "Не вдалося очистити ціни: {reason}",
    "pricingSourceDefault": "Pricing Source Default",
    "pricingSyncSuccess": "Pricing Sync Success",
    "enableSyncError": "Enable Sync Error",
    "syncEnabled": "Sync Enabled",
    "blacklist": "Blacklist",
    "pricingSourceModelsDev": "Pricing Source Models Dev",
    "syncedModels": "Synced Models",
    "budget": "Budget",
    "pricingSyncTitle": "Pricing Sync Title",
    "pricingResetFailedWithReason": "Не вдалося скинути ціни: {reason}",
    "tab": "Tab",
    "pricingSavedProvider": "Ціни збережено для {provider}",
    "pricingSyncFailed": "Pricing Sync Failed",
    "pricingSaveFailedWithReason": "Не вдалося зберегти ціни: {reason}",
    "pricingResetProvider": "Скидання цін для {provider}",
    "nextSync": "Next Sync",
    "pricingSyncFailedWithReason": "Помилка синхронізації цін: {reason}",
    "clearSyncedPricing": "Clear Synced Pricing",
    "compressionTitle": "Prompt Compression",
    "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
    "compressionMode": "Compression Mode",
    "compressionModeOff": "Off",
    "compressionModeOffDesc": "No compression applied",
    "compressionModeLite": "Lite",
    "compressionModeLiteDesc": "Whitespace and blank line reduction",
    "compressionModeStandard": "Standard (Caveman)",
    "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
    "compressionModeAggressive": "Aggressive",
    "compressionModeAggressiveDesc": "Summarization + tool result compression + progressive aging for maximum savings",
    "compressionModeUltra": "Ultra",
    "compressionModeUltraDesc": "Maximum compression with all techniques including semantic deduplication",
    "compressionAggressiveConfig": "Агресивна конфігурація двигуна",
    "compressionAggressiveConfigDesc": "Точне налаштування підсумовування, стиснення інструменту та пороги старіння",
    "compressionUltraConfig": "Конфігурація Ultra Engine",
    "compressionUltraConfigDesc": "Точне налаштування евристичної скорочення, резервної версії SLM і порогових значень для кожного повідомлення",
    "compressionUltraRate": "Зберегти ставку",
    "compressionUltraMinScore": "Мінімальний поріг балів",
    "compressionUltraSlmFallback": "Повернення до агресивності",
    "compressionUltraModelPath": "Шлях моделі SLM",
    "compressionSummarizerEnabled": "Увімкнути підсумовувач",
    "compressionMaxTokensPerMessage": "Максимальна кількість токенів на повідомлення",
    "compressionMinSavings": "Мінімальний поріг заощаджень",
    "compressionAgingThresholds": "Пороги старіння",
    "compressionAgingThresholdsDesc": "Кількість останніх повідомлень, що зберігаються на кожному рівні старіння (вище = більше збережене)",
    "compressionToolStrategies": "Інструмент Стратегії результату",
    "compressionToolStrategiesDesc": "Перемикайте стратегії стиснення для різних типів результатів інструментів",
    "compressionGeneral": "General Settings",
    "compressionAutoTrigger": "Auto-Trigger Threshold",
    "compressionCacheTTL": "Cache TTL",
    "compressionPreserveSystem": "Preserve System Prompt",
    "compressionCavemanConfig": "Caveman Engine Configuration",
    "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
    "compressionRoles": "Compress Message Roles",
    "compressionRoleUser": "User",
    "compressionRoleAssistant": "Assistant",
    "compressionRoleSystem": "System",
    "compressionMinLength": "Minimum Message Length",
    "compressionSkipRules": "Skip Compression Rules",
    "compressionSkipRulesDesc": "Click rules to skip them during compression",
    "compressionPreservePatterns": "Preserve Patterns",
    "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
    "compressionLogTitle": "Compression Log",
    "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
    "minutes": "хвилин",
    "compressionModeRtk": "RTK",
    "compressionModeRtkDesc": "Command-aware tool output filtering",
    "compressionModeStacked": "Stacked",
    "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
    "qdrantTitle": "Qdrant (Vector memory)",
    "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
    "qdrantStatusActive": "Active",
    "qdrantStatusError": "Error",
    "qdrantStatusDisabled": "Disabled",
    "qdrantEnable": "Enable Qdrant",
    "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
    "qdrantTesting": "Testing...",
    "qdrantTestConnection": "Test connection",
    "qdrantSaved": "Configuration saved",
    "qdrantSaveError": "Failed to save configuration",
    "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
    "qdrantPort": "Port",
    "qdrantPortHint": "Qdrant default: 6333",
    "qdrantCollectionHint": "Where memory points will be stored.",
    "qdrantEmbeddingModel": "Embedding model",
    "qdrantHelpTitle": "Quick setup help",
    "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
    "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
    "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
    "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
    "qdrantHelpStep4": "4. Save, test connection, then test search.",
    "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
    "qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
    "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
    "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
    "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
    "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
    "qdrantSearchTestTitle": "Search test",
    "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
    "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
    "qdrantNoResults": "No results (or Qdrant is not configured).",
    "qdrantCleanupTitle": "Retention and cleanup",
    "qdrantCleanupDesc": "Removes expired and old points based on",
    "searching": "Searching...",
    "cleaning": "Cleaning...",
    "cleanNow": "Clean now",
    "optional": "Додатково",
    "current": "поточний",
    "remove": "видалити",
    "search": "Пошук",
    "oneproxyTitle": "1proxy Free Proxy Marketplace",
    "oneproxyTotalProxies": "Всього проксі",
    "oneproxyAvgQuality": "Середня якість",
    "resilienceScope": "Сфера застосування:",
    "resilienceTrigger": "Тригер:",
    "resilienceEffect": "Ефект:",
    "resilienceRequestQueueTitle": "Request Queue & Rate",
    "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
    "resilienceRequestsPerMinute": "Requests per minute",
    "resilienceMinTimeBetweenRequests": "Minimum time between requests",
    "resilienceConcurrentRequests": "Concurrent requests",
    "resilienceMaxQueueWaitTime": "Максимальний час очікування в черзі",
    "resilienceBaseCooldown": "Base cooldown",
    "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
    "resilienceDefaultPerProvider": "Default (per provider)",
    "resilienceAlwaysOn": "Always on",
    "resilienceAlwaysOff": "Always off",
    "routingRemoveEntry": "Видалити запис",
    "routingNeedlesSubstrings": "Голки (підрядки для відповідності)",
    "routingCaseSensitive": "Чутливий до регістру",
    "routingPrefixes": "Префікси",
    "routingMatch": "Матч",
    "routingReplacement": "Заміна",
    "routingReplaceAllOccurrences": "Замінити всі входження",
    "routingPatternRegex": "Шаблон (регулярний вираз)",
    "routingFlags": "Прапори",
    "routingNeedles": "Голки",
    "routingBlockText": "Блокувати текст",
    "routingIdempotencyKey": "Ключ ідемпотентності",
    "routingEntrypoint": "Точка входу",
    "routingVersionFormat": "Формат версії",
    "routingCchAlgorithm": "Алгоритм CCH",
    "routingWordsToObfuscate": "Слова для обфускації (ZWJ вставлено після першого символу)",
    "logsSettingsTitle": "Налаштування журналів",
    "detailedLogsLabel": "Детальні журнали ввімкнено",
    "detailedLogsDesc": "Увімкнути детальне ведення журналу запитів/відповідей",
    "callLogPipelineLabel": "Журнал викликів",
    "callLogPipelineDesc": "Увімкнути конвеєр обробки журналу викликів",
    "maxDetailSizeLabel": "Максимальний розмір деталей (КБ)",
    "maxDetailSizeDesc": "Максимальний розмір для детальних записів журналу",
    "ringBufferSizeLabel": "Розмір кільцевого буфера",
    "ringBufferSizeDesc": "Розмір кільцевого буфера для журналів",
    "semanticCacheEnabledLabel": "Семантичний кеш увімкнено",
    "semanticCacheMaxSizeLabel": "Максимальний розмір семантичного кешу",
    "semanticCacheMaxSizeDesc": "Максимальна кількість записів семантичного кешу",
    "semanticCacheTTLLabel": "Семантичний кеш TTL",
    "promptCacheEnabledLabel": "Кеш запитів увімкнено",
    "promptCacheEnabledDesc": "Увімкнути кешування підказок",
    "promptCacheStrategyLabel": "Стратегія оперативного кешу",
    "promptCacheStrategyDesc": "Стратегія оперативного кешування",
    "alwaysPreserveClientCacheLabel": "Завжди зберігати кеш клієнта",
    "alwaysPreserveClientCacheDesc": "Політика збереження кешу клієнта",
    "logRetentionPolicyTitle": "Політика зберігання журналів",
    "resilienceUseUpstream429HintsForBreaker": "Використовуйте підказки 429 вгору (розрив)",
    "appearanceLogoPreviewAlt": "Попередній перегляд логотипу",
    "appearanceFaviconPreviewAlt": "Попередній перегляд Favicon",
    "oneproxyLastSync": "Остання синхронізація",
    "oneproxyAllProtocols": "Усі протоколи",
    "oneproxyCountryCodePlaceholder": "Код країни (наприклад, США)",
    "oneproxyMinQualityPlaceholder": "Мінімальна якість",
    "oneproxyLoadingProxies": "Завантаження проксі...",
    "oneproxyLastSyncLabel": "Остання синхронізація:",
    "oneproxyProxiesFetched": "Отримано проксі:",
    "oneproxyConsecutiveFailures": "Послідовні невдачі:",
    "oneproxyErrorLabel": "Помилка:",
    "oneproxyNever": "Ніколи",
    "oneproxySyncStatusTitle": "Статус синхронізації",
    "oneproxySuccess": "Успіх",
    "oneproxyFailed": "Не вдалося",
    "routingAntigravitySignatureTitle": "Режим кешу сигнатур антигравітації",
    "routingAntigravitySignatureDesc": "Керує тим, чи OmniRoute використовує лише збережені підписи мислення Gemini, чи приймає підтверджені клієнтом підписи у потоках виклику інструментів, сумісних з Antigravity.",
    "routingAntigravitySignatureEnabledLabel": "Увімкнено",
    "routingAntigravitySignatureEnabledDesc": "Поточна поведінка. Ігнорувати підписи від клієнта і продовжувати використовувати збережений потік OmniRoute.",
    "routingAntigravitySignatureBypassLabel": "Обхід",
    "routingAntigravitySignatureBypassDesc": "Приймати підписи від клієнта після спрощеної валідації, повертаючись до збереженого підпису, якщо він некоректний.",
    "routingAntigravitySignatureBypassStrictLabel": "Обхід строгий",
    "routingAntigravitySignatureBypassStrictDesc": "Вимагати повну валідацію protobuf перед прийняттям клієнтського підпису.",
    "routingHeaderFingerprintTitle": "Відбиток заголовка (на постачальника)",
    "routingServerRejectedSave": "⚠ Сервер відхилив збереження:",
    "routingAddTransformOp": "Додайте операцію трансформації",
    "routingClientCacheControlTitle": "Контроль кешу клієнта",
    "routingClientCacheControlDesc": "Налаштовує, чи зберігає OmniRoute клієнтські маркери cache_control",
    "routingClientCacheControlAutoDesc": "Для детермінованих Claude-сумісних потоків зберігати клієнтський cache_control як є. Якщо запит не має cache_control, OmniRoute не вставляє власних bridge-маркерів — для сумісності з CC-сумісними сторонніми проксі.",
    "routingClientCacheControlAlwaysLabel": "Завжди зберігати",
    "routingClientCacheControlAlwaysDesc": "Завжди передавати клієнтський cache_control до провайдера як є.",
    "routingClientCacheControlNeverLabel": "Ніколи не зберігати",
    "routingClientCacheControlNeverDesc": "Завжди видаляти клієнтський cache_control і дозволяти OmniRoute керувати кешуванням, де це підтримує рідний потік провайдера.",
    "routingZeroConfigTitle": "Автоматична маршрутизація без конфігурації",
    "routingZeroConfigDesc": "Увімкнути автоматичний вибір провайдера через префікс auto/. Коли увімкнено, запити до auto, auto/coding, auto/fast тощо динамічно маршрутизуються між усіма підключеними провайдерами.",
    "routingDefaultAutoVariant": "Автоматичний варіант за замовчуванням",
    "visionBridge": "Vision Bridge",
    "visionBridgeDesc": "Запустити автоматичне vision-to-text резервування перед маршрутизацією зображень до текстових моделей.",
    "visionBridgeEnabledLabel": "Увімкнено",
    "visionBridgeEnabledDesc": "Перемикач попереднього мосту, який заміняє частини із зображеннями на витягнутий текст.",
    "visionBridgeModel": "Модель мосту",
    "visionBridgeModelPlaceholder": "openai/gpt-4o-mini",
    "visionBridgeModelHint": "Тут можна використовувати будь-який ID моделі OmniRoute, що підтримує vision.",
    "visionBridgePrompt": "Підказка Bridge",
    "visionBridgePromptPlaceholder": "Стисло опишіть це зображення.",
    "visionBridgePromptHint": "Надсилається до vision-моделі перед тим, як отриманий опис вставляється назад до оригінального запиту.",
    "visionBridgeTimeoutMs": "Час очікування (мс)",
    "visionBridgeMaxImagesPerRequest": "Максимальна кількість зображень на запит",
    "resilienceMaxBackoffSteps": "Max backoff steps",
    "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
    "resilienceFailureThreshold": "Failure threshold",
    "resilienceResetTimeout": "Скинути час очікування",
    "resilienceFailureThresholdLabel": "Поріг відмови",
    "resilienceResetTimeoutLabel": "Скинути час очікування",
    "resilienceConnectionCooldownTitle": "Connection Cooldown",
    "resilienceUseUpstreamRetryHintsLabel": "Використовуйте підказки щодо повторної спроби",
    "resilienceUseUpstream429BreakerLabel": "Використовуйте підказки 429 вгору (розрив)",
    "resilienceMaxBackoffStepsLabel": "Максимальний крок відступу",
    "resilienceYes": "так",
    "resilienceNo": "немає",
    "resilienceDefault": "Default",
    "storageDatabaseBackupRetention": "Зберігання резервної копії бази даних",
    "storagePurgeData": "Очистити дані",
    "retentionQuotaSnapshots": "Знімки квоти (дні)",
    "retentionMcpAudit": "Аудит MCP (днів)",
    "retentionA2aEvents": "Події A2A (дні)",
    "retentionCallLogs": "Журнали викликів (дні)",
    "retentionUsageHistory": "Історія використання (дні)",
    "retentionMemoryEntries": "Записи пам'яті (дні)",
    "storageAutoVacuumMode": "Режим автоматичного вакуумування",
    "storageScheduledVacuum": "Плановий вакуум",
    "storageVacuumHour": "Година вакууму (0-23)",
    "storagePageSize": "Розмір сторінки (байти)",
    "storageDatabaseSize": "Розмір бази даних",
    "storagePageCount": "Кількість сторінок",
    "storageFreelistCount": "Кількість вільних списків",
    "storageLastVacuum": "Останній вакуум",
    "storageLastOptimization": "Остання оптимізація",
    "storageIntegrityCheck": "Перевірка цілісності",
    "storageIntegrityOk": "✓ Добре",
    "storageIntegrityError": "✗ Помилка",
    "storageUsageTokenBuffer": "Буфер маркера використання",
    "compressionSettingsAutoTriggerMode": "Режим автоматичного запуску",
    "compressionSettingsMcpDescriptionCompression": "Стиснення опису MCP",
    "compressionSettingsCavemanIntensity": "Інтенсивність печерної людини",
    "compressionSettingsCavemanOutputMode": "Режим виведення Caveman",
    "compressionSettingsOutputIntensity": "Вихідна інтенсивність",
    "compressionSettingsAutoClarityBypass": "Автоматичний обхід чіткості",
    "resilienceWaitForCooldown": "Дочекайтеся перезарядки",
    "resilienceEnableServerSideWait": "Увімкнути очікування на стороні сервера",
    "resilienceMaximumRetries": "Максимальна кількість повторів",
    "resilienceMaximumWaitPerRetry": "Максимальний час очікування на повторну спробу",
    "memorySkillsSkillsmpMarketplace": "SkillsMP Marketplace",
    "memorySkillsFailedToSave": "Не вдалося зберегти",
    "memorySkillsApiKey": "Ключ API",
    "memorySkillsActiveSkillsProvider": "Постачальник активних навичок",
    "cliproxyapiFallback": "Запасний варіант CLIProxyAPI",
    "cliproxyapiEnableFallback": "Увімкнути резервний варіант CLIProxyAPI",
    "cliproxyapiUrl": "URL-адреса CLIProxyAPI",
    "cliproxyapiStatus": "Статус CLIProxyAPI",
    "cliproxyapiNotDetected": "Не виявлено",
    "payloadRulesTitle": "Правила корисного навантаження",
    "payloadRulesDesc": "Налаштування мутацій корисного навантаження за моделлю та протоколом. Зміни зберігаються в налаштуваннях і гаряче перезавантажуються одразу після збереження.",
    "payloadRuleDefaultTitle": "__MISSING__:default",
    "payloadRuleDefaultDesc": "Застосовує параметри лише коли цільовий шлях відсутній у вихідному payload.",
    "payloadRuleOverrideTitle": "__MISSING__:override",
    "payloadRuleOverrideDesc": "Примусово встановлює значення в payload, замінюючи все, що вже є за цим шляхом.",
    "payloadRuleFilterTitle": "__MISSING__:filter",
    "payloadRuleFilterDesc": "Видаляє заблоковані параметри з payload перед надсиланням провайдеру.",
    "payloadRuleDefaultRawTitle": "__MISSING__:defaultRaw",
    "payloadRuleDefaultRawDesc": "Як default, але рядкові значення спершу парсяться як JSON, де можливо. Застарілий ключ default-raw також приймається при збереженні.",
    "payloadEditorTitle": "Редактор",
    "payloadEditorDesc": "Використовуйте схему runtime: default, override, filter, defaultRaw. API також приймає застарілий ключ default-raw.",
    "payloadEditorReady": "Готово",
    "payloadResetInfo": "Редактор скинуто до нейтрального шаблону. Збережіть, щоб застосувати.",
    "payloadSaveSuccess": "Правила payload збережено й гаряче перезавантажено.",
    "payloadJsonParseError": "Помилка розбору JSON: {error}",
    "payloadMustBeObject": "Правила payload мають бути JSON-об'єктом.",
    "payloadInvalidJson": "Некоректний JSON у payload.",
    "payloadValidJsonRequired": "Правила payload мають бути коректним JSON перед збереженням.",
    "savePayloadRules": "Зберегти правила payload",
    "requestLimitsTitle": "Ліміти запитів",
    "requestLimitsDesc": "Налаштування глобальних лімітів запитів і захисту конкурентності.",
    "maxRequestSizeLabel": "Макс. розмір запиту (МБ)",
    "maxRequestSizeDesc": "Максимально дозволений розмір вхідних API-запитів.",
    "maxResponseSizeLabel": "Макс. розмір відповіді (МБ)",
    "maxResponseSizeDesc": "Максимально дозволений розмір вихідних API-відповідей.",
    "maxRequestTokensLabel": "Макс. токенів у запиті",
    "maxRequestTokensDesc": "Максимально дозволено токенів у одному запиті.",
    "maxResponseTokensLabel": "Макс. токенів у відповіді",
    "maxResponseTokensDesc": "Максимально дозволено токенів у одній відповіді.",
    "modelCooldownsTitle": "Моделі в процесі відновлення",
    "modelCooldownsEmpty": "Зараз немає моделей, які перебувають у відновленні.",
    "codexFastTierTitle": "Codex Fast Tier",
    "codexFastTierDesc": "Глобально ввести service_tier=пріоритет для запитів OpenAI Codex.",
    "codexFastTierHint": "Якщо ввімкнено, OmniRoute додає service_tier=priority до вихідних запитів Codex для підключень, у яких ще не вказано рівень. Пріоритетний рівень потребує ключа OpenAI Enterprise API або шляху ChatGPT-auth Codex; інші типи ключів отримають від OpenAI повідомлення про помилку рівня. Налаштування кожного підключення на сторінці постачальника Codex мають перевагу.",
    "codexFastTierSaveError": "Не вдалося оновити налаштування Codex Fast Tier",
    "codexFastTierTierLabel": "Рівень сервісу",
    "codexFastTierTierPriority": "Пріоритет",
    "codexFastTierTierFlex": "__MISSING__:Flex",
    "codexFastTierTierDefault": "За замовчуванням",
    "codexFastTierModelsLabel": "Моделі Fast-tier",
    "codexFastTierModelsHint": "Лише позначені моделі отримують service_tier, коли Fast Tier увімкнено.",
    "codexFastTierModelCheckbox": "Увімкнути Fast Tier для {model}",
    "claudeFastModeTitle": "Швидкий режим Клода",
    "claudeFastModeDesc": "Увімкнути для вибраних запитів Клода швидкий антропний режим (швидкість: \"швидко\").",
    "claudeFastModeHint": "Anthropic офіційно не підтримує швидкий режим для клієнтів у стилі SDK. Якщо ввімкнено, OmniRoute пересилає заголовок X-CPA-Force-Fast-Mode, щоб парна збірка CLIProxyAPI могла підробити точку входу. Лише перелічені моделі Opus перевіряються Anthropic на стороні клієнта. Рівень підписки, максимальний план і кредитний баланс у швидкому режимі все ще застосовуються на стороні сервера — Anthropic може повернути out_of_credits, навіть якщо перемикач увімкнено.",
    "claudeFastModeModelsLabel": "Застосовується до моделей ({count})",
    "claudeFastModeModelCheckbox": "Увімкнути швидкий режим для {model}",
    "claudeFastModeSaveError": "Не вдалося оновити налаштування швидкого режиму Claude",
    "authz": {
      "title": "Інвентар авторизації",
      "description": "5-рівнева класифікація маршрутів з живою політикою обходу. Перегляд показує повну таксономію; зміни вимагають повторного введення пароля керування.",
      "loading": "Завантаження інвентарю…",
      "loadError": "Не вдалося завантажити інвентар авторизації",
      "tier": {
        "LOCAL_ONLY": "Лише локально",
        "ALWAYS_PROTECTED": "Завжди захищено",
        "MANAGEMENT": "Керування",
        "CLIENT_API": "Клієнтський API",
        "PUBLIC": "Публічно"
      },
      "bypass": {
        "section": "Обхід для manage-області",
        "kill_switch": {
          "label": "Аварійний вимикач обходу",
          "desc": "Головний перемикач. Коли вимкнено, жоден префікс LOCAL_ONLY недоступний з не-loopback незалежно від списку префіксів."
        },
        "prefix": {
          "label": "Префікси, що піддаються обходу",
          "desc": "Префікси LOCAL_ONLY, до яких API-ключі manage-області (або сесії дашборда) можуть звертатися з не-loopback хостів.",
          "add": "Додати префікс",
          "placeholder": "__MISSING__:/api/mcp/v2/",
          "empty": "Префікси не налаштовано. Обхід фактично вимкнено."
        },
        "cli_tools_runtime_note": "Префікс із можливістю spawn. Заборонено на етапі компіляції; не може бути зроблено обхідним. Показано лише для читання."
      },
      "password": {
        "prompt": {
          "label": "Поточний пароль",
          "desc": "Підтвердіть, щоб застосувати зміни, що впливають на безпеку."
        },
        "placeholder": "Поточний пароль керування",
        "cancel": "Скасувати",
        "submit": "Застосувати"
      },
      "save": "Зберегти зміни",
      "saved": "Налаштування авторизації оновлено",
      "pending": "Незбережені зміни",
      "badge": {
        "bypassable": "З обходом через manage-область",
        "strict": "Строгий loopback",
        "auth_required": "Потрібна автентифікація",
        "public": "Публічно",
        "always_protected": "Завжди захищено",
        "spawn_capable": "Можливість spawn"
      },
      "error": {
        "PASSWORD_REQUIRED": "Для застосування цих змін потрібен поточний пароль.",
        "PASSWORD_MISMATCH": "Поточний пароль неправильний.",
        "INSUFFICIENT_SCOPE": "API-ключ не має manage-області.",
        "BYPASS_PREFIX_NOT_ALLOWED": "Один або декілька префіксів вказують на маршрути з можливістю spawn і не можуть бути обхідними.",
        "GENERIC": "Не вдалося оновити налаштування авторизації."
      }
    },
    "resilienceBaseCooldownLabel": "Базовий час відновлення",
    "scopeLabel": "Область застосування",
    "triggerLabel": "Тригер",
    "effectLabel": "Ефект",
    "statusEnabled": "Увімкнено",
    "statusDisabled": "Вимкнено",
    "resilienceRequestQueueScope": "За чергою запитів",
    "resilienceRequestQueueTrigger": "Перед відправленням наверх",
    "resilienceRequestQueueEffect": "Ставить запити в чергу, обмежує паралельність і розподіляє виклики",
    "resilienceRequestQueueDesc": "Цей рівень контролює лише чергування та темп. Він не зберігає перезарядки або розімкнуті вимикачі.",
    "resilienceAutoEnableApiKeyProvidersDesc": "Вмикає захист черги за замовчуванням для активних підключень ключа API.",
    "resilienceMaxQueueWait": "Максимальний час очікування в черзі",
    "resilienceConnectionCooldownScope": "Індивідуальне підключення",
    "resilienceConnectionCooldownTrigger": "Коли підключення повертає тимчасову помилку висхідного потоку",
    "resilienceConnectionCooldownEffect": "Тимчасово пропускає це з’єднання та збільшує час відстрочки у разі повторних збоїв",
    "resilienceConnectionCooldownDesc": "Базове відновлення охоплює тимчасові збої підключення. Коли ввімкнено підказки щодо повторної спроби вгорі, явне вікно постачальника замінює локальний час відновлення.",
    "resilienceUseUpstreamRetryHintsDesc": "Використовує значення повторної спроби/скидання від вихідного постачальника, якщо доступно.",
    "resilienceUseUpstream429BreakerHints": "Використовуйте підказки вище за течією 429 для перезарядки руйнівника",
    "resilienceUseUpstream429BreakerHintsShort": "Використовуйте підказки upstream 429",
    "resilienceUseUpstream429BreakerHintsDesc": "Застосуйте сигнали Retry-After / квоти вичерпано з 429 відповідей до тривалості відновлення автоматичного вимикача. За умовчанням використовується політика для кожного постачальника: прямі хмарні постачальники ввімкнено за умовчанням; за замовчуванням постачальники зворотного проксі-сервера, саморозміщені та підтримувані CLI вимкнені. Незалежно від \"Використовувати підказки щодо повторної спроби вгорі\".",
    "resilienceProviderBreakerScope": "Весь провайдер",
    "resilienceProviderBreakerTrigger": "Остаточні збої транспорту/сервера після того, як резервне підключення вичерпано",
    "resilienceProviderBreakerEffect": "Тимчасово блокує цього провайдера до закінчення часу скидання",
    "resilienceProviderBreakerDesc": "Стан живого розривника відображається лише на сторінці здоров’я. Обмеження швидкості 429, пов’язані з підключенням, залишаються в режимі відновлення з’єднання та не вимикають вимикач провайдера.",
    "resilienceResetTime": "Скинути час",
    "resilienceWaitForCooldownTitle": "Дочекайтеся перезарядки",
    "resilienceWaitForCooldownScope": "Поточний запит клієнта",
    "resilienceWaitForCooldownTrigger": "Коли всі можливі з’єднання вже охолонуть",
    "resilienceWaitForCooldownEffect": "Очікує на сервері та повторює спробу, коли закінчиться перше відновлення",
    "resilienceWaitForCooldownDesc": "Це стосується лише поточного запиту. Він не зберігає підключення або стан провайдера.",
    "resilienceEnableServerWait": "Увімкнути очікування на стороні сервера",
    "resilienceEnableServerWaitDesc": "Якщо ввімкнено, OmniRoute чекає, поки закінчиться перше відновлення, і автоматично повторює спробу.",
    "resilienceMaxAttempts": "Максимум спроб",
    "resilienceMaxWaitPerAttempt": "Максимальне очікування на спробу",
    "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
    "forcedFingerprintBadge": "Required",
    "codexSessionAffinityTitle": "Спорідненість сесії Codex",
    "codexSessionAffinityDesc": "Зберігає одну бесіду Codex в одному обліковому записі протягом такої кількості секунд. 0 вимикає його.",
    "codexSessionAffinityTtl": "Affinity TTL (секунди)",
    "resetAwareQuotaCacheTitle": "Кеш квот із підтримкою скидання",
    "resetAwareQuotaCacheDesc": "Кешує квоту телеметрії лише для порядку скидання. Квота попередньої перевірки все ще захищає запити. 0/0 продовжує завантаження в реальному часі.",
    "resetAwareQuotaCacheTtl": "Свіжий TTL (секунди)",
    "resetAwareQuotaCacheMaxStale": "Максимальний застарілий (секунди)",
    "qdrantCleanupSuccess": "Добре: вилучено {count} балів (утримання: {days} днів)",
    "qdrantCleanupFailed": "Помилка очищення",
    "qdrantCleanupError": "Помилка: {error}",
    "vercelRelaySuccess": "Vercel Relay розгорнуто успішно",
    "vercelRelayButton": "Розгорнути Vercel Relay",
    "vercelRelayModalTitle": "Розгорнути Vercel Relay",
    "vercelRelayWarning": "Увага: потрібен токен розгортання Vercel. Цей токен використовується лише для створення серверлес-релею та ніколи не зберігається OmniRoute.",
    "vercelRelayTokenLabel": "Токен доступу Vercel",
    "vercelRelayProjectNameLabel": "Назва проєкту Vercel",
    "vercelRelayFreeTierNote": "Релеї — це легкі проксі-ендпоінти, розгорнуті на безкоштовному рівні Vercel для обходу мережевих/регіональних обмежень.",
    "vercelRelayDeploying": "Розгортання...",
    "vercelRelayDeploy": "Розгорнути",
    "homePinProviderQuotaToHome": "Закріпити інформацію на головній сторінці",
    "homeProviderQuotaLimits": "Ліміти квот провайдерів",
    "homeProviderQuotaLimitsDesc": "Закріпити контейнер стану квот провайдерів (з кнопкою «Оновити все») вгорі головної сторінки.",
    "homeQuickStart": "Швидкий старт",
    "homeQuickStartDesc": "Показувати панель швидкого старту на головній сторінці.",
    "homeProviderTopology": "Топологія провайдерів",
    "homeProviderTopologyDesc": "Показувати топологію провайдерів на головній сторінці."
  },
  "contextRtk": {
    "title": "Двигун RTK",
    "description": "Стиснення з урахуванням команд для виводу інструментів, логів терміналу та результатів збірок.",
    "enabled": "Увімкнено",
    "intensity": "Інтенсивність",
    "intensityMinimal": "Мінімальна",
    "intensityStandard": "Стандартна",
    "intensityAggressive": "Агресивна",
    "toolResults": "Результати інструментів",
    "assistantMessages": "Повідомлення асистента",
    "codeBlocks": "Блоки коду",
    "filterCatalog": "Каталог фільтрів",
    "filterCatalogDesc": "Доступні вихідні фільтри за категоріями",
    "guidedConfig": "Конфігурація",
    "guidedConfigDesc": "Налаштуйте, як RTK фільтрує вихід вашого терміналу",
    "maxLines": "Макс. рядків",
    "maxChars": "Макс. символів",
    "deduplicateThreshold": "Порогове значення дедуплікатів",
    "customFilters": "Спеціальні фільтри",
    "detectedType": "Виявлений тип",
    "confidence": "впевненість",
    "beforeAfter": "До / Після",
    "trustProjectFilters": "Фільтри проекту Trust",
    "rawOutputRetention": "Збереження вихідних даних",
    "rawOutputNever": "Ніколи",
    "rawOutputFailures": "Невдачі",
    "rawOutputAlways": "Завжди",
    "rawOutputMaxBytes": "Максимальна кількість вихідних байтів",
    "filterTesting": "Тестування фільтрів",
    "pasteOutput": "Вставте вивід інструменту для тестування фільтрації...",
    "presetHigh": "Агресивний",
    "presetLow": "світло",
    "presetMaxChars": "Максимальна кількість вихідних символів",
    "presetMaxLines": "Макс вихідних ліній",
    "presetMedium": "Стандартний",
    "run": "Запустити",
    "result": "Результат",
    "previewEmpty": "Запустіть приклад, щоб переглянути вивід RTK.",
    "detected": "Виявлено",
    "masterSwitchOffAlert": "Головний перемикач Token Saver ВИМКНЕНО — ці налаштування не впливатимуть на запити, поки ви не ввімкнете його на сторінці Кінцеві точки.",
    "tokensFiltered": "Відфільтровано токенів",
    "filtersActive": "Активних фільтрів",
    "requests": "Запитів",
    "avgSavings": "Сер. економія",
    "simpleMode": "просто",
    "advancedMode": "Просунутий",
    "searchFilters": "Фільтри пошуку...",
    "tooltipDedup": "Як агресивно видалити повторювані рядки.",
    "tooltipMaxChars": "Максимальна кількість символів на вихідний блок.",
    "tooltipMaxLines": "Максимальна кількість рядків, які не потрібно виводити командою. Надлишки обрізаються."
  },
  "contextCombos": {
    "title": "Комбінації стиснення",
    "description": "Визначте, як двигуни комбінуються для різних сценаріїв маршрутизації.",
    "createCombo": "Створити комбінацію стиснення",
    "editCombo": "Редагувати",
    "deleteCombo": "Видалити",
    "deleteConfirm": "Видалити цю комбінацію стиснення?",
    "pipeline": "Конвеєр",
    "addStep": "Додати крок",
    "removeStep": "Прибрати",
    "name": "Назва",
    "descriptionField": "Опис",
    "languagePacks": "Мовні пакети",
    "outputMode": "Режим виводу",
    "assignToRouting": "Призначити до маршрутизаційних комбо",
    "noAssignments": "Немає доступних маршрутизаційних комбо",
    "default": "За замовчуванням",
    "setAsDefault": "Зробити стандартним",
    "save": "Зберегти",
    "cancel": "Скасувати",
    "enabled": "Увімкнено"
  },
  "contextCaveman": {
    "title": "Caveman Engine",
    "description": "Rule-based message compression, language packs, analytics and output mode controls.",
    "advancedConfig": "Розширена конфігурація",
    "advancedConfigDesc": "Точне налаштування стиснення",
    "aggressiveSettings": "Агресивні налаштування",
    "aggressiveSettingsDesc": "Максимальне стиснення з потенційними компромісами щодо якості",
    "requests": "Requests",
    "tokensSaved": "Tokens saved",
    "savingsPercent": "Savings %",
    "avgLatency": "Avg latency",
    "languagePacks": "Language Packs",
    "languagePacksDesc": "Enable compression rules for specific languages.",
    "labelAutoTrigger": "Автоматичне стиснення, коли контекст перевищує",
    "labelCompressionRate": "Міцність на стиск",
    "labelMaxTokens": "Цільові маркери на повідомлення",
    "labelMinLength": "Мінімальна довжина повідомлення",
    "labelMinSavings": "Мінімальна кількість токенів для збереження",
    "enabled": "Enabled",
    "autoDetect": "Auto-detect language",
    "rulesCount": "{count} rules",
    "inputCompressionTitle": "Стиснення входу",
    "inputCompressionDesc": "Переписує історію чату коротшими формулюваннями. Зменшує вхідні токени приблизно на 50%.",
    "analyticsTitle": "Compression Analytics",
    "noAnalytics": "No compression analytics yet.",
    "outputMode": "Режим виведення",
    "outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
    "outputModeTitle": "Output Mode",
    "quickSettings": "Швидкі налаштування",
    "quickSettingsDesc": "Основні налаштування стиснення для початку",
    "autoClarity": "Auto-Clarity Bypass",
    "bypassConditions": "Bypass conditions",
    "bypassConditionsList": "безпека, безповоротний, уточнення, чутливий до порядку",
    "simpleMode": "просто",
    "advancedMode": "Просунутий",
    "tooltipAutoTrigger": "Автоматично стискати, коли контекст перевищує цей розмір.",
    "tooltipCompressionRate": "0,0 = немає, 1,0 = максимум. 0,5 = збалансований.",
    "tooltipMaxTokens": "Цільова кількість токенів після стиснення. Нижче = більш агресивно.",
    "tooltipMinLength": "Коротші повідомлення не стискаються. Нижче = більше стиснення.",
    "tooltipMinSavings": "Стискайте лише якщо це зберігає принаймні таку кількість токенів.",
    "ultraSettings": "Ультра налаштування",
    "ultraSettingsDesc": "Семантичне стиснення на основі SLM",
    "preview": {
      "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
      "full": "Respond terse and compact. Preserve all technical substance.",
      "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
    }
  },
  "translator": {
    "title": "Перекладач",
    "metaTitle": "Ігровий майданчик для перекладачів | OmniRoute",
    "metaDescription": "Налагодження, тестування та візуалізація перекладів форматів API між постачальниками",
    "playgroundTitle": "Майданчик для перекладачів",
    "playground": "Дитячий майданчик",
    "realtime": "Переклад в реальному часі",
    "chatTester": "Тестер чату",
    "testBench": "Випробувальний стенд",
    "liveMonitor": "Живий монітор",
    "modeDescriptionPlayground": "Вставте будь-яке тіло запиту API та подивіться, як OmniRoute перекладає його між форматами постачальників (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
    "modeDescriptionChatTester": "Надсилайте реальні запити чату через OmniRoute та перевіряйте повний цикл: введення, перекладений запит, відповідь постачальника та перекладений вихід.",
    "modeDescriptionTestBench": "Виконуйте попередньо визначені сценарії та порівнюйте сумісність між постачальниками та моделями.",
    "modeDescriptionLiveMonitor": "Переглядайте події перекладу в режимі реального часу, коли запити надходять через OmniRoute.",
    "modeDescriptionFallback": "Налагоджуйте, тестуйте та візуалізуйте, як OmniRoute перекладає запити API між постачальниками.",
    "recentTranslations": "Останні переклади",
    "noTranslations": "Перекладів ще немає",
    "source": "Джерело",
    "target": "Цільова",
    "time": "час",
    "model": "Модель",
    "status": "Статус",
    "latency": "Затримка",
    "totalTranslations": "Загальні переклади",
    "successful": "Успішний",
    "errors": "Помилки",
    "avgLatency": "Середня затримка",
    "millisecondsShort": "{value}мс",
    "notAvailableSymbol": "—",
    "liveAutoRefreshing": "Live — Автоматичне оновлення",
    "paused": "Призупинено",
    "eventsAppearHint": "Події перекладу з’являються тут, коли запити проходять через OmniRoute. Використовуйте будь-який із цих методів для створення подій:",
    "chatTesterTab": "Вкладка Тестер чату",
    "testBenchTab": "Вкладка «Випробувальний стенд».",
    "externalApiCalls": "Зовнішні виклики API",
    "ideCliIntegrations": "Інтеграції IDE/CLI",
    "inMemoryNote": "Примітка. Події зберігаються в пам’яті та скидаються під час перезапуску сервера.",
    "ok": "добре",
    "errorShort": "ERR",
    "formatConverter": "Конвертер форматів",
    "formatConverterDescription": "Вставте або введіть тіло запиту JSON. Перекладач автоматично визначить вихідний формат і перетворить його на цільовий формат. Використовуйте це, щоб налагодити, як OmniRoute перекладає запити між форматами (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
    "translationPathHubSpoke": "{source} → OpenAI (середній) → {target}",
    "translationPathDirect": "{source} → {target} (прямий перекладач)",
    "translationPathPassthrough": "Той же формат — переклад не потрібен",
    "openaiIntermediatePanel": "OpenAI Intermediate",
    "autoFeaturesTitle": "Що OmniRoute робить автоматично",
    "autoFeaturesCount": "8 особливостей",
    "featureReasoningCache": "Кеш міркувань",
    "featureReasoningCacheDesc": "Повторно вставляє кешований reasoning_content для моделей режиму мислення (DeepSeek V4, Kimi K2, Qwen), коли клієнти пропускають його з історії розмов.",
    "featureSchemaCoercion": "Схема примусу",
    "featureSchemaCoercionDesc": "Виправляє зламані схеми інструментів: додає відсутні додаткові властивості, очищає довгі описи, нормалізує вкладені об’єкти.",
    "featureRoleNormalization": "Нормалізація ролі",
    "featureRoleNormalizationDesc": "Розробник карт→система для цілей, які не є OpenAI. Система карт→користувач для моделей, які не підтримують роль системи.",
    "featureToolCallIds": "Інструмент Call ID Normalization",
    "featureToolCallIdsDesc": "У разі відсутності генерує унікальні ідентифікатори tool_call. Нормалізується до 9-символьного формату для таких постачальників, як Mistral.",
    "featureMissingToolResponse": "Інструмент реагування Injection",
    "featureMissingToolResponseDesc": "Вставляє порожні повідомлення tool_result, коли клієнти надсилають tool_calls без відповідних відповідей.",
    "featureThinkingBudget": "Мислення про бюджет",
    "featureThinkingBudgetDesc": "Автоматично керує конфігурацією мислення. Видаляє параметри мислення, коли останнє повідомлення не від користувача.",
    "featureDirectPaths": "Шляхи прямого перекладу",
    "featureDirectPathsDesc": "Деякі пари форматів (Claude→Gemini) мають прямі перекладачі, які оминають концентратор OpenAI, створюючи більш точний вихід.",
    "featureImageMapping": "Відображення розміру зображення",
    "featureImageMappingDesc": "Перекладає угоди про розміри зображення між форматами API (наприклад, рівні деталізації OpenAI → розміри Gemini).",
    "input": "Введення",
    "output": "Вихід",
    "auto": "Авто",
    "swapFormats": "Поміняти місцями формати",
    "translateAction": "Перекласти",
    "clear": "ясно",
    "inputPlaceholder": "Вставте сюди текст запиту або виберіть шаблон нижче...",
    "exampleTemplates": "Приклади шаблонів",
    "exampleTemplatesHint": "— Натисніть, щоб завантажити",
    "templateLoadHint": "Шаблон завантажує запит у форматі {format}. Змініть вихідний формат для завантаження в іншому форматі.",
    "compatibilityTester": "Тестер сумісності",
    "compatibilityReport": "Звіт про сумісність",
    "testBenchDescription": "Запустіть попередньо визначені сценарії (простий чат, виклик інструментів тощо), щоб перевірити переклад і сумісність постачальника. Виберіть вихідний формат і цільового постачальника, а потім запустіть усі тести, щоб побачити відсоток сумісності. Використовуйте це, щоб дізнатися, які функції працюють у різних постачальників.",
    "targetProvider": "Цільовий постачальник",
    "runAllTests": "Виконайте всі тести",
    "runTest": "Запустити тест",
    "reRun": "Повторний запуск",
    "running": "Біг...",
    "passed": "пройшли",
    "failed": "не вдалося",
    "passedIconLabel": "✅ Пройшли",
    "chunks": "шматки",
    "scenarioSimpleChat": "Простий чат",
    "scenarioToolCalling": "Виклик інструменту",
    "scenarioMultiTurn": "Багатооборотний",
    "scenarioThinking": "Мислення",
    "scenarioSystemPrompt": "Системна підказка",
    "scenarioStreaming": "Потокове передавання",
    "templateNames": {
      "simple-chat": "Простий чат",
      "tool-calling": "Виклик інструменту",
      "multi-turn": "Багатооборотний",
      "thinking": "Мислення",
      "system-prompt": "Системна підказка",
      "streaming": "Потокове передавання",
      "vision": "Бачення",
      "schema-coercion": "Схема примусу"
    },
    "templateDescriptions": {
      "simple-chat": "Основне текстове повідомлення",
      "tool-calling": "Виклик функції/інструменту",
      "multi-turn": "Розмова з історією",
      "thinking": "Розширене мислення / міркування",
      "system-prompt": "Комплексна системна інструкція",
      "streaming": "Запит потокового передавання SSE",
      "vision": "Мультимодальний запит із введенням зображення",
      "schema-coercion": "Застосування схеми структурованого виведення / JSON"
    },
    "templatePayloads": {
      "simpleChat": {
        "system": "Ви корисний помічник.",
        "userGreeting": "Привіт! Як справи сьогодні?"
      },
      "toolCalling": {
        "userWeather": "Яка погода в Сан-Паулу?",
        "toolDescription": "Отримайте поточну погоду для певного місця",
        "cityNameDescription": "Назва міста"
      },
      "multiTurn": {
        "system": "Ви помічник кодування.",
        "userInitial": "Напишіть функцію для сортування масиву в Python.",
        "assistantExample": "Ось проста функція сортування:\n\n```пітон\ndef sort_array(arr):\n    повернути sorted(arr)\n```",
        "userFollowUp": "Тепер відсортуйте його в порядку спадання."
      },
      "thinking": {
        "question": "Чому дорівнює сума перших 100 простих чисел?"
      },
      "systemPrompt": {
        "systemInstruction": "Ви старший інженер програмного забезпечення, який спеціалізується на розподілених системах. Дайте короткі відповіді на запитання, використовуючи передовий досвід галузі. Завжди надавайте приклади коду, коли це необхідно. Форматуйте свої відповіді за допомогою розмітки.",
        "question": "Як реалізувати шаблон автоматичного вимикача?"
      },
      "streaming": {
        "prompt": "Розкажіть мені коротку історію про робота, який вчиться малювати."
      },
      "vision": {
        "system": "Ви помічник, який точно описує зображення.",
        "userPrompt": "Що зображено на цьому зображенні?",
        "imageUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/600px-PNG_transparency_demonstration_1.png"
      },
      "schemaCoercion": {
        "userPrompt": "Подивіться погоду в Токіо в метричних одиницях і включіть погодинну розбивку.",
        "toolDescription": "Отримайте прогноз погоди для міста зі структурованими параметрами.",
        "cityDescription": "Місто для запиту, напр. «Токіо» або «Нью-Йорк»."
      }
    },
    "openaiCompatibleLabel": "Сумісність з OpenAI",
    "anthropicCompatibleLabel": "Антропна сумісність",
    "noTemplateForFormat": "Немає шаблону для цього формату",
    "translationFailed": "Помилка перекладу: {error}",
    "pipelineDebugger": "Відладчик конвеєра",
    "translationPipeline": "Конвеєр перекладу",
    "pipelineVisualization": "Візуалізація трубопроводу",
    "pipelineVisualizationHint": "Надішліть повідомлення, щоб побачити, як ваш запит проходить через виявлення → переклад → виклик постачальника.",
    "chatTesterDescription": "Надсилайте повідомлення як певний клієнтський формат і перевіряйте кожен крок конвеєра перекладу.",
    "chatTesterFlow": "Запит клієнта → Виявлення формату → OpenAI Intermediate → Формат постачальника → Відповідь",
    "clickStepToInspect": "Натисніть будь-який крок, щоб перевірити дані на цьому етапі.",
    "clientFormat": "Формат клієнта",
    "provider": "Провайдер",
    "modelPlaceholder": "Виберіть або введіть назву моделі...",
    "sendMessageToSeePipeline": "Надішліть повідомлення, щоб побачити конвеєр перекладу",
    "chatMessageHintPrefix": "Ваше повідомлення буде відформатовано як a",
    "chatMessageHintSuffix": "запит, перекладений через конвеєр і надісланий вибраному постачальнику.",
    "youWithFormat": "Ви ({format})",
    "assistant": "помічник",
    "typeMessage": "Введіть повідомлення...",
    "send": "Надіслати",
    "clientRequest": "Запит клієнта",
    "clientRequestDescription": "Тіло запиту, як його надіслав би ваш клієнт",
    "formatDetected": "Виявлено формат",
    "formatDetectedDescription": "OmniRoute автоматично визначає формат API зі структури запиту",
    "openaiIntermediate": "OpenAI Intermediate",
    "openaiIntermediateDescription": "Усі формати спочатку нормалізуються до формату OpenAI (універсальний міст)",
    "providerFormat": "Формат постачальника",
    "providerFormatDescription": "Формат OpenAI перекладається на рідний формат постачальника",
    "providerResponse": "Відповідь постачальника",
    "providerResponseRawDescription": "Необроблена відповідь від API постачальника",
    "providerResponseSseDescription": "Необроблений потік SSE від API постачальника",
    "unexpectedError": "Сталася неочікувана помилка",
    "error": "Помилка",
    "errorMessage": "Помилка: {message}",
    "requestFailed": "Запит не виконано",
    "noTextExtracted": "(Текст не витягнуто)",
    "liveMonitorMemoryNote": "Події зберігаються в пам'яті та втрачаються при перезавантаженні.",
    "liveMonitorMemoryCapNote": "Максимально збережено 200 подій.",
    "eventSourcesLabel": "Джерела події:",
    "eventSourceTranslatorPage": "• Сторінка перекладача (тестер чату, тестовий стенд)",
    "eventSourceMainPipeline": "• Основний конвеєр запитів (трафік CLI/IDE/API)",
    "liveMonitorDescriptionPrefix": "Показує події перекладу, коли виклики API проходять через OmniRoute. Події надходять із буфера в пам'яті (скидається під час перезавантаження). використання",
    "liveMonitorDescriptionSuffix": "або виклики зовнішнього API для створення подій.",
    "streamTransformer": "Трансформатор потоку",
    "modeDescriptionStreamTransformer": "Запускайте потоки завершення чату SSE через трансформатор відповідей.",
    "streamTransformerTitle": "Відповіді Потоковий трансформатор",
    "streamTransformerDescription": "Вставте потік завершення чату SSE, запустіть його через трансформатор відповідей OmniRoute і перевірте передані події response.* перед підключенням клієнта.",
    "loadTextSample": "Завантажити зразок тексту",
    "loadToolSample": "Завантажити зразок виклику інструменту",
    "transformToResponses": "Перетворення на відповіді",
    "rawChatSseInput": "Необроблені завершення чату SSE",
    "transformedResponsesSse": "Transformed Responses API SSE",
    "noResultsYet": "Результатів ще немає",
    "transformedEvents": "Трансформовані події",
    "uniqueEventTypes": "Унікальні типи подій",
    "inputLines": "Вхідні рядки",
    "outputLines": "Вихідні лінії",
    "transformedEventTimeline": "Трансформована шкала подій",
    "transformerTimelineHint": "Запустіть трансформатор, щоб перевірити випущені події response.output_* по порядку.",
    "eventType": "Тип події",
    "eventPreview": "Попередній перегляд",
    "comboRouted": "Комбо маршрутизовано",
    "uniqueEndpoints": "Унікальні кінцеві точки",
    "routeDetails": "Деталі маршруту",
    "comboBadge": "комбо",
    "routeEndpointLabel": "Кінцева точка",
    "routeConnectionLabel": "Підключення",
    "scenarioVision": "Бачення (розуміння образів)",
    "scenarioSchemaCoercion": "Схема примусу (структурований вихід)",
    "techniques": "Техніки:"
  },
  "usage": {
    "title": "Використання",
    "loggerTab": "Лісоруб",
    "proxyTab": "Проксі",
    "budgetManagement": "Управління бюджетом",
    "budgetSaved": "Обмеження бюджету збережено",
    "budgetSaveFailed": "Не вдалося зберегти бюджет",
    "loadingBudgetData": "Завантаження даних бюджету...",
    "noApiKeysTitle": "Немає ключів API",
    "noApiKeysDescription": "Спочатку додайте ключі API, щоб установити обмеження бюджету.",
    "apiKey": "Ключ API",
    "todaysSpend": "Сьогоднішні витрати",
    "thisMonth": "Цей місяць",
    "setLimits": "Встановити обмеження",
    "dailyLimitUsd": "Денний ліміт (USD)",
    "monthlyLimitUsd": "Місячний ліміт (USD)",
    "warningThresholdPercent": "Порогове значення попередження (%)",
    "dailyLimitPlaceholder": "напр. 5.00",
    "monthlyLimitPlaceholder": "напр. 50,00",
    "warningThresholdPlaceholder": "80",
    "saveLimits": "Зберегти обмеження",
    "budgetOk": "Бюджет нормальний — залишилося {remaining}",
    "budgetExceeded": "Бюджет перевищено — запити можуть бути заблоковані",
    "totalRequests": "Всього запитів",
    "noDataYet": "Даних ще немає",
    "latency": "Затримка",
    "latencyP50": "стор.50",
    "latencyP95": "стор.95",
    "latencyP99": "стор.99",
    "promptCache": "Кеш підказок",
    "systemHealth": "Здоров'я системи",
    "entries": "Записи",
    "activeCount": "{count} активний",
    "openCircuitBreakersDetected": "Виявлено відкриті вимикачі",
    "hitRate": "Рейтинг попадань",
    "hitsMisses": "Попадання / промахи",
    "circuitBreakers": "Автоматичні вимикачі",
    "lockedIPs": "Заблоковані IP-адреси",
    "lockoutsAutoRefreshHint": "Блокування обмеження швидкості для кожної моделі • Автоматичне оновлення 10 с",
    "lockedCount": "{count, plural, one {# locked} other {# locked}}",
    "timeLeft": "Залишилося {time}",
    "howItWorks": "Як це працює",
    "howItWorksSubtitle": "Дізнайтеся, як оцінки підтверджують ваші відповіді LLM",
    "define": "Визначити",
    "defineStepDescription": "Створюйте тестові випадки з підказками введення та очікуваними критеріями виводу, використовуючи такі стратегії, як містить, регулярний вираз або точна відповідність.",
    "run": "бігти",
    "runStepDescription": "Виконуйте тестові випадки на кінцевих точках LLM через OmniRoute. Кожен випадок надсилається як справжній запит API.",
    "evaluate": "Оцініть",
    "evaluateStepDescription": "Відповіді порівнюються з очікуваними критеріями. Перегляньте відповідність/незадоволення для кожного випадку з показниками затримки та детальним відгуком.",
    "evalsStrategyContainsLabel": "Містить",
    "evalsStrategyExactLabel": "Точний збіг",
    "evalsStrategyRegexLabel": "__MISSING__:Regex",
    "evalsStrategyCustomLabel": "Своя логіка",
    "evalsStrategyContainsDescription": "Перевіряє, чи містить вивід LLM очікуваний підрядок.",
    "evalsStrategyExactDescription": "Перевіряє, чи вивід LLM точно дорівнює очікуваному значенню.",
    "evalsStrategyRegexDescription": "Валідує вивід LLM за регулярним виразом.",
    "evalsStrategyCustomDescription": "Користувацька логіка оцінювання (конфігурується через JSON).",
    "historyColumnSuiteName": "Назва набору",
    "historyColumnTarget": "Ціль",
    "historyColumnPassRate": "% успішних",
    "historyColumnAvgLatencyMs": "Сер. затримка",
    "historyColumnCreatedAt": "Виконано",
    "evalSuites": "Комплекти оцінювання",
    "evalSuitesHint": "Натисніть набір, щоб переглянути тестові випадки, а потім запустіть, щоб оцінити свої кінцеві точки LLM",
    "evalsLoading": "Завантаження eval suites...",
    "noEvalSuitesFound": "Eval Suites не знайдено",
    "noEvalSuitesDescription": "Комплекти Eval можна визначити через API або в коді. Вони перевіряють вихідні дані моделі на очікувані результати, використовуючи такі стратегії, як містять, регулярні вирази, точна відповідність і спеціальні функції.",
    "columnCase": "Справа",
    "columnStatus": "Статус",
    "columnLatency": "Затримка",
    "columnDetails": "Подробиці",
    "columnModel": "Модель",
    "columnStrategy": "Стратегія",
    "columnExpected": "Очікуваний",
    "statsSuites": "Люкс",
    "statsTestCases": "Тестові випадки",
    "statsModels": "Моделі",
    "statsCoverage": "Покриття",
    "statsStrategiesCount": "{count} стратегії",
    "evaluationStrategies": "Стратегії оцінювання",
    "modelsUnderTest": "Тестуються моделі",
    "searchSuitesPlaceholder": "Пошук комплектів...",
    "passSuffix": "пропуск",
    "casesCount": "{count, plural, one {# case} other {# cases}}",
    "runEval": "Запустіть Eval",
    "runAllSuites": "Запустити все",
    "runAllRunning": "Виконується все...",
    "runAllProgress": "Виконується {current}/{total}: {name}",
    "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
    "runAllCompleted": "Виконано {suites} пакетів — {passed} пройдено, {failed} не виконано",
    "runAllCompletedWithFailures": "Запустив {completed} пакетів; {failedSuites} не вдалося виконати",
    "runningProgress": "Виконується {current}/{total}...",
    "passRate": "прохідний бал",
    "summaryBreakdown": "{passed} пройдено · {failed} не виконано · {total} всього",
    "passedIconLabel": "✅ Пройшли",
    "failedIconLabel": "❌ Не вдалося",
    "resultPassed": "Пройшов",
    "resultFailed": "Не вдалося",
    "expandResult": "Розгорнути деталі результату",
    "collapseResult": "Згорнути деталі результату",
    "detailsContains": "Містить: \"{term}\"",
    "detailsRegex": "Регулярний вираз: {pattern}",
    "detailsExpected": "Очікується: \"{expected}\"",
    "expectedOutputLabel": "Очікуваний результат",
    "noResultsYet": "Результатів ще немає",
    "testCasesCount": "Тестові випадки ({count})",
    "noTestCasesDefined": "Тестових випадків не визначено",
    "runEvalHint": "Натисніть «Run Eval», щоб виконати всі кейси щодо вашої кінцевої точки LLM. Кожен тест надсилає реальний запит через OmniRoute.",
    "notifyNoTestCases": "Для цього набору тестів не визначено",
    "notifyAllCasesPassed": "Усі випадки {total} пройдено ✅",
    "notifySomeCasesFailed": "{passed}/{total} пройдено, {failed} не виконано",
    "notifyEvalRunFailed": "Помилка виконання Eval",
    "notifyEvalTitle": "Оцінка: {name}",
    "modelEvals": "Модельні оцінки",
    "evalsHeroDescription": "Протестуйте та перевірте свої кінцеві точки LLM, запустивши попередньо визначені пакети оцінок. Кожен набір містить тестові випадки, які надсилають реальні підказки через OmniRoute та порівнюють відповіді з очікуваними критеріями, допомагаючи вам виявити регресії, порівняти моделі та забезпечити якість відповіді між провайдерами.",
    "qualityValidation": "Перевірка якості",
    "modelComparison": "Порівняння моделей",
    "regressionDetection": "Виявлення регресії",
    "latencyBenchmarks": "Контрольні показники затримки",
    "modelLockouts": "Блокування моделі",
    "noLockouts": "Наразі немає заблокованих моделей",
    "activeSessions": "Активні сесії",
    "noSessions": "Немає активних сеансів",
    "sessionsHint": "Сеанси з’являються, коли запити надходять через проксі-сервер",
    "sessionsTrackedHint": "Відстежується через запит відбитків пальців • Автоматичне оновлення 5 с",
    "session": "Сесія",
    "age": "Вік",
    "requests": "Запити",
    "connection": "Підключення",
    "durationMillisecondsShort": "{value}мс",
    "durationSecondsShort": "{value}s",
    "durationMinutesShort": "{value}м",
    "durationHoursShort": "{value}h",
    "reasonSeparator": " - ",
    "notAvailableSymbol": "-",
    "providerLimits": "Обмеження постачальника",
    "noProviders": "Немає підключених постачальників",
    "connectProvidersForQuota": "Підключайтеся до постачальників за допомогою OAuth, щоб відстежувати обмеження квоти та використання API.",
    "accountsCount": "{count, plural, one {# account} other {# accounts}}",
    "filteredFromCount": "(відфільтровано з {count})",
    "autoRefresh": "Автооновлення",
    "refreshAll": "Оновити все",
    "loadingQuotas": "Завантаження...",
    "account": "Обліковий запис",
    "modelQuotas": "Модельні квоти",
    "lastUsed": "Останнє оновлення",
    "actions": "Дії",
    "refreshQuota": "Оновити квоту",
    "today": "Сьогодні",
    "tomorrow": "завтра",
    "dayTimeFormat": "{day}, {time}",
    "inDuration": "в {duration}",
    "notApplicable": "Н/Д",
    "rawPlanWithValue": "Необроблений план: {plan}",
    "noPlanFromProvider": "Без плану від провайдера",
    "noQuotaData": "Немає даних про квоти",
    "cardExpand": "Розгорнути",
    "cardCollapse": "Згорнути",
    "moreQuotas": "+{count} ще",
    "ungrouped": "Без групи",
    "viewFlat": "Список",
    "viewByEnvironment": "За середовищем",
    "noQuotaDataAvailable": "Немає даних про квоти",
    "noAccountsForTierFilter": "Не знайдено облікових записів для фільтра рівня",
    "tierAll": "всі",
    "tierEnterprise": "підприємство",
    "tierTeam": "команда",
    "tierBusiness": "Бізнес",
    "tierUltra": "Ультра",
    "tierPro": "Pro",
    "tierPlus": "Плюс",
    "tierFree": "безкоштовно",
    "tierLite": "__MISSING__:Lite",
    "tierUnknown": "Невідомий",
    "statTotal": "Усього",
    "statCritical": "Критично",
    "statAlert": "Тривога",
    "statHealthy": "Справно",
    "filterPurchaseTypeLabel": "Тип",
    "filterTierLabel": "Рівень",
    "purchaseAll": "Усі",
    "purchaseOauthSub": "Підписка",
    "purchaseOauthFree": "OAuth безкоштовно",
    "purchaseApiKey": "API-ключ",
    "creditsLabel": "Кредити",
    "creditBalanceHint": "Залишок балансу",
    "unlimitedLabel": "Без обмежень",
    "refreshing": "Оновлення...",
    "resetsIn": "Скидання через",
    "editCutoffs": "Редагувати обрізки",
    "forceRefresh": "Оновіть зараз",
    "suiteBuilderSaveFailed": "Failed to save suite",
    "clone": "Клон",
    "exportSuite": "Експорт",
    "importSuite": "Імпорт",
    "suiteExported": "Люкс експортовано",
    "suiteExportFailed": "Не вдалося експортувати пакет",
    "suiteImportReady": "Імпорт набору завантажено для перегляду",
    "suiteImportFailed": "Не вдалося імпортувати пакет",
    "suiteImportInvalid": "Недійсний JSON набору оцінок",
    "suiteBuilderCloneSuffix": "копія",
    "suiteBuilderImportedSuite": "Імпортна Люкс",
    "scorecardTitle": "Scorecard",
    "evalApiKey": "API Key",
    "scorecardPassRate": "Pass Rate",
    "targetTypeModel": "Model",
    "actualOutputLabel": "Actual Output",
    "evalTargetHint": "Select a model or combo to evaluate.",
    "suiteBuilderDeleted": "Suite deleted successfully",
    "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
    "nextResetUtc": "Наступне скидання (UTC)",
    "scorecardHint": "Aggregated pass rates across all evaluation suites.",
    "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
    "saving": "Saving",
    "suiteBuilderCaseModelLabel": "Model (optional)",
    "evalControlsTitle": "Evaluation Controls",
    "suiteBuilderEditTitle": "Edit Eval Suite",
    "suiteBuilderCaseStrategyLabel": "Validation Strategy",
    "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
    "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
    "evalCompareHint": "Optionally compare results against a second target.",
    "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
    "historyEmpty": "No evaluation history yet",
    "suiteBuilderUpdated": "Suite updated successfully",
    "resetInterval": "Reset Interval",
    "suiteBuilderCreateTitle": "Create Eval Suite",
    "activePeriodSpend": "Active Period Spend",
    "evalApiKeyHint": "Select which API key to use for evaluation requests.",
    "evalCompareOptional": "Compare (optional)",
    "suiteBuilderDeleteFailed": "Failed to delete suite",
    "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
    "scorecardCases": "Cases",
    "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
    "suiteBuilderCustomBadge": "Custom",
    "targetSuiteDefaults": "Suite defaults",
    "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
    "suiteBuilderNameLabel": "Suite Name",
    "scorecardSuites": "Suites",
    "evalCompareTarget": "Compare Target",
    "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
    "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
    "recentRunsTitle": "Recent Runs",
    "suiteBuilderCaseSystemPromptLabel": "System Prompt",
    "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
    "suiteBuilderCaseExpectedPlaceholderContains": "напр. визначення фібоначчі",
    "suiteBuilderCaseExpectedPlaceholderExact": "Вставте точну очікувану відповідь",
    "suiteBuilderCaseExpectedPlaceholderRegex": "напр. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
    "suiteBuilderCaseExpectedHintRegex": "Використовуйте регулярний вираз JavaScript без похилих рис.",
    "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
    "suiteBuilderAddCase": "Add Case",
    "cancel": "Cancel",
    "evalTarget": "Target",
    "suiteBuilderCaseNameLabel": "Case Name",
    "weeklyLimitUsd": "Weekly Limit (USD)",
    "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
    "suiteBuilderNameRequired": "Suite name is required",
    "suiteBuilderCaseUserPromptLabel": "User Prompt",
    "daily": "Daily",
    "resultErrorLabel": "Error",
    "suiteBuilderBuiltInBadge": "Built-in",
    "suiteBuilderCaseCardTitle": "Test Case",
    "suiteBuilderDuplicateCase": "дублікат",
    "weeklyLimitPlaceholder": "e.g. 50.00",
    "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
    "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
    "weekly": "Weekly",
    "runEvalRunning": "Running evaluation...",
    "delete": "Delete",
    "resetTimeUtc": "Reset Time (UTC)",
    "evalApiKeyAuto": "Auto (use default)",
    "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
    "targetComparisonTitle": "Target Comparison",
    "save": "Save",
    "suiteBuilderCreated": "Suite created successfully",
    "suiteLatestRuns": "Latest Runs",
    "suiteBuilderCaseExpectedLabel": "Expected Value",
    "historyLatency": "Latency",
    "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
    "targetTypeCombo": "Combo",
    "scorecardPassed": "Passed",
    "suiteBuilderCaseTagsLabel": "Tags",
    "suiteBuilderNewSuite": "New Suite",
    "notifyEvalLoadFailed": "Failed to load evaluation data",
    "notConfigured": "Not Configured",
    "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
    "intervalLabel": "Interval",
    "suiteBuilderCreateAction": "Create Suite",
    "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
    "suiteBuilderUpdatedAt": "Updated",
    "errorBadge": "Error",
    "suiteBuilderCasesTitle": "Test Cases",
    "edit": "Edit",
    "monthly": "Monthly",
    "suiteBuilderCasesRequired": "At least one test case is required",
    "weeklyLimitSummary": "Weekly budget limit summary",
    "suiteBuilderDescriptionLabel": "Description",
    "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
    "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
    "staleQuotaTooltip": "Last refresh failed — showing cached data",
    "quotaThresholdLabel": "Залишилося хв",
    "quotaCutoffsColumnHelp": "Зупинити запити, коли залишок квоти зменшиться до цього відсотка або нижче.",
    "quotaCutoffsButtonDefault": "За замовчуванням",
    "quotaCutoffsButtonHelp": "Відредагуйте мінімальні залишкові обмеження квоти для цього облікового запису.",
    "quotaCutoffsButtonDisabled": "Для цього облікового запису ще немає вікон квот.",
    "quotaCutoffsTitle": "Quota cutoffs for {name} ({provider})",
    "quotaCutoffsExplainer": "Override the minimum remaining quota percentage where this account stops being selected for each quota window. Залиште поле порожнім, щоб успадкувати постачальника за замовчуванням.",
    "quotaCutoffsDefaultHint": "Мінімальна кількість за умовчанням, що залишилася: {default}%",
    "quotaCutoffsResetAll": "Скинути все",
    "quotaCutoffsNoWindows": "Для цього облікового запису ще немає вікон квот.",
    "quotaThresholdInvalid": "Введіть ціле число від 0 до 100.",
    "budgetKpiToday": "Сьогодні",
    "budgetKpiThisMonth": "Цей місяць",
    "budgetKpiProjEom": "Проект EOM",
    "budgetKpiBlocked": "заблоковано",
    "budgetKpiAtRisk": "Під загрозою",
    "budgetKpiActiveKeys": "Активні ключі",
    "budgetSearchKeysPlaceholder": "Ключі пошуку...",
    "budgetSortPctUsed": "Сортування: % використано ↓",
    "budgetSortTodayDollar": "Сортувати: Сьогодні $ ↓",
    "budgetSortMonthDollar": "Сортувати: місяць $ ↓",
    "budgetSortNameAZ": "Сортувати: Ім'я (А–Я)",
    "budgetColDailyLim": "Щоденний лім",
    "budgetColMonthlyLim": "Місячний лім",
    "budgetColUsedPct": "використано %",
    "budgetLoading": "Завантаження…",
    "budgetNoKeysMatch": "Жоден ключ не відповідає фільтрам",
    "budgetLinearExtrapolation": "лінійна екстраполяція",
    "budgetThisMonthSoFar": "Цей місяць поки що",
    "budgetProjectedEndOfMonth": "Прогнозований кінець місяця",
    "budgetByProvider": "за провайдером",
    "budgetDailyDollar": "Щодня $",
    "budgetWeeklyDollar": "Щотижня $",
    "budgetMonthlyDollar": "Щомісячно $",
    "budgetWarnAtPct": "Попередити при %",
    "quotaAlerts": "Сповіщення про квоту",
    "quotaTableRefreshing": "⟳ Освіжає...",
    "noSpendLast30Days": "Немає витрат за останні 30 днів",
    "updatedShort": "Оновлено",
    "lastRefreshed": "Останнє оновлення",
    "providerQuota": "Квота провайдера",
    "providerQuotaHomeHint": "Стан у реальному часі за підключеними акаунтами"
  },
  "modals": {
    "waitingAuth": "Очікування авторизації",
    "verificationUrl": "URL перевірки",
    "yourCode": "Ваш код",
    "remoteAccess": "Віддалений доступ:",
    "connectedSuccess": "Підключено успішно!",
    "connectionFailed": "Збій підключення",
    "chooseAuthMethod": "Виберіть метод автентифікації:",
    "awsBuilderId": "Ідентифікатор AWS Builder",
    "awsIamIdentity": "Центр ідентифікації AWS IAM",
    "googleAccount": "Обліковий запис Google",
    "githubAccount": "Обліковий запис GitHub",
    "importToken": "Імпорт маркера",
    "pasteToken": "Вставте маркер оновлення з Kiro IDE.",
    "awsRegion": "Регіон AWS",
    "autoDetecting": "Автоматичне визначення токенів...",
    "readingFromCache": "Читання з кешу AWS SSO",
    "readingFromCursor": "Читання з бази даних Cursor IDE",
    "initializing": "Ініціалізація...",
    "pricingConfig": "Конфігурація ціни",
    "loadingPricing": "Завантаження даних про ціни...",
    "pricingRatesFormat": "Формат ціноутворення",
    "noPricingData": "Немає даних про ціни",
    "noModelsFound": "Моделі не знайдено"
  },
  "loggers": {
    "allProviders": "Усі постачальники",
    "allModels": "Всі моделі",
    "allAccounts": "Усі облікові записи",
    "allApiKeys": "Усі ключі API",
    "allTypes": "Всі типи",
    "allLevels": "Всі рівні",
    "modelAZ": "Модель A-Z",
    "modelZA": "Модель Z-A",
    "loadingLogs": "Завантаження журналів...",
    "loadingProxyLogs": "Завантаження журналів проксі...",
    "noLogEntries": "Записів у журналі не знайдено",
    "noPayloadData": "Для цього запису журналу немає даних про корисне навантаження.",
    "proxyEvent": "Проксі-подія",
    "proxy": "Проксі",
    "level": "Рівень",
    "directNative": "Прямий (рідний)",
    "combo": "комбо",
    "inputTokens": "Я:",
    "outputTokens": "О:"
  },
  "stats": {
    "usageOverview": "Огляд використання",
    "outputTokens": "Вихідні жетони",
    "totalCost": "Загальна вартість",
    "usageByModel": "Використання за моделлю",
    "usageByAccount": "Використання обліковим записом",
    "failedToLoad": "Не вдалося завантажити статистику використання.",
    "tokenHealth": "Токен здоров'я",
    "totalOAuth": "Загальний OAuth",
    "healthy": "Здоровий",
    "warning": "Попередження",
    "errored": "Помилка",
    "lastCheck": "Остання перевірка",
    "noData": "Немає даних",
    "share": "Поділіться",
    "unableToLoad": "Не вдалося завантажити системні показники",
    "product": "Продукт",
    "resources": "Ресурси",
    "company": "Компанія"
  },
  "auth": {
    "welcome": "Ласкаво просимо",
    "signIn": "Увійдіть",
    "enterPassword": "Введіть свій пароль, щоб продовжити",
    "password": "Пароль",
    "unifiedProxy": "Unified AI API Proxy",
    "unifiedAiApiProxy": "Unified AI API Proxy",
    "unifiedAiApiProxyDesc": "Направляйте запити до кількох постачальників штучного інтелекту через одну кінцеву точку. Вбудоване балансування навантаження, відновлення після відмови та відстеження використання.",
    "passwordNotEnabled": "Захист паролем не ввімкнено",
    "loading": "Завантаження...",
    "invalidPassword": "Недійсний пароль",
    "errorOccurredRetry": "Сталася помилка. Спробуйте ще раз.",
    "configureInstance": "Давайте налаштуємо ваш екземпляр OmniRoute",
    "runOnboardingWizard": "Запустіть майстер адаптації, щоб налаштувати пароль і підключити свого першого постачальника AI.",
    "startOnboarding": "Почніть адаптацію",
    "secureYourInstance": "Захистіть свій екземпляр",
    "setPasswordDescription": "Встановіть пароль, щоб захистити свою інформаційну панель і кінцеві точки API від несанкціонованого доступу.",
    "configurePassword": "Налаштувати пароль",
    "continue": "Продовжити",
    "windowWillClose": "Це вікно закриється автоматично...",
    "closeTabNow": "Ви можете закрити цю вкладку зараз.",
    "copyUrlManual": "Скопіюйте URL-адресу з адресного рядка та вставте її в додаток.",
    "accessDeniedDescription": "Ви не маєте дозволу на доступ до цього ресурсу. Перевірте свій ключ API або зверніться до адміністратора.",
    "goToDashboard": "Перейдіть на інформаційну панель",
    "featureMultiProviderTitle": "Багатопровайдер",
    "featureMultiProviderDesc": "OpenAI, Anthropic, Google тощо",
    "featureLoadBalancingTitle": "Балансування навантаження",
    "featureLoadBalancingDesc": "Розповсюджуйте запити розумно",
    "featureUsageTrackingTitle": "Відстеження використання",
    "featureUsageTrackingDesc": "Відстежуйте витрати та токени",
    "resetPassword": "Скинути пароль",
    "resetDescription": "Виберіть спосіб відновлення доступу до інформаційної панелі",
    "stopServer": "Зупиніть роботу сервера OmniRoute",
    "processing": "Обробка...",
    "pleaseWait": "Зачекайте, поки ми завершимо авторизацію.",
    "authSuccess": "Авторизація успішна!",
    "copyUrl": "Скопіюйте цей URL",
    "accessDenied": "Доступ заборонено",
    "methodCliTitle": "Спосіб 1: Скидання CLI",
    "methodCliDescription": "Виконайте таку команду на сервері, де запущено OmniRoute:",
    "methodCliHint": "Вам буде запропоновано встановити новий пароль. Спочатку потрібно зупинити сервер.",
    "methodManualTitle": "Спосіб 2: Ручне скидання",
    "methodManualDescription": "Видаліть пароль з бази даних і встановіть новий під час запуску:",
    "setPasswordInYour": "Встановіть новий пароль у своєму",
    "fileLabelSuffix": "файл:",
    "newPasswordPlaceholder": "ваш_новий_пароль",
    "deleteSettingsFile": "Видалити",
    "orRemovePasswordHashField": "або видаліть поле passwordHash",
    "restartServerWithNewPassword": "Перезапустіть сервер - він використовуватиме новий пароль",
    "backToLogin": "Назад до входу",
    "forgotPassword": "Забули пароль?",
    "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
    "Authorization": "Авторизація",
    "Content-Disposition": "Зміст-диспозиція",
    "waitingForAuthorization": "Очікування авторизації...",
    "waitingForGoogleAuthorization": "Очікування авторизації Google...",
    "waitingForOpenAIAuthorization": "Очікування авторизації OpenAI...",
    "waitingForAntigravityAuthorization": "Очікування авторизації Antigravity...",
    "waitingForQoderAuthorization": "Очікування авторизації Qoder...",
    "exchangingCodeForTokens": "Обмін коду на токени...",
    "nodeIncompatibleTitle": "Incompatible Node.js Version",
    "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
    "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
    "nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS), 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended."
  },
  "landing": {
    "brandName": "OmniRoute",
    "navigateHome": "Перейти до дому",
    "toggleMenu": "Переключити меню",
    "featuresLink": "особливості",
    "docsLink": "документи",
    "github": "GitHub",
    "versionLive": "версія 1.0 вже доступна",
    "oneEndpoint": "Одна кінцева точка для",
    "allProviders": "Усі постачальники AI",
    "heroDescription": "Проксі-сервер кінцевої точки штучного інтелекту з веб-панеллю – порт JavaScript для CLIProxyAPI. Бездоганно працює з Claude Code, OpenAI Codex, Cline, RooCode та іншими інструментами CLI.",
    "getStarted": "Почніть роботу",
    "viewOnGithub": "Переглянути на GitHub",
    "powerfulFeatures": "Потужні функції",
    "featuresSubtitle": "Все, що вам потрібно для керування інфраструктурою штучного інтелекту в одному місці, створеному для масштабування.",
    "featureUnifiedEndpointTitle": "Уніфікована кінцева точка",
    "featureUnifiedEndpointDesc": "Доступ до всіх постачальників через єдину стандартну URL-адресу API.",
    "featureEasySetupTitle": "Легке налаштування",
    "featureEasySetupDesc": "Почніть працювати за лічені хвилини за допомогою команди npx.",
    "featureModelFallbackTitle": "Запасна модель",
    "featureModelFallbackDesc": "Автоматично перемикайте постачальників у разі збою або великої затримки.",
    "featureUsageTrackingTitle": "Відстеження використання",
    "featureUsageTrackingDesc": "Детальна аналітика та моніторинг витрат для всіх моделей.",
    "featureOAuthApiKeysTitle": "Ключі OAuth і API",
    "featureOAuthApiKeysDesc": "Безпечно керуйте обліковими даними в одному сховищі.",
    "featureCloudSyncTitle": "Хмарна синхронізація",
    "featureCloudSyncDesc": "Миттєво синхронізуйте конфігурації на всіх пристроях.",
    "featureCliSupportTitle": "Підтримка CLI",
    "featureCliSupportDesc": "Працює з Claude Code, Codex, Cline, Cursor тощо.",
    "featureDashboardTitle": "Приладова панель",
    "featureDashboardDesc": "Візуальна інформаційна панель для аналізу трафіку в реальному часі.",
    "howItWorks": "Як працює OmniRoute",
    "howItWorksDescription": "Дані безперешкодно передаються від вашої програми через наш інтелектуальний рівень маршрутизації до найкращого постачальника для роботи.",
    "howItWorksStep1Title": "1. CLI & SDK",
    "howItWorksStep1Description": "Ваші запити починаються з ваших улюблених інструментів або нашого єдиного SDK. Просто змініть базову URL-адресу.",
    "howItWorksStep2Title": "2. OmniRoute Hub",
    "howItWorksStep2Description": "Наш механізм аналізує запит, перевіряє працездатність постачальника та маршрути для найменшої затримки або вартості.",
    "howItWorksStep3Title": "3. Постачальники AI",
    "howItWorksStep3Description": "Запит виконується OpenAI, Anthropic, Gemini або іншими миттєво.",
    "getStartedIn30Seconds": "Почніть роботу за 30 секунд",
    "getStartedDescription": "Встановіть OmniRoute, налаштуйте своїх провайдерів за допомогою веб-панелі та почніть маршрутизувати запити ШІ.",
    "installOmniRoute": "Встановіть OmniRoute",
    "installStepDescription": "Виконайте команду npx, щоб миттєво запустити сервер",
    "openDashboard": "Відкрийте інформаційну панель",
    "openDashboardStepDescription": "Налаштуйте провайдерів і ключі API через веб-інтерфейс",
    "routeRequests": "Запити на маршрут",
    "routeRequestsStepDescription": "Спрямуйте свої інструменти CLI на {endpoint}",
    "terminal": "термінал",
    "copy": "Копія",
    "copied": "✓ Скопійовано",
    "startingOmniRoute": "Запуск OmniRoute...",
    "serverRunningOnLabel": "Сервер працює",
    "dashboardLabel": "Приладова панель",
    "readyToRoute": "Готовий до маршруту! ✓",
    "configureProvidersNote": "📝 Налаштуйте постачальників на інформаційній панелі або використовуйте змінні середовища",
    "dataLocation": "Розташування даних:",
    "dataLocationMacLinux": " macOS/Linux:",
    "dataLocationWindows": " Windows:",
    "product": "Продукт",
    "dashboardLink": "Приладова панель",
    "changelog": "Журнал змін",
    "resources": "Ресурси",
    "documentation": "Документація",
    "npm": "НПМ",
    "legal": "юридичний",
    "mitLicense": "Ліцензія MIT",
    "footerTagline": "Уніфікована кінцева точка для створення ШІ. З легкістю підключайтеся, маршрутизуйте та керуйте своїми постачальниками AI.",
    "copyright": "© {year} OmniRoute. Всі права захищені.",
    "flowToolClaudeCode": "Клод Код",
    "flowToolOpenAICodex": "Кодекс OpenAI",
    "flowToolCline": "Клайн",
    "flowToolCursor": "Курсор",
    "flowProviderOpenAI": "OpenAI",
    "flowProviderAnthropic": "Антропний",
    "flowProviderGemini": "Близнюки",
    "flowProviderGithubCopilot": "Копілот GitHub",
    "interactiveDiagram": "Інтерактивна діаграма, видима на робочому столі",
    "ctaTitle": "Готові спростити інфраструктуру ШІ?",
    "ctaDescription": "Приєднуйтесь до розробників, які оптимізують свою інтеграцію ШІ за допомогою OmniRoute. З відкритим вихідним кодом і безкоштовно.",
    "startFree": "Почніть безкоштовно",
    "readDocumentation": "Прочитайте документацію"
  },
  "docs": {
    "title": "Документація",
    "quickStart": "Швидкий старт",
    "deploymentGuides": "Посібники з розгортання",
    "features": "особливості",
    "supportedProviders": "Підтримувані постачальники",
    "supportedProvidersToc": "Провайдери",
    "commonUseCases": "Загальні випадки використання",
    "clientCompatibility": "Сумісність клієнта",
    "protocolsToc": "Protocols",
    "apiReference": "Довідник API",
    "managementApiReference": "Management API Reference",
    "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
    "method": "метод",
    "path": "шлях",
    "notes": "Примітки",
    "modelPrefixes": "Префікси моделей",
    "prefix": "Префікс",
    "troubleshooting": "Усунення несправностей",
    "supportsChat": "Підтримує кінцеві точки чату та відповідей.",
    "oauthAutoRefresh": "З’єднання OAuth із автоматичним оновленням маркера.",
    "fullStreaming": "Повна підтримка потокового передавання для всіх моделей.",
    "docsLabel": "документи",
    "docsHeroDescription": "Штучний шлюз для LLM із кількома постачальниками. Одна кінцева точка для OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor та ще понад 20 постачальників.",
    "openDashboard": "Відкрийте інформаційну панель",
    "endpointPage": "Сторінка кінцевої точки",
    "github": "GitHub",
    "reportIssue": "Повідомити про проблему",
    "onThisPage": "На цій сторінці",
    "documentationVersion": "Документація - v{version}",
    "quickStartStep1Title": "1. Встановіть і запустіть",
    "quickStartStep1Prefix": "бігти",
    "quickStartStep1Middle": "або клонуйте з GitHub і запустіть",
    "quickStartStep2Title": "2. Створіть ключ API",
    "quickStartStep2Text": "Перейдіть до Кінцева точка -> Зареєстровані ключі. Згенеруйте один ключ для кожного середовища.",
    "quickStartStep3Title": "3. Підключити провайдерів",
    "quickStartStep3Text": "Додайте облікові записи постачальників за допомогою входу OAuth, ключа API або безкоштовного автоматичного підключення.",
    "quickStartStep4Title": "4. Встановіть базову URL-адресу клієнта",
    "quickStartStep4Prefix": "Наведіть свій клієнт IDE або API на",
    "quickStartStep4Suffix": "Використовуйте, наприклад, префікс провайдера",
    "deploySetupTitle": "Посібник із налаштування",
    "deploySetupText": "Step-by-step installation, environment configuration, and first-run walkthrough for OmniRoute.",
    "deployElectronTitle": "Електронний робочий стіл",
    "deployElectronText": "Run OmniRoute as a native desktop application on Windows, macOS, and Linux.",
    "deployDockerTitle": "Докер",
    "deployDockerText": "Контейнерне розгортання з Docker Compose; готові до виробництва стеки та Kubernetes.",
    "deployVmTitle": "Віртуальна машина",
    "deployVmText": "Саморозміщення на будь-якій віртуальній машині Linux. Includes systemd unit, log rotation, and backup tooling.",
    "deployFlyTitle": "Fly.io",
    "deployFlyText": "Deploy to Fly.io edge runtime with one fly.toml and a single deploy command.",
    "deployPwaTitle": "PWA",
    "deployPwaText": "Install OmniRoute as a Progressive Web App on Android, iOS, and desktop browsers.",
    "deployTermuxTitle": "Termux (Android)",
    "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
    "featureRoutingTitle": "Маршрутизація з кількома провайдерами",
    "featureRoutingText": "Направляйте запити до 30+ постачальників штучного інтелекту через єдину кінцеву точку, сумісну з OpenAI. Підтримує чат, відповіді, аудіо та API зображень.",
    "featureCombosTitle": "Комбо і балансування",
    "featureCombosText": "Створюйте комбіновані моделі з резервними ланцюжками та стратегіями балансування: циклічні, пріоритетні, випадкові, найменш використовувані та оптимізовані за витратами.",
    "featureUsageTitle": "Відстеження використання та витрат",
    "featureUsageText": "Підрахунок токенів у реальному часі, розрахунок вартості для кожного постачальника/моделі та детальна розбивка використання за ключем API та обліковим записом.",
    "featureAnalyticsTitle": "Інформаційна панель Analytics",
    "featureAnalyticsText": "Візуальна аналітика з діаграмами для запитів, токенів, помилок, затримок, витрат і популярності моделі з часом.",
    "featureHealthTitle": "Моніторинг здоров'я",
    "featureHealthText": "Перевірки працездатності в реальному часі, статус постачальника, стани автоматичного вимикача та автоматичне виявлення обмеження швидкості з експоненціальним відстрочкою.",
    "featureCliTitle": "Інструменти CLI",
    "featureCliText": "Керуйте конфігураціями IDE, експортуйте/імпортуйте резервні копії, виявляйте профілі Codex і налаштовуйте параметри з інформаційної панелі.",
    "featureSecurityTitle": "Безпека та політика",
    "featureSecurityText": "Автентифікація ключа API, IP-фільтрація, захист від оперативного ін’єкції, політики домену, керування сеансами та журнал аудиту.",
    "featureCloudSyncTitle": "Хмарна синхронізація",
    "featureCloudSyncText": "Синхронізуйте свою конфігурацію з Cloudflare Workers для віддаленого доступу із зашифрованими обліковими даними та автоматичним відновленням після відмови.",
    "providersAcrossConnectionTypes": "{count} постачальників у трьох типах підключення.",
    "manageProviders": "Керувати постачальниками",
    "providersCount": "{count} постачальників",
    "providerTypeFree": "Вільний рівень",
    "providerTypeOAuth": "OAuth",
    "providerTypeApiKey": "Ключ API",
    "useCaseSingleEndpointTitle": "Єдина кінцева точка для багатьох постачальників",
    "useCaseSingleEndpointText": "Направляйте клієнтам одну базову URL-адресу та маршрут за префіксом моделі (наприклад: gh/, cc/, kr/, openai/).",
    "useCaseFallbackTitle": "Відкат і перемикання моделей за допомогою комбо",
    "useCaseFallbackText": "Створюйте комбіновані моделі на інформаційній панелі та зберігайте конфігурацію клієнта стабільною, поки постачальники змінюють внутрішню ротацію.",
    "useCaseUsageVisibilityTitle": "Використання, вартість і видимість налагодження",
    "useCaseUsageVisibilityText": "Відстежуйте токени та вартість за постачальником, обліковим записом і ключем API на вкладках «Використання» та «Аналітика».",
    "clientCherryStudioTitle": "Вишнева студія",
    "baseUrlLabel": "Базовий URL",
    "chatEndpointLabel": "Кінцева точка чату",
    "modelRecommendationLabel": "Рекомендована модель: явний префікс",
    "clientCodexTitle": "Моделі Codex / GitHub Copilot",
    "clientCodexBullet1": "Використовуйте ідентифікатори моделі з",
    "clientCodexBullet2": "Моделі сімейства Codex авто-маршрут до",
    "clientCodexBullet3": "Моделі, що не належать до Codex, продовжуються",
    "clientCursorTitle": "Курсор IDE",
    "clientCursorBullet1": "використання",
    "clientCursorBullet1Suffix": "префікс для моделей Cursor.",
    "clientCursorBullet2": "Підключення OAuth - вхід зі сторінки постачальників.",
    "clientClaudeTitle": "Клод Код / Антигравітація",
    "clientClaudeBullet1Prefix": "використання",
    "clientClaudeBullet1Middle": "(Клод) або",
    "clientClaudeBullet1Suffix": "(Антигравітація) префікс.",
    "clientWindsurfTitle": "Віндсерфінг",
    "clientWindsurfBullet1": "Use OmniRoute as an OpenAI-compatible base URL and keep explicit provider prefixes for deterministic routing.",
    "clientWindsurfBullet2": "Point models to `/v1/chat/completions` for general traffic and preserve `/v1/responses` for Codex-style flows.",
    "clientWindsurfBullet3": "Використовуйте Інформаційну панель -> Інструменти CLI, щоб отримати готовий посібник з налаштування Windsurf.",
    "clientClineTitle": "Клайн",
    "clientClineBullet1": "Cline works best with explicit provider/model prefixes so the router never has to guess the backend.",
    "clientClineBullet2": "Use `/v1/chat/completions` for general models and reuse the same OmniRoute base URL across different accounts.",
    "clientClineBullet3": "Use the Providers dashboard to validate OAuth/API key before debugging Cline runtime issues.",
    "clientKimiTitle": "Кодування Кімі",
    "clientKimiBullet1": "Використовуйте OmniRoute як стабільну базову URL-адресу під час ротації облікових записів або комбінацій провайдерів.",
    "clientKimiBullet2": "Віддавайте перевагу префіксованим моделям у потоках кодування, щоб резервний і контрольний слід залишався явним.",
    "clientKimiBullet3": "Використовуйте `/v1/responses`, якщо вам потрібна власна маршрутизація у стилі відповідей для клієнтів, що використовують інструменти.",
    "protocolsTitle": "Protocols: MCP & A2A",
    "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
    "protocolMcpTitle": "MCP (Model Context Protocol)",
    "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
    "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
    "protocolMcpStep2": "Point your MCP client to stdio transport.",
    "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
    "protocolA2aTitle": "A2A (Agent2Agent)",
    "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
    "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
    "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
    "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
    "protocolTroubleshootingTitle": "Protocol Troubleshooting",
    "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
    "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
    "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
    "endpointChatNote": "Кінцева точка чату, сумісна з OpenAI (за замовчуванням).",
    "endpointResponsesNote": "Кінцева точка API відповідей (Codex, o-series).",
    "endpointModelsNote": "Каталог моделей для всіх підключених провайдерів.",
    "endpointAudioNote": "Транскрипція аудіо (Deepgram, AssemblyAI).",
    "endpointSpeechNote": "Синтез мовлення (ElevenLabs, OpenAI TTS).",
    "endpointEmbeddingsNote": "Генерація вбудованого тексту (OpenAI, Cohere, Voyage).",
    "endpointImagesNote": "Генерація зображення (NanoBanana).",
    "endpointRewriteChatNote": "Помічник перезапису для клієнтів без /v1.",
    "endpointRewriteResponsesNote": "Переписати помічник для відповідей без /v1.",
    "endpointRewriteModelsNote": "Переписати помічник для виявлення моделі без /v1.",
    "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
    "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
    "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
    "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
    "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
    "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
    "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
    "modelPrefixesDescriptionStart": "Використовуйте префікс постачальника перед назвою моделі, щоб маршрутизувати до певного постачальника. приклад:",
    "modelPrefixesDescriptionEnd": "маршрути до GitHub Copilot.",
    "provider": "Провайдер",
    "type": "Тип",
    "troubleshootingModelRouting": "Якщо клієнту не вдається виконати модель маршрутизації, використовуйте явний постачальник/модель (наприклад: gh/gpt-5.1-codex).",
    "troubleshootingAmbiguousModels": "Якщо ви отримуєте неоднозначні помилки моделі, виберіть префікс постачальника замість простого ідентифікатора моделі.",
    "troubleshootingCodexFamily": "Для моделей сімейства GitHub Codex збережіть модель як gh/codex-model; маршрутизатор вибирає /відповідає автоматично.",
    "troubleshootingTestConnection": "Перед тестуванням із IDE або зовнішніх клієнтів скористайтеся інструментальною панеллю > Постачальники > Перевірити з’єднання.",
    "troubleshootingCircuitBreaker": "Якщо постачальник показує, що автоматичний вимикач розімкнуто, дочекайтеся охолодження або подробиці перевірте на сторінці «Стан».",
    "troubleshootingOAuth": "Для постачальників OAuth повторна автентифікація, якщо термін дії маркерів закінчився. Перевірте індикатор стану картки провайдера.",
    "endpointCompletionsNote": "Застаріла кінцева точка завершення для створення тексту.",
    "endpointModerationsNote": "Модерація контенту та класифікація безпеки.",
    "endpointRerankNote": "Переранжування документів для генерації з доповненим пошуком (Cohere, Jina).",
    "endpointSearchNote": "Веб-пошук із 5 провайдерами (Serper, Brave, Exa, Tavily, Perplexity).",
    "endpointSearchAnalyticsNote": "Аналітика та показники для пошукових запитів.",
    "endpointVideoNote": "Генерація відео (робочі процеси ComfyUI, SD WebUI).",
    "endpointMusicNote": "Створення музики через робочі процеси ComfyUI.",
    "endpointMessagesNote": "Кінцева точка антропних повідомлень.",
    "endpointCountTokensNote": "Підрахувати маркери для даного корисного навантаження повідомлення.",
    "endpointFilesNote": "Завантаження файлів для мультимодальних вводів.",
    "endpointBatchesNote": "Пакетна обробка масових запитів API.",
    "endpointWsNote": "Кінцева точка WebSocket для потокового передавання в реальному часі.",
    "mgmtProvidersListNote": "Список усіх зареєстрованих підключень провайдера.",
    "mgmtProvidersCreateNote": "Створіть нове підключення провайдера.",
    "mgmtProvidersUpdateNote": "Оновіть наявне підключення до постачальника.",
    "mgmtProvidersDeleteNote": "Видалити підключення провайдера.",
    "mgmtProvidersTestNote": "Перевірте підключення та автентифікацію для постачальника.",
    "mgmtProvidersModelsNote": "Список доступних моделей для конкретного постачальника.",
    "mgmtSettingsGetNote": "Отримати поточні налаштування програми.",
    "mgmtSettingsUpdateNote": "Оновити налаштування програми.",
    "mgmtPayloadRulesGetNote": "Отримати правила перетворення корисного навантаження.",
    "mgmtPayloadRulesUpdateNote": "Оновити правила перетворення корисного навантаження.",
    "mcpToolsTitle": "Інструменти MCP",
    "mcpToolsDescription": "OmniRoute exposes {count} tools via Model Context Protocol for agent orchestration.",
    "mcpToolsCount": "інструменти {count}",
    "mcpToolsToc": "Інструменти MCP",
    "mcpToolsRoutingTitle": "Маршрутизація та виявлення",
    "mcpToolsRoutingDesc": "Health checks, combo management, quota monitoring, cost reporting, and model catalog access.",
    "mcpToolsOperationsTitle": "Операції та стратегія",
    "mcpToolsOperationsDesc": "Route simulation, budget guards, strategy switching, resilience profiles, and provider metrics.",
    "mcpToolsCacheTitle": "Керування кешем",
    "mcpToolsCacheDesc": "View cache statistics and flush semantic or signature caches.",
    "mcpToolsCompressionTitle": "Компресійні двигуни",
    "mcpToolsCompressionDesc": "Configure RTK/Brotli compression, swap engines, and inspect compression analytics by combo.",
    "mcpToolsOneProxyTitle": "1Проксі / Тунелі",
    "mcpToolsOneProxyDesc": "Manage outbound proxies, rotate residential IPs, and inspect proxy health.",
    "mcpToolsMemoryTitle": "Пам'ять",
    "mcpToolsMemoryDesc": "Search, add, and clear persistent conversational memory entries.",
    "mcpToolsSkillsTitle": "Навички",
    "mcpToolsSkillsDesc": "List, enable, execute, and monitor custom skill executions.",
    "featureAutoComboTitle": "Авто-комбо",
    "featureAutoComboText": "Automatically create optimized combos based on your connected providers, usage patterns, and model capabilities.",
    "featureSearchTitle": "Пошук в Інтернеті",
    "featureSearchText": "Інтегрований веб-пошук із 5 постачальниками (Serper, Brave, Exa, Tavily, Perplexity), включаючи аналітику та відстеження витрат.",
    "featureMemoryTitle": "Система пам'яті",
    "featureMemoryText": "Постійна розмовна пам’ять із виділенням, ін’єкцією, пошуком і підсумовуванням під час сеансів.",
    "featureSkillsTitle": "Структура навичок",
    "featureSkillsText": "Розширювана система навичок із вбудованими та користувальницькими навичками, виконанням ізольованого середовища, перехопленням запитів і впровадженням контексту.",
    "featureAcpTitle": "Зв'язок агента",
    "featureAcpText": "Реєстр Agent Communication Protocol (ACP) для керування робочими процесами між агентами та оркестровки інструментів.",
    "protocolAcpTitle": "ACP (Agent Communication)",
    "protocolAcpDesc": "Реєструйте агентів і керуйте ними через реєстр ACP для спілкування між агентами та спільного використання інструментів.",
    "protocolAcpStep1": "Перейдіть до Інформаційної панелі → Агенти, щоб переглянути зареєстрованих агентів ACP.",
    "protocolAcpStep2": "Зареєструйте нових агентів із можливостями та конфігурацією кінцевої точки.",
    "protocolAcpStep3": "Використовуйте інструменти CLI для налаштування каналів зв’язку агента."
  },
  "legal": {
    "privacyPolicy": "Політика конфіденційності",
    "termsOfService": "Умови обслуговування",
    "providerConfigurations": "Конфігурації провайдера",
    "apiKeys": "Ключі API",
    "usageLogs": "Журнали використання",
    "applicationSettings": "Налаштування програми",
    "viewExportAnalytics": "Перегляд і експорт аналітики використання",
    "clearHistory": "Очистити історію використання в будь-який час",
    "configureRetention": "Налаштувати політики збереження журналів",
    "backupRestore": "Резервне копіювання та відновлення бази даних",
    "privacyMetadataTitle": "Політика конфіденційності | OmniRoute",
    "privacyMetadataDescription": "Політика конфіденційності для проксі-маршрутизатора OmniRoute AI API.",
    "termsMetadataTitle": "Умови надання послуг | OmniRoute",
    "termsMetadataDescription": "Умови використання проксі-маршрутизатора OmniRoute AI API.",
    "backToHome": "Назад додому",
    "lastUpdated": "Останнє оновлення: {date}",
    "policyLastUpdatedDate": "13 лютого 2026 р",
    "listSeparator": "-",
    "questionsVisit": "Запитання? Відвідайте наш",
    "githubRepository": "Репозиторій GitHub",
    "privacySection1Title": "1. Місцева архітектура",
    "privacySection1Text": "OmniRoute створено як локальну програму. Уся обробка та зберігання даних відбувається повністю на вашій машині. Немає централізованого сервера, який би збирав вашу інформацію.",
    "privacySection2Title": "2. Дані, які ми зберігаємо",
    "privacyDataStoredIn": "Наступні дані зберігаються локально в",
    "privacyDataProviderConfigurationsDesc": "URL-адреси підключення, типи провайдерів і налаштування пріоритету",
    "privacyDataApiKeysDesc": "зашифровані та зберігаються локально для автентифікації в постачальників AI",
    "privacyDataUsageLogsDesc": "кількість запитів, використання маркерів, назви моделей, мітки часу та час відповіді",
    "privacyDataApplicationSettingsDesc": "параметри теми, стратегію маршрутизації та комбіновані конфігурації",
    "privacySection3Title": "3. Відсутність телеметрії",
    "privacySection3Text": "OmniRoute не збирає дані телеметрії, аналітику чи звіти про збої. Жодні дані не надсилаються ні нам, ні будь-якій третій стороні. Ваші моделі використання, виклики API та конфігурації залишаються повністю приватними.",
    "privacySection4Title": "4. Сторонні постачальники штучного інтелекту",
    "privacySection4Text": "Коли ви здійснюєте виклики API через OmniRoute, ваші запити пересилаються до налаштованих вами постачальників штучного інтелекту (наприклад: OpenAI, Anthropic, Google). Ці постачальники мають власні політики конфіденційності, які визначають, як вони обробляють ваші дані. Будь ласка, перегляньте:",
    "privacyOpenAiPolicy": "Політика конфіденційності OpenAI",
    "privacyAnthropicPolicy": "Політика конфіденційності Anthropic",
    "privacyGooglePolicy": "Політика конфіденційності Google",
    "privacySection5Title": "5. Хмарна синхронізація (необов’язково)",
    "privacySection5Text": "Якщо ви ввімкнете додаткову функцію хмарної синхронізації, конфігурації постачальника та ключі API можуть передаватися на налаштовану кінцеву точку хмари. Ця функція вимкнена за замовчуванням і вимагає явної згоди.",
    "privacySection6Title": "6. Заготівля лісу",
    "privacyLoggingIntro": "Журнали запитів можна налаштувати в налаштуваннях інформаційної панелі. Ви можете:",
    "privacySection7Title": "7. Ваші права",
    "privacySection7TextStart": "Оскільки всі дані зберігаються локально, ви маєте повний контроль. Ви можете будь-коли видалити свої дані, видаливши",
    "privacySection7TextEnd": "каталогу або за допомогою функцій резервного копіювання та відновлення бази даних на інформаційній панелі.",
    "termsSection1Title": "1. Огляд",
    "termsSection1Text": "OmniRoute — це локальний проксі-маршрутизатор API API, який повністю працює на вашому комп’ютері. Він направляє запити до кількох постачальників штучного інтелекту за допомогою балансування навантаження, відновлення після відмови та відстеження використання.",
    "termsSection2Title": "2. Обов'язки користувача",
    "termsResponsibilityApiKeys": "Ви несете повну відповідальність за керування власними ключами API та обліковими даними для сторонніх постачальників штучного інтелекту (OpenAI, Anthropic, Google тощо).",
    "termsResponsibilityCompliance": "Ви повинні дотримуватися умов обслуговування кожного постачальника штучного інтелекту, до API якого ви отримуєте доступ через OmniRoute.",
    "termsResponsibilitySecurity": "Ви несете відповідальність за безпеку локальної інсталяції OmniRoute, включаючи встановлення пароля та обмеження доступу до мережі.",
    "termsSection3Title": "3. Як це працює",
    "termsSection3Text": "OmniRoute діє як проксі-сервер-посередник. Виклики API, надіслані до OmniRoute, перекладаються та пересилаються вашим налаштованим постачальникам AI. OmniRoute не змінює вміст ваших запитів або відповідей крім необхідного перекладу протоколу.",
    "termsSection4Title": "4. Обробка даних",
    "termsDataStoredLocally": "Усі дані зберігаються локально на вашій машині в базі даних SQLite.",
    "termsNoTransmission": "OmniRoute не передає жодних даних на зовнішні сервери, якщо ви явно не активуєте функції хмарної синхронізації.",
    "termsDataLocationText": "Журнали використання, ключі API та конфігурація зберігаються в",
    "termsSection5Title": "5. Відмова від відповідальності",
    "termsSection5Text": "OmniRoute надається «як є» без будь-яких гарантій. Ми не несемо відповідальності за будь-які витрати, пов’язані з використанням API, перебоями в роботі служби або втратою даних. Завжди створюйте резервні копії вашої конфігурації.",
    "termsSection6Title": "6. Відкритий код",
    "termsSection6Text": "OmniRoute — це програмне забезпечення з відкритим кодом. Ви можете вільно перевіряти, змінювати та поширювати його відповідно до умов його ліцензії."
  },
  "agents": {
    "title": "CLI Agents",
    "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
    "refresh": "Refresh",
    "installed": "Installed",
    "notFound": "Not Found",
    "builtIn": "Built-in",
    "custom": "Custom",
    "remove": "Remove",
    "addCustomAgent": "Add Custom Agent",
    "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
    "agentName": "Agent Name",
    "binaryName": "Binary Name",
    "versionCommand": "Version Command",
    "spawnArgs": "Spawn Args",
    "addAgent": "Add Agent",
    "scanning": "Scanning system for CLI agents...",
    "opencodeIntegration": "OpenCode Integration",
    "opencodeDetected": "opencode {version} detected",
    "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
    "downloadConfig": "Download {file}",
    "downloaded": "Downloaded!",
    "setupGuideTitle": "Setup guide",
    "openCliTools": "Open CLI Tools",
    "setupGuideDetectCliTitle": "Detect installed CLIs",
    "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
    "setupGuideCustomAgentTitle": "Register custom binary",
    "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
    "setupGuideCommandMissingTitle": "Fix 'command not found'",
    "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
    "cliToolsRedirectTitle": "Cli Tools Redirect Title",
    "cliToolsRedirectDesc": "Cli Tools Redirect Desc",
    "spawnArgsPlaceholder": "Spawn Args Placeholder",
    "binaryNamePlaceholder": "Binary Name Placeholder",
    "versionCommandPlaceholder": "Version Command Placeholder",
    "architectureTitle": "Architecture Title",
    "flowLocalBinary": "Flow Local Binary",
    "flowOmniRoute": "Flow Omni Route",
    "agentNamePlaceholder": "Agent Name Placeholder",
    "architectureDescription": "Architecture Description",
    "flowExecute": "Flow Execute",
    "flowSpawn": "Flow Spawn",
    "cliToolsRedirectCta": "Cli Tools Redirect Cta",
    "comparisonTitle": "Інструменти CLI та Agent Targets — у чому різниця?",
    "comparisonCliToolsLabel": "Сторінка інструментів CLI",
    "comparisonCliToolsTitle": "Ваша IDE надсилає запити через OmniRoute",
    "comparisonCliToolsDesc": "Налаштуйте Claude Code, Codex, Cursor та інші IDE для використання OmniRoute як базової URL-адреси API. OmniRoute діє як проксі-сервер, направляючи запити до налаштованих провайдерів.",
    "comparisonAgentsLabel": "Ця сторінка (Цільові агенти)",
    "comparisonAgentsTitle": "OmniRoute надсилає запити до локальних інструментів CLI",
    "comparisonAgentsDesc": "OmniRoute може створювати локальні двійкові файли CLI (claude, codex, goose) як механізми виконання. Інструмент CLI обробляє запит за допомогою власної автентифікації та повертає результат.",
    "comparisonSummary": "Коротко: інструменти CLI = ви налаштовуєте інструменти для вказівки на OmniRoute. Agent Targets = OmniRoute використовує інструменти як кінцеві точки.",
    "agentUseCaseHint": "Може використовуватися як ціль виконання через протокол ACP",
    "flowDiagramClient": "Додаток клієнта",
    "flowDiagramClientDesc": "SDK, API або вихідний сервіс",
    "flowDiagramOmniRoute": "OmniRoute",
    "flowDiagramOmniRouteDesc": "Отримує запит і вибирає ціль",
    "flowDiagramSpawn": "Процес нересту",
    "flowDiagramSpawnDesc": "Запускає двійковий файл CLI через stdio",
    "flowDiagramCli": "Агент CLI",
    "flowDiagramCliDesc": "Процеси з власною авторизацією/моделлю",
    "fingerprintSettingsHint": "CLI Fingerprint matching (замаскувати запити як спеціальні інструменти CLI) можна налаштувати в",
    "settingsRoutingLink": "Налаштування/Маршрутизація",
    "openSettings": "Налаштування",
    "copyRawUrlTitle": "Скопіюйте необроблену URL-адресу в буфер обміну",
    "copied": "Скопійовано!",
    "copyUrl": "Копіювати URL",
    "startHere": "Почніть тут",
    "badgeNew": "новий",
    "viewOnGithub": "Переглянути на GitHub",
    "howToUse": "Як використовувати",
    "browseAllSkillsOnGithub": "Перегляньте всі навички на GitHub",
    "apiSkills": "Навички API",
    "cliSkills": "Навички CLI",
    "apiSkillsSubtitle": "{count} навичок — керуйте OmniRoute через REST / HTTP",
    "cliSkillsSubtitle": "{count} навичок — керуйте OmniRoute через термінальний бінарник omniroute",
    "howToUseStep1": "Натисніть <bold>{copyUrl}</bold> на навичці, яку має знати ваш агент.",
    "howToUseStep2": "У вашому AI-агенті (Claude, Cursor, Cline…) скажіть:",
    "howToUseStep2Code": "__MISSING__:Use the skill at [pasted-url]",
    "howToUseStep3": "Агент завантажує SKILL.md і вивчає API або CLI OmniRoute — без потреби в документації вручну."
  },
  "cloudAgents": {
    "title": "Хмарні агенти",
    "description": "Керуйте автономними агентами кодування (Jules, Devin, Codex Cloud)",
    "loading": "Завантаження завдань...",
    "aboutTitle": "Про хмарних агентів",
    "aboutDescription": "Хмарні агенти — це віддалені помічники кодування ШІ, які можуть виконувати завдання автономно. Вони працюють інакше, ніж локальні агенти CLI – ви взаємодієте з ними через API OmniRoute.",
    "howItWorksTitle": "Як це працює:",
    "howItWorksDesc": "Створити завдання → Агент аналізує та пропонує план → Ви схвалюєте → Агент виконує → Повернені результати",
    "newTaskTitle": "Створити нове завдання",
    "newTaskDescription": "Почніть нове завдання з хмарним агентом",
    "selectAgent": "Виберіть Агент",
    "taskDescription": "Опис завдання",
    "taskDescriptionPlaceholder": "Опишіть, що ви хочете, щоб агент зробив...",
    "startTask": "Розпочати завдання",
    "tasks": "завдання",
    "taskDetail": "Деталь завдання",
    "noTasks": "Завдань ще немає. Створіть його, щоб почати.",
    "noTasksTitle": "Поки немає задач",
    "noTasksDesc": "Створіть першу задачу, щоб почати.",
    "tasksTab": "Задачі",
    "agentsTab": "Агенти",
    "settingsTab": "Налаштування",
    "agentsEnabled": "Увімкнено",
    "agentsDisabled": "Вимкнено",
    "filterAllProviders": "Усі провайдери",
    "filterAll": "Усі",
    "autoRefreshing": "Автооновлення",
    "viewPR": "Переглянути Pull Request",
    "connected": "Підключено",
    "notConnected": "Не підключено",
    "configure": "Налаштувати",
    "settingsTitle": "Налаштування хмарних агентів",
    "settingsDesc": "Налаштування локальних параметрів для хмарних агентів.",
    "settingEnableAgents": "Увімкнути хмарних агентів",
    "settingEnableAgentsDesc": "Дозволити OmniRoute оркеструвати автономних агентів кодування.",
    "settingAutoPR": "Авто-створення PR",
    "settingAutoPRDesc": "Коли задача завершена, автоматично створювати Pull Request зі змінами.",
    "settingRequireApproval": "Вимагати підтвердження плану",
    "settingRequireApprovalDesc": "Завжди чекати на ручне підтвердження, перш ніж агент виконає запропонований план.",
    "untitledTask": "Завдання без назви",
    "created": "Створено",
    "conversation": "Розмова",
    "result": "Результат",
    "error": "Помилка",
    "planReady": "План готовий до затвердження",
    "approvePlan": "Затвердити план",
    "rejectPlan": "Відхилити та скасувати",
    "sendMessagePlaceholder": "Надіслати повідомлення агенту...",
    "cancel": "Скасувати",
    "delete": "Видалити",
    "selectTaskPrompt": "Виберіть завдання, щоб переглянути деталі",
    "statusPending": "В очікуванні",
    "statusRunning": "Біг",
    "statusWaitingApproval": "Очікування схвалення",
    "statusCompleted": "Виконано",
    "statusFailed": "Не вдалося",
    "statusCancelled": "Скасовано",
    "repositoryName": "Назва сховища",
    "repositoryUrl": "URL-адреса сховища",
    "branch": "Відділення"
  },
  "templateNames": {
    "simple-chat": "Простий чат",
    "streaming": "Потокове передавання",
    "system-prompt": "Системна підказка",
    "thinking": "Мислення",
    "tool-calling": "Виклик інструменту",
    "multi-turn": "Багатооборотний",
    "vision": "Бачення",
    "schema-coercion": "Схема примусу"
  },
  "templateDescriptions": {
    "simple-chat": "Базовий шаблон чату з системним повідомленням",
    "streaming": "Шаблон для потокових відповідей",
    "system-prompt": "Шаблон із спеціальним системним запитом",
    "thinking": "Шаблон із бюджетом міркувань/роздумів",
    "tool-calling": "Шаблон для виклику інструменту/функції",
    "multi-turn": "Шаблон для багаточергових розмов",
    "vision": "Мультимодальний шаблон із введенням зображення",
    "schema-coercion": "Застосування схеми структурованого виведення / JSON"
  },
  "templatePayloads": {
    "simpleChat": {
      "system": "Ви корисний помічник ШІ.",
      "userGreeting": "Привіт! Чим я можу тобі допомогти сьогодні?"
    },
    "streaming": {
      "prompt": "Написати розповідь про"
    },
    "systemPrompt": {
      "question": "У чому сенс життя?",
      "systemInstruction": "Дайте вдумливу, філософську відповідь."
    },
    "thinking": {
      "question": "Поясніть квантові обчислення"
    },
    "toolCalling": {
      "cityNameDescription": "Назва міста, для якого потрібно дізнатися погоду",
      "toolDescription": "Отримайте поточну погоду для певного місця",
      "userWeather": "Яка погода в Токіо?"
    },
    "multiTurn": {
      "system": "Ви корисний помічник.",
      "assistantExample": "Я буду радий тобі в цьому допомогти.",
      "userInitial": "Мені потрібна допомога з",
      "userFollowUp": "Чи можете ви розповісти про це?"
    }
  },
  "cache": {
    "title": "Cache Management",
    "description": "Monitor and manage semantic response cache, hit rates, and token savings.",
    "refresh": "Refresh",
    "clearAll": "Clear All",
    "memoryEntries": "Memory Entries",
    "memoryEntriesSub": "In-memory LRU",
    "dbEntries": "DB Entries",
    "dbEntriesSub": "Persisted (SQLite)",
    "cacheHits": "Cache Hits",
    "cacheHitsSub": "of {total} total",
    "tokensSaved": "Tokens Saved",
    "tokensSavedSub": "Estimated from hits",
    "hitRate": "Hit Rate",
    "performance": "Cache Performance",
    "autoRefresh": "Auto-refreshes every {seconds}s",
    "hits": "Hits",
    "misses": "Misses",
    "total": "Total",
    "behavior": "Cache Behavior",
    "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
    "behaviorBypass": "Bypass with header {header}.",
    "behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
    "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
    "idempotency": "Idempotency Layer",
    "activeDedupKeys": "Active Dedup Keys",
    "dedupWindow": "Dedup Window",
    "clearSuccess": "Cache cleared. {count} expired entries removed.",
    "clearError": "Failed to clear cache.",
    "unavailable": "Cache unavailable",
    "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
    "loadingCacheAria": "Завантаження кешу",
    "promptCache": "Prompt Cache (Provider-Side)",
    "semanticCache": "Semantic Cache",
    "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
    "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
    "cachedRequests": "Cached Requests",
    "cachedRequests24h": "Cached Requests (24h)",
    "cacheHitRate": "Cache Hit Rate",
    "cacheRate": "Cache Rate",
    "cacheRateDesc": "of total requests",
    "cachedTokens": "Cached Tokens",
    "cacheCreationTokens": "Cache Creation Tokens",
    "cacheMetrics": "Prompt Cache Metrics",
    "withCacheControl": "With Cache Control",
    "cachedTokensRead": "Cached Tokens (Read)",
    "cacheCreationWrite": "Cache Creation (Write)",
    "cacheReuseRatio": "Cache Reuse Ratio",
    "cacheReuseRatioDesc": "Cached tokens / Total input tokens",
    "estCostSaved": "Est. Cost Saved",
    "lastUpdated": "Last updated",
    "hoursTracked": "hours tracked",
    "busiestHour": "Busiest Hour",
    "peakCacheRate": "Peak Cache Rate",
    "trendHour": "Hour",
    "activityVolume": "Activity",
    "requestsShort": "reqs",
    "inputShort": "In",
    "cachedShort": "Cached",
    "writeShort": "Write",
    "resetting": "Resetting...",
    "resetMetrics": "Reset Metrics",
    "byProvider": "Breakdown by Provider",
    "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
    "provider": "Provider",
    "requests": "Requests",
    "inputTokens": "Input Tokens",
    "cachedTokensCol": "Cached",
    "cacheCreation": "Creation",
    "trend24h": "Cache Trend (24h)",
    "peakCached": "Peak cached",
    "cached": "Cached",
    "overview": "Overview",
    "tableProvider": "Провайдер",
    "tableModel": "Модель",
    "performanceTitle": "Продуктивність",
    "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
    "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
    "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
    "searchEntries": "Search entries...",
    "search": "Search",
    "loading": "Loading...",
    "entriesLoadError": "Failed to load semantic cache entries.",
    "noEntries": "No cache entries found",
    "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
    "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
    "signature": "Signature",
    "model": "Model",
    "created": "Created",
    "expires": "Expires",
    "actions": "Actions",
    "deduplicatedRequests": "Deduplicated Requests",
    "savedCalls": "Saved API Calls",
    "totalProcessed": "Total Requests Processed",
    "disabled": "Disabled",
    "totalRequests": "Total Requests",
    "reasoningCache": "Міркування Повторення",
    "reasoningCacheDesc": "Зберігає модель мислення для потоків виклику багатооборотного інструменту",
    "reasoningEntries": "Активні записи",
    "reasoningReplayRate": "Частота повторів",
    "reasoningReplays": "Загальна кількість повторів",
    "reasoningCharsCached": "Кешовані символи",
    "reasoningMisses": "Промахи кешу",
    "reasoningByProvider": "Від постачальника",
    "reasoningByModel": "За моделлю",
    "reasoningRecentEntries": "Останні записи",
    "reasoningToolCallId": "Інструмент Call ID",
    "reasoningChars": "Персонажі",
    "reasoningAge": "Вік",
    "reasoningView": "Переглянути",
    "reasoningDetail": "Зміст міркування",
    "reasoningBehavior": "Поведінка",
    "reasoningBehaviorCapture": "Захоплює reasoning_content із потокових відповідей",
    "reasoningBehaviorReplay": "Повторне введення під час наступного ходу, коли клієнт пропускає його",
    "reasoningBehaviorFallback": "Пам'ять насамперед із запасним SQLite для відновлення після збою",
    "reasoningBehaviorTtl": "TTL: 2 години | Максимальна кількість записів: 2000 (пам'ять)",
    "reasoningBehaviorModels": "Підтримуються: DeepSeek, Kimi, Qwen-Thinking, GLM",
    "reasoningClearAll": "Очистити кеш міркувань",
    "reasoningClearSuccess": "Очищено {count} записи кешу аргументів",
    "reasoningClearError": "Не вдалося очистити кеш міркувань",
    "reasoningNoData": "Записи аргументації ще не кешовано. Записи з’являються, коли моделі мислення використовують виклик інструментів.",
    "cachePerformanceRetry": "Повторіть спробу",
    "cachePerformanceHitRate": "Рейтинг попадань",
    "cachePerformanceAvgLatency": "Середня затримка (мс)",
    "cachePerformanceP95Latency": "p95 Затримка (мс)",
    "retry": "Повторіть спробу",
    "reasoningAvgChars": "Середні символи",
    "tableShare": "Частка",
    "justNow": "щойно",
    "minutesAgo": "{minutes} хв тому",
    "hoursAgo": "{hours} год тому",
    "daysAgo": "{days} дн тому",
    "entries": "Entries"
  },
  "proxyConfigModal": {
    "levelGlobal": "Глобальний",
    "levelProvider": "Провайдер",
    "levelCombo": "комбо",
    "levelKey": "ключ",
    "levelDirect": "Прямий (без проксі)",
    "titleGlobal": "Глобальна конфігурація проксі",
    "titleLevel": "{level} Проксі — {label}",
    "loading": "Завантаження конфігурації проксі...",
    "inheritingFrom": "Успадкування від",
    "source": "Джерело",
    "savedProxy": "Збережений проксі",
    "custom": "Custom",
    "selectSavedProxyPlaceholder": "Виберіть збережений проксі...",
    "proxyType": "Тип проксі",
    "host": "Хост",
    "hostPlaceholder": "1.2.3.4 або proxy.example.com",
    "port": "Порт",
    "authOptional": "Автентифікація (необов'язково)",
    "username": "Ім'я користувача",
    "usernamePlaceholder": "Ім'я користувача",
    "password": "Пароль",
    "passwordPlaceholder": "Пароль",
    "connected": "Підключено",
    "ip": "IP:",
    "connectionFailed": "Помилка підключення",
    "testConnection": "Тестове підключення",
    "clear": "ясно",
    "cancel": "Скасувати",
    "save": "зберегти",
    "errorSelectSavedProxy": "Будь ласка, спочатку виберіть збережений проксі.",
    "errorSelectProxyFirst": "Спочатку виберіть проксі.",
    "errorProxyNotFound": "Вибраний проксі не знайдено.",
    "errorClearSavedProxy": "Не вдалося очистити збережений проксі",
    "errorSaveProxy": "Не вдалося зберегти конфігурацію проксі",
    "errorClearProxy": "Не вдалося очистити конфігурацію проксі",
    "errorSocks5Hidden": "SOCKS5 налаштовано, але приховано, оскільки NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
  },
  "oauthModal": {
    "title": "Підключити {providerName}",
    "waiting": "Очікування авторизації",
    "completeAuthInPopup": "Повна авторизація у спливаючому вікні.",
    "popupClosedHint": "Якщо спливаюче вікно закрилося без переспрямування назад (наприклад, Qoder), це діалогове вікно автоматично перейде в режим введення URL-адреси вручну.",
    "popupBlocked": "Спливаюче вікно заблоковано? Введіть URL вручну",
    "deviceCodeVisitUrl": "Перейдіть за URL-адресою нижче та введіть код:",
    "deviceCodeVerificationUrl": "URL перевірки",
    "deviceCodeYourCode": "Ваш код",
    "deviceCodeWaiting": "Очікування авторизації...",
    "googleOAuthWarning": "Віддалений доступ + Google OAuth: облікові дані за умовчанням приймають лише переспрямування на <code>localhost</code>. Після авторизації ваш браузер спробує відкрити <code>localhost</code> — скопіюйте цю повну URL-адресу та вставте її нижче. Для повністю віддаленого використання без цього ручного кроку <a>налаштуйте власні облікові дані OAuth</a>.",
    "remoteAccessInfo": "Віддалений доступ: оскільки ви отримуєте доступ до OmniRoute віддалено, після авторизації ви побачите сторінку помилки (localhost не знайдено). Це нормально — просто скопіюйте повну URL-адресу з адресного рядка браузера та вставте її нижче.",
    "step1OpenUrl": "Крок 1. Відкрийте цю URL-адресу у своєму браузері",
    "copy": "Копія",
    "step2PasteCallback": "Крок 2. Вставте сюди URL-адресу зворотного виклику або код авторизації",
    "step2Hint": "Після авторизації вставте повну URL-адресу зворотного виклику. Для Claude Code та Cline ви також можете безпосередньо вставити код автентифікації, напр. <code>code#state</code>.",
    "connect": "Підключитися",
    "cancel": "Скасувати",
    "success": "Підключення успішне!",
    "successMessage": "Ваш обліковий запис {providerName} підключено.",
    "done": "Готово",
    "error": "Помилка підключення",
    "tryAgain": "Спробуйте знову"
  },
  "cursorAuthModal": {
    "title": "Підключіть Cursor IDE",
    "autoDetecting": "Автоматичне визначення токенів...",
    "readingFromCursor": "Читання з Cursor IDE або cursor-agent",
    "tokensAutoDetected": "Маркери успішно автоматично виявлені в Cursor IDE!",
    "cursorNotDetected": "Курсор IDE не виявлено. Вставте маркер вручну.",
    "accessToken": "Маркер доступу",
    "required": "*",
    "accessTokenPlaceholder": "Маркер доступу буде заповнено автоматично...",
    "machineId": "ID машини",
    "optional": "(необов'язково)",
    "machineIdPlaceholder": "Ідентифікатор машини буде автоматично заповнено...",
    "importing": "Імпорт...",
    "importToken": "Імпорт маркера",
    "cancel": "Скасувати",
    "errorAutoDetect": "Неможливо автоматично визначити маркери",
    "errorAutoDetectFailed": "Помилка автоматичного визначення маркерів",
    "errorEnterToken": "Будь ласка, введіть маркер доступу",
    "errorImportFailed": "Помилка імпорту"
  },
  "pricingModal": {
    "title": "Конфігурація ціни",
    "loading": "Завантаження даних про ціни...",
    "pricingRatesFormat": "Формат ціноутворення",
    "ratesDescription": "Усі ставки вказані в <strong>доларів за мільйон токенів</strong> ($/1 млн. токенів). Приклад: ставка введення 2,50 означає 2,50 доларів США за 1 000 000 введених токенів.",
    "model": "Модель",
    "input": "Введення",
    "output": "Вихід",
    "cached": "Кешовано",
    "reasoning": "Міркування",
    "cacheCreation": "Створення кешу",
    "noPricingData": "Немає даних про ціни",
    "resetToDefaults": "Відновити налаштування за замовчуванням",
    "cancel": "Скасувати",
    "saving": "Збереження...",
    "saveChanges": "Зберегти зміни",
    "resetConfirm": "Відновити всі ціни за умовчанням? Це неможливо скасувати.",
    "errorSaveFailed": "Не вдалося зберегти ціни",
    "errorResetFailed": "Не вдалося скинути ціни"
  },
  "proxyRegistry": {
    "title": "Title",
    "description": "Description",
    "importLegacy": "Import Legacy",
    "bulkAssign": "Bulk Assign",
    "addProxy": "Add Proxy",
    "loading": "Loading",
    "noProxies": "No Proxies",
    "tableName": "Table Name",
    "tableEndpoint": "Table Endpoint",
    "tableStatus": "Table Status",
    "tableHealth": "Table Health",
    "tableUsage": "Table Usage",
    "tableActions": "Table Actions",
    "test": "Test",
    "edit": "Edit",
    "delete": "Delete",
    "modalCreateTitle": "Modal Create Title",
    "modalEditTitle": "Modal Edit Title",
    "labelName": "Label Name",
    "labelType": "Тип",
    "labelHost": "Хост",
    "labelPort": "Порт",
    "labelUsername": "Ім'я користувача",
    "labelPassword": "Пароль",
    "labelRegion": "Регіон",
    "labelStatus": "Статус",
    "labelNotes": "Примітки",
    "usernamePlaceholderEdit": "Залиште поле порожнім, щоб зберегти поточне ім’я користувача",
    "passwordPlaceholderEdit": "Залиште поле порожнім, щоб зберегти поточний пароль",
    "statusActive": "Активний",
    "statusInactive": "Неактивний",
    "cancel": "Скасувати",
    "save": "зберегти",
    "bulkModalTitle": "Масове призначення проксі",
    "bulkLabelScope": "Область застосування",
    "bulkLabelProxy": "Проксі",
    "bulkClearAssignment": "(Очистити призначення)",
    "bulkLabelScopeIds": "Ідентифікатори області дії (розділені комою або новим рядком)",
    "bulkScopeIdsPlaceholder": "провайдер-опенай, провайдер-антропік",
    "bulkApply": "Застосувати",
    "labelScope": "Область",
    "labelProxy": "Проксі",
    "scopeGlobal": "глобальна",
    "scopeProvider": "провайдер",
    "scopeAccount": "акаунт",
    "scopeCombo": "комбо",
    "bulkImportErrorMissingName": "Відсутній NAME",
    "bulkImportErrorMissingHost": "Відсутній HOST",
    "bulkImportErrorInvalidPort": "Недійсний ПОРТ (має бути 1-65535)",
    "bulkImportErrorInvalidType": "Недійсний TYPE (використовуйте http, https або socks5)",
    "bulkImportErrorInvalidStatus": "Недійсний СТАТУС (використовуйте активний або неактивний)",
    "errorLoadFailed": "Error Load Failed",
    "errorNameHostRequired": "Error Name Host Required",
    "errorSaveFailed": "Error Save Failed",
    "errorDeleteFailed": "Error Delete Failed",
    "errorForceDeleteConfirm": "Error Force Delete Confirm",
    "errorMigrateFailed": "Error Migrate Failed",
    "errorBulkFailed": "Error Bulk Failed",
    "success": "✓",
    "failure": "✗",
    "failed": "Failed",
    "successRate": "{rate}% успіху",
    "avgLatency": "{latency} мс в середньому",
    "assignmentsCount": "{count} завдань",
    "noData": "No Data",
    "testSuccess": "✓ {ip}",
    "testLatency": "{latency}мс",
    "testFailure": "✗ {error}",
    "bulkImport": "Масовий імпорт",
    "bulkImportTitle": "Масовий імпорт проксі",
    "bulkImportDescription": "Вставте профілі проксі за допомогою вертикальної лінії. Один проксі на рядок. Існуючі проксі (той самий хост + порт) буде оновлено.",
    "bulkImportParse": "Розібрати",
    "bulkImportImport": "Імпортувати {count} проксі",
    "bulkImportImporting": "Імпорт...",
    "bulkImportParsed": "Проаналізовано {count} проксі",
    "bulkImportSkipped": "{count} рядків пропущено",
    "bulkImportParseErrors": "{count} помилок",
    "bulkImportNoValidEntries": "Дійсні записи не знайдено. Перевірте формат і повторіть спробу.",
    "bulkImportSuccess": "Імпорт завершено: {created} створено, {updated} оновлено, {failed} не вдалося",
    "bulkImportErrorLine": "Рядок {line}: {reason}",
    "bulkImportMaxExceeded": "Максимум 100 проксі-серверів на імпорт",
    "bulkImportPreview": "Попередній перегляд",
    "clearAssignment": "(чисте завдання)",
    "bulkProxyAssignment": "Масове призначення проксі"
  },
  "playground": {
    "title": "Title",
    "description": "Description",
    "endpoint": "Endpoint",
    "provider": "Provider",
    "model": "Model",
    "accountKey": "Account Key",
    "autoAccounts": "Автоматично ({count} облікових записів)",
    "noAccounts": "No Accounts",
    "send": "Send",
    "cancel": "Cancel",
    "audioFile": "Audio File",
    "attachImages": "Attach Images",
    "multipartFormData": "Multipart Form Data",
    "upToImages": "Up To Images",
    "selectAudioFile": "Select Audio File",
    "clearAll": "Clear All",
    "request": "Request",
    "response": "Response",
    "transcription": "Transcription",
    "copy": "Copy",
    "resetToDefault": "Reset To Default",
    "downloadAudio": "Download Audio",
    "copyText": "Copy Text",
    "transcriptionHint": "Transcription Hint",
    "imagesGenerated": "Згенеровано {count} зображень",
    "generatedImage": "Створене зображення {index}",
    "save": "Save",
    "endpointOptions": {
      "chat": "Chat",
      "responses": "Responses",
      "images": "Images",
      "embeddings": "Embeddings",
      "speech": "Speech",
      "transcription": "Transcription",
      "video": "Video",
      "music": "Music",
      "rerank": "Rerank",
      "search": "Search"
    },
    "conversationalChat": "Розмовний чат",
    "clearChat": "Очистити чат",
    "typeMessagePlaceholder": "Введіть повідомлення... (Shift+Enter для нового рядка)",
    "tabChat": "Chat",
    "tabCompare": "Compare",
    "tabApi": "API",
    "tabBuild": "Build",
    "configPane": "Config",
    "systemPrompt": "System prompt",
    "systemPromptPlaceholder": "You are a helpful assistant.",
    "modelPlaceholder": "e.g. openai/gpt-4o",
    "endpointLabel": "Endpoint",
    "parametersLabel": "Parameters",
    "collapseConfig": "Collapse config pane",
    "expandConfig": "Expand config pane",
    "temperature": "Temperature",
    "maxTokens": "Max tokens",
    "topP": "Top-p",
    "presencePenalty": "Presence penalty",
    "frequencyPenalty": "Frequency penalty",
    "seedPlaceholder": "Random (leave empty)",
    "presetsLabel": "Presets",
    "loadPreset": "Load preset",
    "savePreset": "Save preset",
    "noPresets": "No presets",
    "presetNamePlaceholder": "Preset name",
    "savingPreset": "Saving…",
    "nameRequired": "Name is required",
    "failedToSavePreset": "Failed to save preset",
    "improvePrompt": "Improve prompt",
    "improvingPrompt": "Improving…",
    "improvePromptTitle": "Improve your prompt with AI",
    "setModelFirst": "Set a model first",
    "improveQuotaWarning": "This will consume quota from the model configured in Config.",
    "improveConfirm": "Improve",
    "exportCode": "Export code",
    "exportCodeTitle": "Export Code",
    "noStateToExport": "No playground state available to export.",
    "copyCode": "Copy",
    "copiedCode": "Copied!",
    "addModel": "+ Add model",
    "runAll": "Run all",
    "cancelAll": "Cancel all",
    "maxColumnsReached": "Maximum {max} columns",
    "modelPlaceholderCompare": "Model (Cmd+K)…",
    "ttft": "TTFT",
    "tps": "TPS",
    "metricsDisclaimer": "client-side estimate",
    "tokensLabel": "Tokens",
    "costLabel": "Cost",
    "costEstimated": "(estimated)",
    "toolsLabel": "Tools",
    "addTool": "Add tool",
    "toolNamePlaceholder": "Function name",
    "toolDescPlaceholder": "Description (optional)",
    "toolParamsInvalid": "Parameters must be valid JSON",
    "structuredOutputLabel": "Structured Output",
    "enableJsonMode": "Enable JSON mode",
    "disableJsonMode": "Disable JSON mode",
    "invalidJson": "Invalid JSON",
    "running": "Running…",
    "runLabel": "Run",
    "enterToolResult": "Enter tool result…"
  },
  "miniPlayground": {
    "endpoint": "Ендпоінт",
    "apiKey": "API-ключ",
    "model": "Модель",
    "voice": "Голос",
    "speed": "Швидкість",
    "input": "Ввід",
    "url": "__MISSING__:URL",
    "format": "Формат",
    "depth": "Глибина",
    "copyCurl": "Копіювати cURL",
    "copied": "Скопійовано!",
    "run": "Запустити",
    "running": "Виконання...",
    "response": "Відповідь",
    "tunnel": "Тунель",
    "send": "Надіслати",
    "selectKey": "Виберіть ключ",
    "testLabel": "Тест",
    "expandTest": "Розгорнути тест",
    "collapseTest": "Згорнути тест",
    "revealKey": "Показати ключ",
    "hideKey": "Приховати ключ",
    "download": "Завантажити",
    "play": "Відтворити",
    "query": "Запит",
    "numResults": "Макс. результатів",
    "prompt": "Промпт",
    "size": "Розмір",
    "duration": "Тривалість",
    "question": "Питання",
    "audioFile": "Аудіофайл",
    "noKeysFound": "API-ключі не знайдено. Додайте у розділі Ключі.",
    "exampleLabel": "Приклад",
    "latency": "{ms} мс",
    "statsLine": "{ms} мс · {tokensIn} вх / {tokensOut} вих токенів"
  },
  "requestLogger": {
    "recording": "Recording",
    "paused": "Paused",
    "pipelineLogsOn": "Pipeline logs on",
    "pipelineLogsOff": "Pipeline logs off",
    "updatingPipelineLogs": "Updating pipeline logs...",
    "updatePipelineFailed": "Failed to update pipeline logging",
    "capturePipeline": "Capture pipeline payloads for new requests",
    "searchPlaceholder": "Search models, providers, accounts, API keys, combos...",
    "allProviders": "All providers",
    "allModels": "All models",
    "allAccounts": "All accounts",
    "allApiKeys": "All API keys",
    "total": "Total",
    "ok": "Success",
    "err": "Error",
    "combo": "Combo",
    "keys": "Keys",
    "shown": "Shown",
    "sortNewest": "Newest",
    "sortOldest": "Oldest",
    "sortTokensDesc": "Tokens ↓",
    "sortTokensAsc": "Tokens ↑",
    "sortDurationDesc": "Duration ↓",
    "sortDurationAsc": "Duration ↑",
    "sortStatusDesc": "Status ↓",
    "sortStatusAsc": "Status ↑",
    "sortModelAsc": "Model A-Z",
    "sortModelDesc": "Model Z-A",
    "sortLogs": "Sort logs",
    "refresh": "Refresh",
    "columnsLabel": "Columns",
    "cacheSem": "SEM",
    "cacheUp": "UP",
    "semantic": "Semantic",
    "upstream": "Upstream",
    "semanticCacheHit": "Semantic cache hit (served by OmniRoute)",
    "upstreamResponse": "Upstream provider response",
    "noApiKey": "No API key",
    "requestedRoutedTitle": "Requested {requested}, routed as {routed}",
    "statusFilters": {
      "all": "All",
      "error": "Errors",
      "success": "Success",
      "combo": "Combo"
    },
    "columns": {
      "status": "Status",
      "cacheSource": "Cache Source",
      "model": "Model",
      "requested": "Requested",
      "provider": "Provider",
      "protocol": "Request Protocol",
      "account": "Account",
      "apiKey": "API Key",
      "combo": "Combo",
      "tokens": "Tokens",
      "compressed": "Компресія",
      "tps": "TPS",
      "duration": "Duration",
      "time": "Time"
    },
    "loadingLogs": "Loading logs...",
    "noLogs": "No logs yet. Make some API calls to see them here.",
    "noMatchingLogs": "No logs matching current filters.",
    "callLogsInfo": "Call logs are also saved as JSON files to {dataDir} and rotated based on {retentionDays} and {maxEntries}."
  },
  "proxyLogger": {
    "filterAll": "All",
    "filterErrors": "Errors",
    "filterSuccess": "Success",
    "filterTimeout": "Timeout",
    "colStatus": "Status",
    "colProxy": "Proxy",
    "colTls": "TLS",
    "colType": "Type",
    "colLevel": "Level",
    "colProvider": "Provider",
    "colTarget": "Target",
    "colLatency": "Latency",
    "colClientIp": "Client IP",
    "colTime": "Time",
    "recording": "Recording",
    "paused": "Paused",
    "searchPlaceholder": "Search host, provider, target, IP...",
    "allTypes": "All Types",
    "allLevels": "All Levels",
    "allProviders": "All Providers",
    "total": "total",
    "ok": "OK",
    "err": "ERR",
    "timeoutShort": "TMO",
    "direct": "direct",
    "newest": "Newest",
    "oldest": "Oldest",
    "latencyDesc": "Latency ↓",
    "latencyAsc": "Latency ↑",
    "refresh": "Refresh",
    "columns": "Columns",
    "loadingProxyLogs": "Loading proxy logs...",
    "noProxyLogs": "No proxy logs yet. Configure proxies and make API calls to see them here.",
    "noMatchingLogs": "No logs match the current filters.",
    "tlsFingerprint": "Chrome 124 TLS Fingerprint"
  },
  "endpointOptions": {
    "speech": "Speech",
    "search": "Search",
    "images": "Images",
    "chat": "Chat",
    "music": "Music",
    "responses": "Responses",
    "rerank": "Rerank",
    "video": "Video",
    "embeddings": "Вбудовування",
    "transcription": "Transcription"
  },
  "toolDescriptions": {
    "cline": "Cline",
    "openclaw": "Openclaw",
    "droid": "Droid",
    "codex": "Codex",
    "claude": "Claude",
    "kilo": "Kilo"
  },
  "runtime": {
    "title": "Runtime",
    "description": "Realtime observability — 3-layer resilience + sessions + quota alerts",
    "pause": "Pause",
    "resume": "Resume",
    "refreshNow": "Refresh now",
    "kpiSessions": "Sessions",
    "kpiCircuits": "Circuits",
    "kpiCooldowns": "Cooldowns",
    "kpiLockouts": "Lockouts",
    "hintStickyBound": "{count} sticky-bound",
    "hintRecovering": "{count} recovering",
    "hintAllHealthy": "all healthy",
    "hintOpen": "open",
    "hintConnsCooling": "connections cooling",
    "hintModelsBlocked": "models blocked",
    "resilienceTitle": "3-Layer Resilience",
    "resilienceSubtitle": "Mirrors the documented resilience model",
    "providersHealthy": "{percent}% providers healthy",
    "layer": "Layer {n}",
    "layer1Title": "Provider Circuit Breakers",
    "layer1Desc": "Stop traffic to providers failing at the upstream level",
    "layer2Title": "Connection Cooldowns",
    "layer2Desc": "Skip one bad account/key; other connections keep serving",
    "layer3Title": "Model Lockouts",
    "layer3Desc": "Per-model rate-limit locks; same connection still serves other models",
    "badgeAffectedOf": "{affected} of {total} affected",
    "badgeCooling": "{count} cooling",
    "badgeLocked": "{count} locked",
    "emptyCircuits": "No circuit breakers active yet",
    "emptyCooldowns": "No connection cooldowns active",
    "emptyLockouts": "No model lockouts",
    "moreCooldowns": "+{count} more cooldowns",
    "moreLockouts": "+{count} more lockouts",
    "feedTitle": "Live Feed",
    "feedSubtitle": "Last {count} events",
    "feedFilterAll": "All",
    "feedFilterCircuits": "Circuits",
    "feedFilterCooldowns": "Cooldowns",
    "feedFilterLockouts": "Lockouts",
    "feedFilterSessions": "Sessions",
    "feedFilterQuotas": "Quotas",
    "feedClear": "Clear",
    "feedEmptyWaiting": "Waiting for events... (polled every 5s)",
    "feedEmptyFiltered": "No events match this filter",
    "sessionsTitle": "Active Sessions",
    "sessionsSubtitle": "Sticky-bound request fingerprints (live)",
    "sessionsActive": "{count} active",
    "sessionsEmptyTitle": "No active sessions",
    "sessionsEmptyHint": "Sessions appear as requests flow through the proxy",
    "tblSession": "Session",
    "tblAge": "Age",
    "tblIdle": "Idle",
    "tblReqs": "Reqs",
    "tblBoundTo": "Bound to",
    "topApiKeys": "Top API keys",
    "quotaMonitorsTitle": "Quota Monitors",
    "quotaMonitorsSubtitle": "Live quota state per account window",
    "openQuota": "Open Quota",
    "allQuotasHealthy": "All quotas healthy",
    "statusExhausted": "EXHAUSTED",
    "statusAlerting": "ALERTING",
    "statusError": "ERROR",
    "moreSuffix": "+{count} more"
  },
  "quotaShare": {
    "title": "Quota Sharing",
    "description": "Share provider quotas across API keys with % limits",
    "newPool": "New pool",
    "betaTitle": "Beta — UI preview.",
    "betaDescription": "Configuration is saved in localStorage (not yet persisted on the server). Per-request cap enforcement is not yet wired into the proxy pipeline. This screen lets you design and visualize the quota split; real enforcement will land in a future iteration with DB persistence and upstream call interception.",
    "kpiActivePools": "Active pools",
    "kpiKeysAllocated": "Keys allocated",
    "kpiAvgUnallocated": "Avg unallocated",
    "kpiProvidersWithQuota": "Providers w/ quota",
    "emptyTitle": "No pools configured",
    "emptyDescription": "Create a pool to assign API keys to share a provider's quota window with % allocations.",
    "loading": "Loading…",
    "removePool": "Remove pool",
    "removeConfirm": "Remove this pool?",
    "pool": "Pool",
    "used": "used",
    "allocationsCount": "Allocations ({count})",
    "allocatedFree": "{allocated}% allocated · {free}% free",
    "noAllocations": "No keys allocated yet",
    "capLabel": "cap {value}",
    "notTrackedYet": "(not tracked yet)",
    "policy": "Policy",
    "policyHard": "hard",
    "policySoft": "soft",
    "policyBurst": "burst",
    "policyHardHint": "Block when key exhausts allocation",
    "policySoftHint": "Allow overflow, alert only",
    "policyBurstHint": "Allow burst into free pool",
    "editAllocations": "Edit allocations",
    "newPoolTitle": "New quota pool",
    "providerConnection": "Provider connection (account)",
    "selectConnection": "Select a connection…",
    "noEligibleConnections": "No connections with quota data. Refresh from /dashboard/quota first.",
    "quotaWindow": "Quota window",
    "selectWindow": "Select a window…",
    "alreadyUsedSuffix": "(already used)",
    "windowReset": "Reset",
    "duplicatePoolError": "A pool for this connection + window already exists",
    "cancel": "Cancel",
    "createPool": "Create pool",
    "editTitle": "Edit allocations",
    "noKeysAdded": "No keys allocated. Add one below.",
    "totalLabel": "Total: {percent}%",
    "totalExceeded": "⚠ exceeds 100%",
    "addKey": "+ Add key…",
    "equalSplit": "Equal split",
    "save": "Save allocations",
    "betaPreviewLabel": "Бета — попередній перегляд інтерфейсу користувача.",
    "betaConfigSavedPrefix": "Конфігурація збережена в",
    "betaConfigSavedSuffix": "(ще не зберігається на сервері). Застосування обмеження на запит ще не підключено до проксі-каналу. Цей екран дозволяє спроектувати та візуалізувати розподіл квот; реальне застосування буде досягнуто в майбутній ітерації з постійністю БД і перехопленням викликів.",
    "policyLabel": "Політика:",
    "resetIn": "скинути в",
    "quotaTotal": "всього"
  },
  "plugins": {
    "title": "Plugins",
    "description": "Install and manage plugins for extending OmniRoute functionality",
    "loading": "Loading plugins...",
    "scanning": "Scanning...",
    "scanForPlugins": "Scan for Plugins",
    "noPlugins": "No plugins installed",
    "noPluginsDescription": "Place plugin directories in ~/.omniroute/plugins/ and click Scan.",
    "activate": "Activate",
    "deactivate": "Deactivate",
    "uninstall": "Uninstall",
    "uninstallConfirm": "Uninstall plugin \"{name}\"?",
    "pluginScanComplete": "Plugin scan complete",
    "pluginScanFailed": "Plugin scan failed",
    "activated": "{name} activated",
    "deactivated": "{name} deactivated",
    "activateFailed": "Failed to activate {name}",
    "deactivateFailed": "Failed to deactivate {name}",
    "uninstalled": "{name} uninstalled",
    "uninstallFailed": "Failed to uninstall {name}",
    "configure": "Configure: {name}",
    "configurePlugin": "Configure",
    "noConfigSettings": "This plugin has no configurable settings.",
    "saving": "Saving...",
    "saveConfiguration": "Save Configuration",
    "configurationSaved": "Configuration saved",
    "saveConfigurationFailed": "Failed to save configuration",
    "pluginNotFound": "Plugin not found",
    "version": "Version",
    "author": "Author",
    "description_label": "Description",
    "status": "Status",
    "enabled": "Enabled",
    "disabled": "Disabled",
    "hooks": "Hooks"
  }
}
