{
  "common": {
    "save": "Zapisz",
    "cancel": "Anuluj",
    "delete": "Usuń",
    "loading": "Ładowanie...",
    "error": "Wystąpił błąd",
    "success": "Sukces",
    "confirm": "Czy jesteś pewien?",
    "refresh": "Odśwież",
    "close": "Zamknij",
    "add": "Dodaj",
    "edit": "Edytuj",
    "search": "Szukaj",
    "back": "Powrót",
    "next": "Następny",
    "submit": "Prześlij",
    "reset": "Zresetuj",
    "copy": "Kopiuj",
    "copied": "Skopiowano!",
    "enabled": "Włączone",
    "disabled": "Niepełnosprawny",
    "active": "Aktywny",
    "inactive": "Nieaktywny",
    "noData": "Brak dostępnych danych",
    "nothingHere": "Nothing here yet",
    "configure": "Skonfiguruj",
    "manage": "Zarządzaj",
    "name": "Imię",
    "actions": "Działania",
    "status": "Stan",
    "type": "Wpisz",
    "model": "Modelka",
    "models": "modele",
    "provider": "Dostawca",
    "account": "Konto",
    "time": "Czas",
    "details": "Szczegóły",
    "created": "Utworzono",
    "lastUsed": "Last Refreshed",
    "loadMore": "Załaduj więcej",
    "noResults": "Nie znaleziono żadnych wyników",
    "reloadPage": "Załaduj ponownie stronę",
    "connected": "Połączono",
    "disconnected": "Rozłączony",
    "notConfigured": "Nie skonfigurowano",
    "testConnection": "Połączenie testowe",
    "enable": "Włącz",
    "disable": "Wyłącz",
    "columns": "Kolumny",
    "newest": "Najnowszy",
    "oldest": "Najstarszy",
    "all": "Wszystko",
    "none": "Żadne",
    "yes": "Tak",
    "no": "Nie",
    "on": "__MISSING__:ON",
    "off": "__MISSING__:OFF",
    "warning": "Ostrzeżenie",
    "note": "Uwaga",
    "free": "Bezpłatny",
    "skipToContent": "Przejdź do treści",
    "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
    "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
    "accept": "accept",
    "accountId": "accountId",
    "alias": "alias",
    "apiKeyId": "apiKeyId",
    "apiKeyName": "apiKeyName",
    "apiKeySecret": "apiKeySecret",
    "authorization": "authorization",
    "content-type": "content-type",
    "content-length": "content-length",
    "cookie": "cookie",
    "file": "file",
    "host": "host",
    "id": "id",
    "import": "import",
    "limit": "limit",
    "offset": "offset",
    "open": "open",
    "origin": "origin",
    "promptTokens": "promptTokens",
    "completionTokens": "completionTokens",
    "totalTokens": "totalTokens",
    "rawModel": "rawModel",
    "scope": "scope",
    "skill": "skill",
    "sortBy": "sortBy",
    "sortOrder": "sortOrder",
    "tab": "tab",
    "text": "text",
    "textarea": "textarea",
    "tool": "tool",
    "toolId": "toolId",
    "web": "web",
    "whereUsed": "whereUsed",
    "whitelist": "whitelist",
    "blacklist": "blacklist",
    "resolve": "resolve",
    "force": "force",
    "base64url": "base64url",
    "hex": "hex",
    "range": "range",
    "component": "component",
    "redirect_uri": "redirect_uri",
    "idempotency-key": "idempotency-key",
    "error_description": "error_description",
    "code": "code",
    "compatible": "compatible",
    "chat-completions": "chat-completions",
    "oauth": "oauth",
    "auth_token": "auth_token",
    "crypto": "crypto",
    "hours": "hours",
    "selfsigned": "selfsigned",
    "proxy_id": "proxy_id",
    "proxyId": "proxyId",
    "connectionId": "connectionId",
    "resolveConnectionId": "resolveConnectionId",
    "resolve_connection_id": "resolve_connection_id",
    "scope_id": "scope_id",
    "scopeId": "scopeId",
    "jwtSecret": "jwtSecret",
    "keytar": "keytar",
    "better-sqlite3": "better-sqlite3",
    "undici": "undici",
    "builder-id": "builder-id",
    "musicDesc": "musicDesc",
    "musicGeneration": "musicGeneration",
    "idc": "idc",
    "cloud-status-changed": "cloud-status-changed",
    "where_used": "where_used",
    "windowMs": "windowMs",
    "social-github": "GitHub",
    "social-google": "Google'a",
    "TOOL_ALLOWLIST": "Lista dozwolonych narzędzi",
    "TOOL_DENYLIST": "Lista odrzuconych narzędzi",
    "Failed to save pricing": "Nie udało się zapisać cen",
    "Failed to reset pricing": "Nie udało się zresetować cen",
    "apikey": "Klucz API",
    "http": "HTTP",
    "goToDashboard": "Go to Dashboard",
    "checkSystemStatus": "Check System Status",
    "selectModel": "Select Model",
    "combos": "Combos",
    "noModelsFound": "No models found",
    "clear": "Clear",
    "done": "Done",
    "errorOccurred": "Error Occurred",
    "comboDeleted": "Combo Deleted",
    "hide": "Hide",
    "creating": "Creating",
    "comboCreated": "Combo Created",
    "swapFormats": "Swap Formats",
    "daysAgo": "Days Ago",
    "retries": "Retries",
    "errorDuringRestore": "Error During Restore",
    "eventsAppearHint": "Events Appear Hint",
    "noLockouts": "No Lockouts",
    "webSearchDesc": "Web Search Desc",
    "audioProvidersHeading": "Audio Providers Heading",
    "cloudAgentProviders": "Dostawcy agentów w chmurze",
    "minutesAgo": "Minutes Ago",
    "a": "A",
    "liveAutoRefreshing": "Live Auto Refreshing",
    "webSearch": "Web Search",
    "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
    "addModelToCombo": "Add Model To Combo",
    "failedToLoad": "Failed To Load",
    "categoryMedia": "Category Media",
    "enableCloud": "Enable Cloud",
    "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
    "retry": "Retry",
    "embeddings": "Embeddings",
    "errorCount": "Error Count",
    "backupReasonManual": "Backup Reason Manual",
    "safeSearchModerate": "Safe Search Moderate",
    "activeLimiters": "Active Limiters",
    "a2aCardTitle": "A2A Card Title",
    "cloudWorkerUnreachable": "Cloud Worker Unreachable",
    "testFailed": "Test Failed",
    "compatibleBaseUrlHint": "Compatible Base Url Hint",
    "usageTracking": "Usage Tracking",
    "disableCloudTitle": "Disable Cloud Title",
    "noConnections": "No Connections",
    "providerHealth": "Provider Health",
    "confirmDbImport": "Confirm Db Import",
    "notAvailableSymbol": "Not Available Symbol",
    "backupsAvailable": "Backups Available",
    "providerAuto": "Provider Auto",
    "newProviderNamePlaceholder": "New Provider Name Placeholder",
    "a2aQuickStartStep2": "A2A Quick Start Step2",
    "ok": "Ok",
    "available": "Available",
    "noBackupYet": "No Backup Yet",
    "more": "More",
    "noCompatibleYet": "No Compatible Yet",
    "multiProvider": "Multi Provider",
    "repairEnvHint": "Repair Env Hint",
    "disablingCloud": "Disabling Cloud",
    "testBench": "Test Bench",
    "valid": "Valid",
    "cloudBenefitShare": "Cloud Benefit Share",
    "mcpCardTitle": "Mcp Card Title",
    "disableConfirm": "Disable Confirm",
    "filters": "Filters",
    "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
    "saveComboDefaults": "Save Combo Defaults",
    "cloudConnectedVerified": "Cloud Connected Verified",
    "uptime": "Uptime",
    "compatibleProdPlaceholder": "Compatible Prod Placeholder",
    "fallbackChainsTitle": "Fallback Chains Title",
    "oauthLabel": "Oauth Label",
    "a2aCardDescription": "A2A Card Description",
    "okShort": "Ok Short",
    "maintenance": "Maintenance",
    "formatConverter": "Format Converter",
    "zedImportNetworkError": "Zed Import Network Error",
    "apiKeyLabel": "Api Key Label",
    "noModelsForProvider": "No Models For Provider",
    "mcpCardDescription": "Mcp Card Description",
    "apiTypeLabel": "Api Type Label",
    "configuredProvidersLabel": "Configured Providers Label",
    "maxRetriesLabel": "Max Retries Label",
    "title": "Title",
    "output": "Output",
    "prefixHint": "Prefix Hint",
    "skipWizard": "Skip Wizard",
    "failedCount": "Failed Count",
    "confirmDbImportDesc": "Confirm Db Import Desc",
    "entries": "Entries",
    "until": "Until",
    "disableCombo": "Disable Combo",
    "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
    "runningCount": "Running Count",
    "noActiveConnectionsInGroup": "No Active Connections In Group",
    "savedSuccessfully": "Saved Successfully",
    "systemStorage": "System Storage",
    "videoDesc": "Video Desc",
    "maxResults": "Max Results",
    "timeRangeMonth": "Time Range Month",
    "testSummary": "Test Summary",
    "failedSetPassword": "Failed Set Password",
    "audio": "Audio",
    "restore": "Restore",
    "disableWarning": "Disable Warning",
    "moderationsDesc": "Moderations Desc",
    "providerHealthStatusAria": "Provider Health Status Aria",
    "modelNamePlaceholder": "Model Name Placeholder",
    "mcpQuickStartStep2": "Mcp Quick Start Step2",
    "quickStart": "Quick Start",
    "fullExportFailedWithError": "Full Export Failed With Error",
    "loadingBackups": "Loading Backups",
    "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
    "description": "Description",
    "noProviderFound": "No Provider Found",
    "auto": "Auto",
    "protocolsDescription": "Protocols Description",
    "cloudSessionNote": "Cloud Session Note",
    "advancedSettings": "Advanced Settings",
    "defaultStrategy": "Default Strategy",
    "purgeExpiredLogs": "Purge Expired Logs",
    "justNow": "Just Now",
    "providerTestFailed": "Provider Test Failed",
    "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
    "image": "Image",
    "failedCreateChain": "Failed Create Chain",
    "importDatabase": "Import Database",
    "allDataLocal": "All Data Local",
    "sectionTitle": "Section Title",
    "failedToggle": "Failed Toggle",
    "editCombo": "Edit Combo",
    "testResults": "Test Results",
    "searchQuery": "Search Query",
    "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": "Tylko bezpłatne",
    "addFirstProvider": "Dodaj swojego pierwszego dostawcę",
    "addFirstProviderDesc": "Połącz się z dostawcą AI, aby rozpocząć kierowanie żądań przez OmniRoute. Możesz korzystać z bezpłatnych dostawców, kluczy API lub kont OAuth.",
    "learnMore": "Dowiedz się więcej",
    "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": "Embeddings Desc",
    "operational": "Operational",
    "testAllApiKey": "Test All Api Key",
    "backupCreated": "Backup Created",
    "errorDuringImport": "Error During Import",
    "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
    "connecting": "Connecting",
    "fillModelAndProviders": "Fill Model And Providers",
    "syncing": "Syncing",
    "resetConfirm": "Reset Confirm",
    "trackMetrics": "Track Metrics",
    "successful": "Successful",
    "recovering": "Recovering",
    "autoDisableThreshold": "Auto Disable Threshold",
    "anthropic": "Anthropic",
    "syncingData": "Syncing Data",
    "cloudBenefitPorts": "Cloud Benefit Ports",
    "compatibleProviders": "Compatible Providers",
    "freeTierProviders": "Dostawcy bezpłatnego poziomu",
    "freeTierLabel": "Dostępny poziom bezpłatny",
    "freeTierProvidersDesc": "Dostawcy z bezpłatnymi poziomami — niektórzy wymagają rejestracji klucza API, inni w ogóle nie potrzebują poświadczeń.",
    "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": "Administrator grywalizacji",
    "monitorAnomaliesAndHealth": "Monitoruj anomalie i stan systemu",
    "flaggedAnomalies": "Oznaczone anomalie",
    "noAnomaliesDetected": "Nie wykryto żadnych anomalii",
    "apiKey": "Klucz API",
    "xpLastHour": "PD (1 godz.)",
    "zScore": "Wynik Z",
    "tokensCommunityServers": "Serwery społecznościowe",
    "tokensServerNamePlaceholder": "Nazwa serwera",
    "tokensApiKeyPlaceholder": "Klucz API",
    "tokensTokenBalance": "Saldo tokenów",
    "tokensSendTokens": "Wyślij tokeny",
    "tokensRecipientApiKeyId": "Identyfikator klucza API odbiorcy",
    "tokensRecipientApiKeyIdPlaceholder": "Wprowadź identyfikator klucza API odbiorcy",
    "tokensReasonOptional": "Powód (opcjonalnie)",
    "tokensReasonPlaceholder": "np. premia, nagroda",
    "tokensTransactionHistory": "Historia transakcji",
    "tokensNoTransactionsYet": "Nie ma jeszcze żadnych transakcji",
    "tokensInviteCodes": "Kody zaproszeń",
    "tokensMaxUses": "Maksymalne wykorzystanie",
    "tokensRedeemCode": "Wykorzystaj kod",
    "tokensRedeemCodePlaceholder": "Wpisz kod zaproszenia",
    "tokensYourActiveInvites": "Twoje aktywne zaproszenia",
    "tierCoverageTitle": "Zasięg poziomu",
    "tierCoverageSubtitle": "Dostawcy skonfigurowani według warstwy rezerwowej",
    "batchDetailCopyId": "Skopiuj dowód",
    "batchDetailClose": "Zamknij",
    "batchDetailEndpoint": "Punkt końcowy",
    "batchDetailModel": "Modelka",
    "batchDetailWindow": "Okno",
    "batchDetailCreated": "Utworzono",
    "providerTopologyEmpty": "Żaden dostawca nie jest jeszcze podłączony",
    "badgeToastUnlocked": "Odznaka odblokowana!",
    "batchListSearchPlaceholder": "Szukaj według identyfikatora, punktu końcowego, modelu…",
    "batchListDeleteAllCompletedTitle": "Usuń wszystkie ukończone partie",
    "batchListBatchesTable": "Partie",
    "changelogViewerLoading": "Ładowanie dziennika zmian z GitHuba...",
    "profileLoading": "Ładowanie profilu...",
    "profileHowToEarn": "Jak zarabiać",
    "bootstrapBannerDismiss": "Odrzuć",
    "batchListDeleteBatchTitle": "Usuń partię i jej pliki",
    "leaderboardYourRank": "Twoja ranga",
    "leaderboardLoading": "Ładowanie tabeli liderów...",
    "batchFileDetailCopyId": "Skopiuj dowód",
    "batchFileDetailClose": "Zamknij",
    "batchFileDetailFailedToLoad": "Nie udało się załadować zawartości pliku",
    "batchFilesListSearchPlaceholder": "Szukaj według identyfikatora lub nazwy pliku…",
    "batchFilesListFilesTable": "Pliki",
    "batchPageLoadingMore": "Ładowanie więcej…",
    "recommended": "__MISSING__: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": "Dom",
    "dashboard": "Pulpit nawigacyjny",
    "providers": "Dostawcy",
    "combos": "Kombinacje",
    "usage": "Użycie",
    "analytics": "Analityka",
    "costs": "Koszty",
    "health": "Zdrowie",
    "proxy": "Proxy",
    "limits": "Limity i kwoty",
    "cliTools": "Narzędzia interfejsu wiersza polecenia",
    "media": "Media",
    "settings": "Ustawienia",
    "translator": "Tłumacz",
    "playground": "Plac zabaw",
    "searchTools": "Search Tools",
    "agents": "Agenci",
    "cloudAgents": "Agenci w chmurze",
    "memory": "Memory",
    "skills": "Skills",
    "omniSkills": "OmniUmiejętności",
    "agentSkills": "Umiejętności agenta",
    "docs": "Dokumenty",
    "issues": "Problemy",
    "endpoints": "Punkty końcowe",
    "endpointsSubtitle": "Adresy URL połączeń AI",
    "apiManager": "Menedżer API",
    "apiManagerSubtitle": "Zarządzaj kluczami API i dostępem",
    "embeddedServices": "__MISSING__:Embedded Services",
    "embeddedServicesSubtitle": "__MISSING__:Manage local proxy services",
    "logs": "Dzienniki",
    "webhooks": "Haki internetowe",
    "webhooksSubtitle": "Otrzymuj powiadomienia o wydarzeniach",
    "combosSubtitle": "Dostawcy grupowi do przełączania awaryjnego",
    "batchSubtitle": "Przetwarzaj wiele żądań",
    "contextCavemanSubtitle": "Szybka kompresja",
    "contextRtkSubtitle": "Filtrowanie wyjściowe",
    "auditLog": "Dziennik audytu",
    "shutdown": "Wyłączenie",
    "restart": "Uruchom ponownie",
    "shutdownConfirm": "Wyłączyć OmniRoute?",
    "restartConfirm": "Zrestartować OmniRoute?",
    "version": "v{version}",
    "debug": "Debuguj",
    "system": "Systemu",
    "help": "Pomoc",
    "primarySection": "Main",
    "cliSection": "CLI",
    "debugSection": "Debug",
    "systemSection": "System",
    "helpSection": "Help",
    "serverDisconnected": "Serwer odłączony",
    "serverDisconnectedMsg": "Serwer proxy został zatrzymany lub uruchamia się ponownie.",
    "expandSidebar": "Rozwiń pasek boczny",
    "collapseSidebar": "Zwiń pasek boczny",
    "themes": "Themes",
    "presetColors": "Popular colors",
    "createTheme": "Create theme",
    "chooseColor": "Pick one color",
    "themeCoral": "Coral",
    "themeBlue": "Blue",
    "themeRed": "Red",
    "themeGreen": "Green",
    "themeViolet": "Violet",
    "themeOrange": "Orange",
    "themeCyan": "Cyan",
    "cliToolsShort": "Narzędzia",
    "cache": "Cache",
    "cacheShort": "Cache",
    "batch": "Batch Jobs",
    "themeSystem": "Theme System",
    "whitelabelingDesc": "Whitelabeling Desc",
    "switchThemes": "Switch Themes",
    "themeAccentDesc": "Theme Accent Desc",
    "uploadFavicon": "Upload Favicon",
    "themeDark": "Theme Dark",
    "customLogoDesc": "Custom Logo Desc",
    "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
    "themeAccent": "Theme Accent",
    "resetFavicon": "Reset Favicon",
    "whitelabeling": "Whitelabeling",
    "darkMode": "Dark Mode",
    "uploadLogo": "Upload Logo",
    "themeLight": "Theme Light",
    "appName": "App Name",
    "appNameDesc": "App Name Desc",
    "resetLogo": "Reset Logo",
    "customFavicon": "Custom Favicon",
    "hideHealthLogs": "Hide Health Logs",
    "customLogo": "Custom Logo",
    "appearance": "Appearance",
    "themeSelectionAria": "Theme Selection Aria",
    "themeCreate": "Theme Create",
    "customFaviconDesc": "Custom Favicon Desc",
    "logoPreview": "Logo Preview",
    "themeCustom": "Theme Custom",
    "hideHealthLogsDesc": "Hide Health Logs Desc",
    "faviconPreview": "Favicon Preview",
    "changelog": "Changelog",
    "contextSection": "Context & Cache",
    "contextCaveman": "Caveman",
    "contextRtk": "RTK",
    "contextCombos": "Engine Combos",
    "routingSection": "Routing",
    "protocolsSection": "Protocols",
    "agentsAiSection": "Agents & AI",
    "cacheContextSection": "Cache & Context",
    "analyticsSection": "Analytics",
    "costsSection": "Costs",
    "monitoringSection": "Monitoring",
    "auditSecuritySection": "Audit & Security",
    "devtoolsSection": "Dev Tools",
    "configurationSection": "Configuration",
    "aiFeaturesSection": "AI Features",
    "mcp": "MCP",
    "a2a": "A2A",
    "apiEndpoints": "API Endpoints",
    "batchFiles": "Files",
    "analyticsEvals": "Evals",
    "analyticsSearch": "Search",
    "analyticsUtilization": "Utilization",
    "analyticsComboHealth": "Combo Health",
    "analyticsCompression": "Compression",
    "costsBudget": "Budget",
    "costsQuotaShare": "Quota Sharing",
    "costsPricing": "Pricing",
    "logsProxy": "Proxy Logs",
    "logsConsole": "Console",
    "logsActivity": "Activity",
    "auditMcp": "MCP Audit",
    "auditA2a": "Audyt A2A",
    "settingsGeneral": "General",
    "settingsAppearance": "Appearance",
    "settingsAi": "AI Settings",
    "settingsSecurity": "Security",
    "settingsFeatureFlags": "Flagi funkcyjne",
    "settingsAuthz": "__MISSING__:Authz",
    "settingsRouting": "Routing",
    "settingsResilience": "Resilience",
    "settingsAdvanced": "Advanced",
    "omniProxySection": "OmniProxy",
    "quotaTracker": "Provider Quota",
    "providerQuota": "Provider Quota",
    "runtime": "Runtime",
    "consoleLogs": "Console Logs",
    "globalRouting": "Global Routing",
    "mitmProxy": "MITM Proxy",
    "oneProxy": "1Proxy",
    "agenticFeaturesSection": "Agentic Features",
    "otherFeaturesSection": "Other Features",
    "compressionContextGroup": "Compression Context",
    "toolsGroup": "Tools",
    "integrationsGroup": "Integrations",
    "proxyGroup": "Proxy",
    "costsParametersGroup": "Costs Parameters",
    "auditGroup": "Audit",
    "batchGroup": "Batch",
    "homeSubtitle": "Dashboard overview",
    "providersSubtitle": "Manage AI providers",
    "quotaTrackerSubtitle": "Track usage limits",
    "providerQuotaSubtitle": "Track provider usage limits",
    "runtimeSubtitle": "Realtime resilience & sessions",
    "contextCombosSubtitle": "Combine compression engines",
    "cliToolsSubtitle": "Configure CLI runtimes",
    "agentsSubtitle": "Manage local agents",
    "cloudAgentsSubtitle": "Manage cloud-based agents",
    "apiEndpointsSubtitle": "Expose custom endpoints",
    "proxySubtitle": "HTTP proxy settings",
    "mitmProxySubtitle": "MITM interception",
    "oneProxySubtitle": "Public proxy gateway",
    "leaderboard": "Leaderboard",
    "profile": "Profile",
    "tokens": "Tokens",
    "leaderboardSubtitle": "Rankings and achievements",
    "profileSubtitle": "Account and preferences",
    "tokensSubtitle": "Token usage and budgets",
    "usageSubtitle": "Traffic and usage stats",
    "analyticsComboHealthSubtitle": "Combo target reliability",
    "analyticsUtilizationSubtitle": "Provider utilization",
    "costsSubtitle": "Spend breakdown",
    "cacheSubtitle": "Cache hit rates",
    "analyticsCompressionSubtitle": "Token savings stats",
    "analyticsSearchSubtitle": "Search tool analytics",
    "analyticsEvalsSubtitle": "Eval suite results",
    "logsSubtitle": "Application logs",
    "logsProxySubtitle": "Proxy traffic logs",
    "consoleLogsSubtitle": "Console output",
    "logsActivitySubtitle": "User activity log",
    "healthSubtitle": "System health check",
    "costsPricingSubtitle": "Per-model pricing rules",
    "costsBudgetSubtitle": "Budget limits",
    "costsQuotaShareSubtitle": "Share provider quotas across keys",
    "auditLogSubtitle": "Authorization audit",
    "auditMcpSubtitle": "MCP server audit",
    "auditA2aSubtitle": "A2A protocol audit",
    "translatorSubtitle": "Format conversion",
    "playgroundSubtitle": "Test prompts live",
    "searchToolsSubtitle": "Search tool registry",
    "memorySubtitle": "Persistent agent memory",
    "omniSkillsSubtitle": "Sandbox skill registry",
    "agentSkillsSubtitle": "A2A skill registry",
    "mcpSubtitle": "MCP server controls",
    "a2aSubtitle": "A2A protocol server",
    "mediaSubtitle": "Cached media files",
    "batchFilesSubtitle": "Batch input/output files",
    "settingsSubtitle": "All settings",
    "settingsGeneralSubtitle": "App basics",
    "settingsAppearanceSubtitle": "Theme and layout",
    "settingsAiSubtitle": "AI behavior defaults",
    "globalRoutingSubtitle": "Global routing rules",
    "settingsResilienceSubtitle": "Retries and breakers",
    "settingsAdvancedSubtitle": "Power user options",
    "settingsSecuritySubtitle": "Auth and encryption",
    "settingsFeatureFlagsSubtitle": "Przełącz możliwości systemu",
    "settingsSidebar": "Sidebar",
    "settingsSidebarSubtitle": "Customize sidebar layout",
    "settingsAuthzSubtitle": "__MISSING__:Route inventory and bypass policy",
    "docsSubtitle": "Documentation",
    "issuesSubtitle": "Report a bug",
    "changelogSubtitle": "Release notes"
  },
  "webhooks": {
    "title": "Haki internetowe",
    "description": "Skonfiguruj wywołania zwrotne HTTP dla zdarzeń systemowych.",
    "configuredWebhooks": "Skonfigurowane webhooki",
    "configuredWebhooksDesc": "Zarządzaj punktami końcowymi dostarczania, subskrybowanymi zdarzeniami, statusem i wysyłaniami testowymi.",
    "addWebhook": "Dodaj webhooka",
    "editWebhook": "Edytuj webhooka",
    "name": "Imię",
    "namePlaceholder": "Monitorowanie produkcji",
    "unnamedWebhook": "Nienazwany webhook",
    "url": "Adres URL punktu końcowego",
    "events": "Wydarzenia",
    "allEvents": "Wszystkie wydarzenia",
    "secret": "Sekret",
    "secretPlaceholder": "Pozostaw puste, aby automatycznie wygenerować sekret",
    "secretEditPlaceholder": "Pozostaw puste, aby zachować bieżący sekret",
    "status": "Stan",
    "active": "Aktywny",
    "inactive": "Nieaktywny",
    "errored": "Błąd",
    "total": "Razem",
    "lastTriggered": "Ostatnio uruchomione",
    "actions": "Działania",
    "enabled": "Włączone",
    "enabledDesc": "Wyłączone webhooki pozostają zapisane, ale nie otrzymują dostaw.",
    "refresh": "Odśwież",
    "loading": "Ładowanie webhooków...",
    "never": "Nigdy",
    "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
    "testWebhook": "Wyślij test",
    "testSuccess": "Testowy webhook został wysłany pomyślnie.",
    "testFailed": "Testowanie webhooka nie powiodło się.",
    "saveSuccess": "Webhook został pomyślnie zapisany.",
    "saveFailed": "Nie udało się zapisać webhooka.",
    "loadFailed": "Nie udało się załadować webhooków.",
    "delete": "Usuń",
    "deleteConfirm": "Czy na pewno chcesz usunąć tego webhooka?",
    "deleteSuccess": "Webhook został pomyślnie usunięty.",
    "deleteFailed": "Nie udało się usunąć webhooka.",
    "edit": "Edytuj",
    "enable": "Włącz",
    "disable": "Wyłącz",
    "noWebhooks": "Nie skonfigurowano jeszcze żadnych webhooków.",
    "signatureTitle": "Podpisy webhooka",
    "signatureDescription": "Każda dostawa zawiera nagłówek X-Webhook-Signature podpisany za pomocą HMAC-SHA256 przy użyciu sekretu webhook. Zanim zaufasz ładunkowi, sprawdź podpis.",
    "wizard": {
      "cancel": "__MISSING__:Cancel",
      "step1Title": "__MISSING__:Select Integration",
      "step2Title": "__MISSING__:Configure Target",
      "step3Title": "__MISSING__:Events & Test",
      "back": "__MISSING__:Back",
      "next": "__MISSING__:Next",
      "finish": "__MISSING__:Finish",
      "step1Desc": "__MISSING__:Select the target integration system for this webhook."
    },
    "howItWorks": {
      "step1": "__MISSING__:Choose an integration provider (e.g. Slack, Discord, custom webhook) and set up the connection details.",
      "step2": "__MISSING__:Configure system events to subscribe to (e.g. completion errors, model fallbacks, or usage limits).",
      "step3": "__MISSING__:Verify the configuration by sending a test payload to make sure the endpoint receives it.",
      "step4": "__MISSING__:Secure your endpoint by validating the X-Webhook-Signature HMAC-SHA256 header using the webhook's secret.",
      "title": "__MISSING__:How Webhooks Work",
      "customOnly": "__MISSING__:Only applicable for custom endpoint integrations.",
      "hmacRecipeTitle": "__MISSING__:HMAC Verification Recipe",
      "hmacRecipe": "__MISSING__:To verify webhook payloads in Node.js, compute the HMAC-SHA256 of the raw request body using your secret key. Compare it to the X-Webhook-Signature header using timingSafeEqual.",
      "timeoutNote": "__MISSING__:Webhook deliveries have a timeout of 10 seconds.",
      "retryNote": "__MISSING__:Failed deliveries are retried up to 5 times with exponential backoff.",
      "docsLink": "__MISSING__:Read the full Webhooks developer guide",
      "hmacRecipePython": "__MISSING__:Python HMAC verification: hmac.new(secret, body, hashlib.sha256).hexdigest()",
      "hmacRecipeBash": "__MISSING__:Bash HMAC verification: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\""
    },
    "deliveries": {
      "title": "__MISSING__:Delivery Logs",
      "loadFailed": "__MISSING__:Failed to load webhook delivery logs.",
      "empty": "__MISSING__:No deliveries recorded yet. Trigger an event or send a test payload.",
      "status": "__MISSING__:Status",
      "event": "__MISSING__:Event",
      "latency": "__MISSING__:Latency",
      "at": "__MISSING__:Sent At"
    },
    "kinds": {
      "comingSoon": "__MISSING__:Coming Soon",
      "slack": "__MISSING__:Slack",
      "slackDesc": "__MISSING__:Post system events directly into a Slack channel",
      "telegram": "__MISSING__:Telegram",
      "telegramDesc": "__MISSING__:Send event messages using a Telegram bot",
      "discord": "__MISSING__:Discord",
      "discordDesc": "__MISSING__:Deliver real-time updates directly to a Discord server",
      "custom": "__MISSING__:Custom Webhook",
      "customDesc": "__MISSING__:Deliver system event payloads to any HTTPS endpoint",
      "email": "__MISSING__:Email Notification",
      "emailDesc": "__MISSING__:Receive summary updates via email",
      "pagerduty": "__MISSING__:PagerDuty",
      "pagerdutyDesc": "__MISSING__:Trigger alerts on PagerDuty for critical system issues",
      "teams": "__MISSING__:Microsoft Teams",
      "teamsDesc": "__MISSING__:Forward system notifications to Microsoft Teams channels"
    },
    "testPayloadSent": "__MISSING__:Test Payload Sent",
    "testResponse": "__MISSING__:Test Response",
    "validateUrl": {
      "checking": "__MISSING__:Checking URL...",
      "ok": "__MISSING__:URL is valid",
      "blockedPrivate": "__MISSING__:URL is a blocked private address",
      "invalidUrl": "__MISSING__:Invalid URL format"
    },
    "custom": {
      "endpointUrl": "__MISSING__:Endpoint URL",
      "endpointUrlPlaceholder": "__MISSING__:https://api.yourdomain.com/webhook",
      "secretKey": "__MISSING__:Secret Key",
      "secretKeyPlaceholder": "__MISSING__:Enter secret key or leave blank to auto-generate",
      "secretKeyHint": "__MISSING__:Used to sign the payload header for authentication."
    },
    "discord": {
      "webhookUrl": "__MISSING__:Discord Webhook URL",
      "webhookUrlPlaceholder": "__MISSING__:https://discord.com/api/webhooks/...",
      "webhookUrlHint": "__MISSING__:The webhook URL copied from your Discord channel integration settings.",
      "tutorial": "__MISSING__:How to create a Discord webhook:"
    },
    "slack": {
      "webhookUrl": "__MISSING__:Slack Webhook URL",
      "webhookUrlPlaceholder": "__MISSING__:https://hooks.slack.com/services/...",
      "webhookUrlHint": "__MISSING__:The webhook URL copied from your Slack Incoming Webhooks integration.",
      "tutorial": "__MISSING__:How to create a Slack webhook:"
    },
    "telegram": {
      "botToken": "__MISSING__:Telegram Bot Token",
      "botTokenPlaceholder": "__MISSING__:123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
      "botTokenHint": "__MISSING__:The HTTP API token received from @BotFather when creating your bot.",
      "chatId": "__MISSING__:Telegram Chat ID / Channel",
      "chatIdPlaceholder": "__MISSING__:-100123456789 or @channelname",
      "chatIdHint": "__MISSING__:The unique numerical identifier or public username of the chat/channel.",
      "tutorial": "__MISSING__:How to configure Telegram webhook:"
    }
  },
  "compliance": {
    "auditTitle": "Audyt",
    "auditDescription": "Przeglądaj zdarzenia dotyczące zgodności i wywołania narzędzi MCP z jednego widoku operacyjnego.",
    "complianceTab": "Zgodność",
    "mcpTab": "Audyt MPK",
    "title": "Audyt zgodności",
    "description": "Zdarzenia związane z polityką, dostępem, dostawcą i bezpieczeństwem rejestrowane w dzienniku kontroli zgodności.",
    "eventType": "Typ zdarzenia",
    "eventTypePlaceholder": "Filtruj według typu akcji lub zdarzenia",
    "severity": "Dotkliwość",
    "allSeverities": "Wszystkie dotkliwości",
    "info": "Informacje",
    "warning": "Ostrzeżenie",
    "critical": "Krytyczny",
    "sourceIp": "Źródłowy adres IP",
    "userOrKey": "Użytkownik / Klucz",
    "action": "Akcja",
    "result": "Wynik",
    "details": "Szczegóły",
    "timestamp": "Znacznik czasu",
    "from": "Od",
    "to": "Do",
    "refresh": "Odśwież",
    "export": "Eksportuj",
    "clearFilters": "Wyczyść filtry",
    "loading": "Ładowanie zdarzeń audytu...",
    "showing": "Wyświetlanie {count} z {total} wydarzeń",
    "policyViolation": "Naruszenie zasad",
    "accessDenied": "Odmowa dostępu",
    "injectionBlocked": "Wtrysk zablokowany",
    "noEvents": "Nie zarejestrowano żadnych zdarzeń związanych ze zgodnością.",
    "failedFetch": "Nie udało się pobrać dziennika kontroli zgodności.",
    "viewDetails": "Zobacz szczegóły",
    "closeDetails": "Zamknij szczegóły",
    "notAvailable": "—",
    "system": "systemu",
    "previous": "Poprzedni",
    "next": "Następny",
    "mcpAudit": "Audyt MPK",
    "mcpAuditDesc": "Wpisy audytu wywołań narzędzi zarejestrowane przez serwer MCP.",
    "failedFetchMcpAudit": "Nie udało się pobrać dziennika audytu MCP.",
    "tool": "Narzędzie",
    "toolPlaceholder": "Filtruj według nazwy narzędzia",
    "duration": "Czas trwania",
    "apiKey": "Klucz API",
    "output": "Wyjście",
    "allResults": "Wszystkie wyniki",
    "success": "Sukces",
    "failure": "Niepowodzenie",
    "noMcpEvents": "Nie zarejestrowano żadnych zdarzeń audytu MCP.",
    "a2aAudit": "Audyt A2A",
    "a2aAuditDesc": "Ścieżka audytu wykonania zadania zarejestrowana przez serwer A2A.",
    "a2aShowingTasks": "Wyświetlanie {count} z {total} zadań",
    "a2aSkill": "Umiejętność",
    "a2aSkillPlaceholder": "Filtruj według nazwy umiejętności",
    "a2aState": "Stan",
    "a2aAllStates": "Wszystkie stany",
    "a2aStateSubmitted": "Przesłane",
    "a2aStateWorking": "Pracujący",
    "a2aStateCompleted": "Ukończono",
    "a2aStateFailed": "Nie udało się",
    "a2aStateCancelled": "Anulowano",
    "a2aTaskId": "Identyfikator zadania",
    "a2aEvents": "Wydarzenia",
    "a2aArtifacts": "Artefakty",
    "a2aNoTasks": "Nie zarejestrowano żadnych zadań A2A.",
    "a2aLoadingTasks": "Ładowanie zadań A2A..."
  },
  "themesPage": {
    "title": "Themes",
    "description": "Choose a preset theme or create your own with a single color",
    "presetColors": "Popular colors",
    "customTheme": "Custom theme",
    "customThemeDesc": "Click create theme and pick one color",
    "createTheme": "Create theme",
    "activePreset": "Active theme"
  },
  "header": {
    "logout": "Wyloguj się",
    "language": "Język",
    "providers": "Dostawcy",
    "providerDescription": "Zarządzaj połączeniami dostawców AI",
    "combos": "Kombinacje",
    "comboDescription": "Kombinacje modeli z rezerwą",
    "usage": "Wykorzystanie i analityka",
    "usageDescription": "Monitoruj wykorzystanie interfejsu API, zużycie tokenów i dzienniki żądań",
    "analytics": "Analityka",
    "analyticsDescription": "Wykresy, trendy i spostrzeżenia dotyczące ocen",
    "cliTools": "Narzędzia interfejsu wiersza polecenia",
    "cliToolsDescription": "Skonfiguruj narzędzia CLI",
    "home": "Dom",
    "homeDescription": "Witamy w OmniRoute",
    "endpoint": "Endpoints",
    "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
    "mcp": "MCP",
    "mcpDescription": "Model Context Protocol server management and tools",
    "a2a": "A2A",
    "a2aDescription": "Agent-to-Agent protocol tasks and observability",
    "settings": "Ustawienia",
    "settingsDescription": "Zarządzaj swoimi preferencjami",
    "openaiCompatible": "Kompatybilny z OpenAI",
    "anthropicCompatible": "Kompatybilny z antropią",
    "media": "Media",
    "mediaDescription": "Generate images, videos, and music",
    "themes": "Themes",
    "themesDescription": "Choose a color theme for the whole dashboard panel",
    "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
    "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
    "limitsDescription": "Configure rate limits and quotas per API key and provider",
    "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
    "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
    "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
    "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
    "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
    "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
    "changelogDescription": "Stay up to date with the latest platform features and announcements.",
    "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
    "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
    "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
    "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
    "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
    "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
    "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
    "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
    "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
    "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
    "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
    "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
    "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
    "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
    "batchFilesDescription": "Browse and manage batch job output files and results",
    "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
    "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
    "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
    "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
    "analyticsCompressionDescription": "Context compression analytics and token savings",
    "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
    "costsPricingDescription": "Custom pricing configuration for token cost calculations",
    "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
    "logsConsoleDescription": "Application console output and debug logs",
    "logsActivityDescription": "Audit trail of user actions and system events",
    "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
    "auditA2a": "Audyt A2A",
    "auditA2aDescription": "Ścieżka audytu wykonania zadania A2A, zmiany stanów i zapisy wywołań umiejętności",
    "settingsGeneralDescription": "Storage, database, and general instance configuration",
    "settingsAppearanceDescription": "Theme, branding, and visual customization",
    "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
    "settingsSecurityDescription": "Authentication, authorization, and access control settings",
    "featureFlags": "Flagi funkcyjne",
    "featureFlagsDescription": "Możliwości systemu sterowania i funkcje eksperymentalne",
    "featureFlagsActive": "{count} aktywny",
    "featureFlagsInactive": "{count} nieaktywny",
    "featureFlagsOverrides": "{count} Zastąpienia DB",
    "featureFlagsSearch": "Szukaj flag...",
    "featureFlagsCategoryAll": "Wszystko",
    "featureFlagsCategorySecurity": "Bezpieczeństwo",
    "featureFlagsCategoryNetwork": "Sieć",
    "featureFlagsCategoryPolicies": "Zasady",
    "featureFlagsCategoryRuntime": "Czas wykonania",
    "featureFlagsCategoryCli": "interfejs wiersza polecenia",
    "featureFlagsCategoryHealth": "Zdrowie",
    "featureFlagsSourceDb": "DB",
    "featureFlagsSourceEnv": "ENV",
    "featureFlagsSourceDefault": "OBR",
    "featureFlagsReset": "Zresetuj",
    "featureFlagsResetAll": "Zresetuj wszystkie nadpisania",
    "featureFlagsResetAllConfirm": "Czy na pewno chcesz zresetować wszystkie zastąpienia flag funkcji? Spowoduje to przywrócenie wszystkich flag do wartości ENV lub wartości domyślnych.",
    "featureFlagsRestartRequired": "Aby złożyć wniosek, wymagane jest ponowne uruchomienie",
    "featureFlagsNoResults": "Żadna flaga nie pasuje do Twojego wyszukiwania",
    "featureFlagsSaved": "Flaga zaktualizowana",
    "featureFlagsError": "Nie udało się zaktualizować flagi",
    "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
    "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
    "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
    "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
    "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining"
  },
  "home": {
    "quickStart": "Szybki start",
    "quickStartDesc": "Zacznij działać w 4 krokach. Łącz dostawców, kieruj modele, monitoruj wszystko.",
    "fullDocs": "Pełna dokumentacja",
    "step1Title": "1. Utwórz klucz API",
    "step1Desc": "Przejdź do <endpoint>Endpoint</endpoint> -> Zarejestrowane klucze. Wygeneruj jeden klucz na środowisko.",
    "step2Title": "2. Połącz dostawców",
    "step2Desc": "Dodaj konta w <providers>Providers</providers>. Obsługuje OAuth, klucz API i bezpłatne poziomy.",
    "step3Title": "3. Wskaż swojego klienta",
    "step3Desc": "Ustaw podstawowy adres URL na {url} w swoim kliencie IDE lub API.",
    "step4Title": "4. Monitoruj i optymalizuj",
    "step4Desc": "Śledź tokeny, koszty i błędy w <logs>Dziennikach żądań</logs> i <analytics>Analytics</analytics>.",
    "providersOverview": "Przegląd dostawców",
    "configuredOf": "{configured} skonfigurowany z {total} dostępnych dostawców",
    "noModelsAvailable": "Brak dostępnych modeli tego dostawcy.",
    "noProvidersConfigured": "Nie skonfigurowano jeszcze żadnego dostawcy",
    "addProvider": "Dodaj dostawcę",
    "configureFirst": "Najpierw skonfiguruj połączenie w {providers}",
    "configureProvider": "Skonfiguruj dostawcę",
    "modelAvailable": "Dostępny model {count}",
    "modelsAvailable": "Dostępne modele {count}",
    "connectionsActive": "{count} połączenie aktywne",
    "connectionsActivePlural": "{count} aktywne połączenia",
    "copyModelName": "Skopiuj nazwę modelu",
    "documentation": "Dokumentacja",
    "healthMonitor": "Monitor zdrowia",
    "reportIssue": "Zgłoś problem",
    "activeError": "{active} aktywny · {errors} błąd",
    "oauthLabel": "OAuth",
    "apiKeyLabel": "Klucz API",
    "requestsShort": "{count} wymagania",
    "providerModelsTitle": "{provider} - Modele",
    "copiedModel": "Skopiowano: {model}",
    "aliasLabel": "pseudonim",
    "updateNow": "Zaktualizuj",
    "updating": "Aktualizowanie...",
    "updateAvailableDesc": "Dostępna jest nowa wersja. Kliknij, aby zaktualizować.",
    "updateStarted": "Aktualizacja rozpoczęta...",
    "reloadingPageAutomatically": "Automatyczne ładowanie strony...",
    "providerTopology": "Topologia dostawcy"
  },
  "analytics": {
    "title": "Analityka",
    "usageAnalyticsTitle": "__MISSING__:Usage Analytics",
    "diversityScoreTitle": "Różnorodność dostawców",
    "diversityScoreDesc": "__MISSING__:Provider concentration snapshot for the recent traffic window.",
    "diversityShannonEntropy": "__MISSING__:Shannon entropy",
    "diversityWindow": "__MISSING__:Window: {count} reqs · Last {mins} mins",
    "diversityHealthy": "__MISSING__:Healthy Distribution",
    "diversityRiskHigh": "__MISSING__:High Vendor Lock-in Risk",
    "diversityRiskModerate": "__MISSING__:Moderate Distribution",
    "diversityScoreLabel": "__MISSING__:score",
    "diversityHigherExplanation": "__MISSING__:Higher values mean traffic is spread across multiple providers.",
    "diversityNoData": "__MISSING__:No recent usage data available.",
    "chartRequests": "__MISSING__:Requests",
    "chartInput": "__MISSING__:Input",
    "chartOutput": "__MISSING__:Output",
    "chartTotal": "__MISSING__:Total",
    "chartCost": "__MISSING__:Cost",
    "chartShare": "__MISSING__:Share",
    "chartServiceTier": "__MISSING__:Service Tier",
    "chartServiceTierSplit": "__MISSING__:Fast / Standard cost split",
    "chartCostPct": "__MISSING__:{pct}% of cost",
    "chartUsageDetail": "__MISSING__:Usage Detail",
    "chartCacheRead": "__MISSING__:Cache read",
    "chartCostByProvider": "__MISSING__:Cost by Provider",
    "chartNoCostData": "__MISSING__:No cost data",
    "chartModelUsageOverTime": "__MISSING__:Model Usage Over Time",
    "chartNoData": "__MISSING__:No data",
    "chartWeekly": "__MISSING__:Weekly",
    "chartModelBreakdown": "__MISSING__:Model Breakdown",
    "chartModel": "__MISSING__:Model",
    "chartProvider": "__MISSING__:Provider",
    "chartProviderBreakdown": "__MISSING__:Provider Breakdown",
    "filterAllKeys": "__MISSING__:All Keys",
    "filterSearchKeys": "__MISSING__:Search keys…",
    "filterNoKeysMatch": "__MISSING__:No keys match",
    "filterOneKey": "__MISSING__:1 key",
    "filterMultipleKeys": "__MISSING__:{count} keys",
    "rangeToday": "__MISSING__:Today",
    "rangeYesterday": "__MISSING__:Yesterday",
    "rangeLast3Days": "__MISSING__:Last 3 days",
    "rangeThisWeek": "__MISSING__:This week",
    "rangeLast14Days": "__MISSING__:Last 14 days",
    "rangeThisMonth": "__MISSING__:This month",
    "rangeQuickSelect": "__MISSING__:Quick Select",
    "rangeStart": "__MISSING__:Start",
    "rangeEnd": "__MISSING__:End",
    "rangeCancel": "__MISSING__:Cancel",
    "rangeApply": "__MISSING__:Apply",
    "rangeErrorInvalid": "__MISSING__:Start must be before end",
    "period1D": "__MISSING__:1D",
    "period7D": "__MISSING__:7D",
    "period30D": "__MISSING__:30D",
    "period90D": "__MISSING__:90D",
    "periodYTD": "__MISSING__:YTD",
    "periodAll": "__MISSING__:All",
    "totalTokens": "__MISSING__:Total Tokens",
    "inputTokens": "__MISSING__:Input Tokens",
    "outputTokens": "__MISSING__:Output Tokens",
    "estCost": "__MISSING__:Est. Cost",
    "infraTitle": "__MISSING__:Infrastructure",
    "infraAccounts": "__MISSING__:Accounts",
    "infraProviders": "__MISSING__:Providers",
    "infraApiKeys": "__MISSING__:API Keys",
    "infraModels": "__MISSING__:Models",
    "perfTitle": "__MISSING__:Performance",
    "perfAvgTokens": "__MISSING__:Avg Tokens/Req",
    "perfCostReq": "__MISSING__:Cost/Req",
    "perfIoRatio": "__MISSING__:I/O Ratio",
    "perfFastReq": "__MISSING__:Fast Requests",
    "highlightsTitle": "__MISSING__:Highlights",
    "highlightsTopModel": "__MISSING__:Top Model",
    "highlightsTopProvider": "__MISSING__:Top Provider",
    "highlightsBusiestDay": "__MISSING__:Busiest Day",
    "highlightsDiversity": "__MISSING__:Diversity",
    "highlightsFallbackRate": "__MISSING__:Fallback Rate",
    "customRange": "__MISSING__:Custom",
    "overviewDescription": "Monitoruj wzorce wykorzystania interfejsu API, zużycie tokenów, koszty i trendy aktywności u wszystkich dostawców i modeli.",
    "evalsDescription": "Uruchom pakiety ewaluacyjne, aby przetestować i zweryfikować punkty końcowe LLM. Porównaj jakość modelu, wykryj regresje i porównaj opóźnienia.",
    "overview": "Przegląd",
    "evals": "Ewaluacje",
    "utilization": "Wykorzystanie",
    "utilizationDescription": "Trendy wykorzystania kwoty dostawcy i śledzenie limitów szybkości",
    "modelStatus": "Stan modelu",
    "modelStatusCooldown": "Czas odnowienia",
    "modelStatusUnavailable": "Niedostępne",
    "modelStatusError": "Błąd",
    "comboHealth": "Zdrowie Kombinacji",
    "comboHealthDescription": "Kwota na poziomie kombinacji, dystrybucja użycia i metryki wydajności",
    "compressionAnalyticsTitle": "Compression Analytics",
    "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
    "autoRoutingTotalAutoRequests": "Łączna liczba żądań automatycznych",
    "autoRoutingAvgSelectionScore": "Średni wynik wyboru",
    "autoRoutingExplorationRate": "Tempo eksploracji",
    "autoRoutingLkgpHitRate": "Współczynnik trafień LKGP",
    "autoRoutingRequestsByVariant": "Żądania według wariantu",
    "autoRoutingTopRoutedProviders": "Najlepsi dostawcy tras",
    "comboHealthWorstQuotaLeft": "Pozostał najgorszy limit",
    "comboHealthUsageSkew": "Przekrzywienie użytkowania",
    "comboHealthSuccessRate": "Wskaźnik sukcesu",
    "comboHealthQuotaHealth": "Zdrowie kwotowe",
    "comboHealthRequests": "Żądania",
    "comboHealthTokens": "Żetony",
    "comboHealthAvgLatency": "Średnie opóźnienie",
    "comboHealthTotalRequests": "Łączna liczba żądań",
    "comboHealthExecutionTargets": "Cele wykonania",
    "comboHealthSuccess": "Sukces",
    "comboHealthLatency": "Opóźnienie",
    "comboHealthQuota": "Limit",
    "comboHealthTitle": "Kombinowane zdrowie",
    "comboHealthUnableToLoad": "Nie można wczytać zdrowia kombinacji",
    "comboHealthGettingStarted": "Rozpoczęcie",
    "compressionAnalyticsTotalRequests": "Łączna liczba żądań",
    "compressionAnalyticsTokensSaved": "Tokeny zapisane",
    "compressionAnalyticsAvgSavings": "Średnie oszczędności",
    "compressionAnalyticsAvgDuration": "Średni czas trwania",
    "compressionAnalyticsReceipts": "Wpływy",
    "compressionAnalyticsFallbacks": "Awarie",
    "compressionAnalyticsPromptTokens": "Tokeny podpowiedzi",
    "compressionAnalyticsCompletionTokens": "Żetony ukończenia",
    "compressionAnalyticsTotalTokens": "Suma tokenów",
    "compressionAnalyticsCacheTokens": "Tokeny pamięci podręcznej",
    "compressionAnalyticsNoDataYet": "Nie ma jeszcze danych dotyczących kompresji",
    "searchAnalyticsTotalSearches": "Całkowita liczba wyszukiwań",
    "searchAnalyticsCacheHitRate": "Współczynnik trafień w pamięci podręcznej",
    "searchAnalyticsTotalCost": "Całkowity koszt",
    "searchAnalyticsAvgResponse": "Średnia odpowiedź",
    "searchAnalyticsNoSearchesYet": "Nie ma jeszcze żadnych wyszukiwań",
    "providerUtilizationTitle": "Wykorzystanie dostawcy",
    "providerUtilizationFailedToLoad": "Nie udało się załadować danych o wykorzystaniu",
    "providerUtilizationNoData": "Brak dostępnych danych o wykorzystaniu",
    "providerUtilizationGettingStarted": "Rozpoczęcie",
    "providerUtilizationLatestSnapshot": "Najnowsza migawka przydziału",
    "providerUtilizationRemainingCapacity": "Pozostała pojemność"
  },
  "apiManager": {
    "title": "Klucze API",
    "createKey": "Utwórz klucz API",
    "key": "Klucz",
    "revokeKey": "Unieważnij klucz",
    "revokeConfirm": "Czy na pewno chcesz unieważnić ten klucz API?",
    "noKeys": "Nie ma jeszcze kluczy API",
    "noKeysDesc": "Utwórz swój pierwszy klucz API, aby uwierzytelniać żądania kierowane do punktu końcowego",
    "keyLabel": "Etykieta klucza",
    "permissions": "Uprawnienia",
    "expiresAt": "Wygasa",
    "never": "Nigdy",
    "revoke": "Odwołaj",
    "showKey": "Pokaż klucz",
    "hideKey": "Ukryj klucz",
    "copyKey": "Skopiuj klucz API",
    "allModels": "Wszystkie modele",
    "selectedModels": "Wybrane modele",
    "readOnly": "Tylko do odczytu",
    "fullAccess": "Pełny dostęp",
    "keyManagement": "Zarządzanie kluczami API",
    "keyManagementDesc": "Twórz klucze API i zarządzaj nimi w celu uwierzytelniania żądań kierowanych do punktu końcowego",
    "totalKeys": "Razem klucze",
    "restricted": "Ograniczone",
    "totalRequests": "Łączna liczba żądań",
    "modelsAvailable": "Dostępne modele",
    "registeredKeys": "Zarejestrowane klucze",
    "keysRegistered": "Zarejestrowano {count} kluczy",
    "keyRegistered": "Zarejestrowano klucz {count}",
    "keysSecurityNote": "Każdy klucz izoluje śledzenie użycia i może zostać odwołany niezależnie. Klucze są maskowane po utworzeniu ze względów bezpieczeństwa.",
    "createFirstKey": "Utwórz swój pierwszy klucz",
    "name": "Imię",
    "usage": "Użycie",
    "created": "Utworzono",
    "actions": "Działania",
    "reqs": "wymagania",
    "neverUsed": "Nigdy nie używany",
    "deleteConfirm": "Usunąć ten klucz API?",
    "usageTips": "Wskazówki dotyczące użytkowania",
    "tipAuth": "Użyj kluczy API w nagłówku autoryzacji jako Nośnik YOUR_KEY",
    "tipSecure": "Klucze są wyświetlane tylko raz podczas tworzenia — przechowuj je bezpiecznie",
    "tipSeparate": "Utwórz osobne klucze dla różnych klientów lub środowisk",
    "tipRestrict": "Ogranicz klucze do określonych modeli, aby zapewnić większe bezpieczeństwo i kontrolę kosztów",
    "keyName": "Nazwa klucza",
    "keyNamePlaceholder": "np. klucz produkcyjny, klucz rozwojowy",
    "keyNameDesc": "Wybierz opisową nazwę identyfikującą przeznaczenie tego klucza",
    "managementAccessDesc": "Zezwól temu kluczowi API na zarządzanie konfiguracją OmniRoute.",
    "selfServiceVisibility": "Widoczność samoobsługowa",
    "selfServiceVisibilityDesc": "Kontroluje, co ten klucz może zobaczyć o własnym użyciu i współdzielonym limicie upstream.",
    "ownUsageVisibility": "Własny koszt i użycie tokenów",
    "ownUsageVisibilityDesc": "Zezwól temu kluczowi wywołać własny endpoint statusu, aby zobaczyć własne użycie USD, procent budżetu i sumy tokenów.",
    "sharedAccountQuotaVisibility": "Współdzielony limit konta",
    "sharedAccountQuotaVisibilityDesc": "Zezwól temu kluczowi zobaczyć współdzielony limit konta upstream, gdy skonfigurowano jedno jawne połączenie.",
    "keyCreated": "Utworzono klucz API",
    "keyCreatedSuccess": "Klucz został utworzony pomyślnie!",
    "keyCreatedNote": "Skopiuj i zapisz ten klucz teraz — nie będzie on więcej wyświetlany.",
    "done": "Gotowe",
    "savePermissions": "Zapisz uprawnienia",
    "endpointRestrictions": "__MISSING__:Allowed Endpoints",
    "allEndpointsAllowed": "__MISSING__:This key can access all API endpoints.",
    "endpointsRestricted": "__MISSING__:Restricted to {count} endpoint{count, plural, one {} other {s}}.",
    "autoResolve": "Auto-Resolve",
    "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
    "keyActive": "Key Active",
    "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
    "accessSchedule": "Access Schedule",
    "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
    "scheduleFrom": "From",
    "scheduleUntil": "Until",
    "scheduleDays": "Days",
    "scheduleTimezone": "Timezone",
    "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
    "scheduleActive": "Schedule",
    "disabled": "Disabled",
    "daySun": "Sun",
    "dayMon": "Mon",
    "dayTue": "Tue",
    "dayWed": "Wed",
    "dayThu": "Thu",
    "dayFri": "Fri",
    "daySat": "Sat",
    "allowAll": "Zezwalaj na wszystko",
    "restrict": "Ogranicz",
    "allowAllInfo": "Ten klucz umożliwia dostęp do wszystkich dostępnych modeli.",
    "restrictInfo": "Ten klucz umożliwia dostęp do {selected} z {total} modeli.",
    "selected": "Wybrano {count}",
    "all": "Wszystko",
    "clear": "Jasne",
    "searchModels": "Wyszukaj modele według nazwy lub dostawcy...",
    "noModelsFound": "Nie znaleziono żadnych modeli",
    "keyNameRequired": "Nazwa klucza jest wymagana",
    "keyNameTooLong": "Nazwa klucza musi mieć maksymalnie {max} znaków",
    "keyNameInvalid": "Nazwa klucza może zawierać tylko litery, cyfry, spacje, łączniki i podkreślenia",
    "invalidKeyName": "Nieprawidłowa nazwa klucza",
    "failedCreateKey": "Nie udało się utworzyć klucza",
    "failedCreateKeyRetry": "Nie udało się utworzyć klucza. Spróbuj ponownie.",
    "invalidKeyId": "Nieprawidłowy identyfikator klucza",
    "failedDeleteKey": "Nie udało się usunąć klucza",
    "failedDeleteKeyRetry": "Nie udało się usunąć klucza. Spróbuj ponownie.",
    "invalidModelsSelection": "Nieprawidłowy wybór modeli",
    "cannotSelectMoreThanModels": "Nie można wybrać więcej niż {max} modeli",
    "failedUpdatePermissions": "Nie udało się zaktualizować uprawnień",
    "failedUpdatePermissionsRetry": "Nie udało się zaktualizować uprawnień. Spróbuj ponownie.",
    "unknownProvider": "nieznany",
    "copyMaskedKey": "Skopiuj zamaskowany klucz",
    "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "lastUsedOn": "Ostatni: {date}",
    "editPermissions": "Edytuj uprawnienia",
    "deleteKey": "Usuń klucz",
    "regenerateKey": "Zregeneruj klucz",
    "regenerateConfirm": "Czy na pewno chcesz ponownie wygenerować ten klucz API? Stary klucz zostanie natychmiast unieważniony.",
    "failedRegenerateKey": "Nie udało się ponownie wygenerować klucza API",
    "failedRegenerateKeyRetry": "Nie udało się ponownie wygenerować klucza API. Spróbuj ponownie.",
    "model": "Model {count}",
    "models": "{count} modele",
    "permissionsTitle": "Uprawnienia: {name}",
    "allowAllDesc": "Ten klucz umożliwia dostęp do wszystkich dostępnych modeli.",
    "restrictDesc": "Ten klucz umożliwia dostęp do {selectedCount} z {totalModels} modeli.",
    "selectedCount": "Wybrano {count}",
    "maxActiveSessions": "Maksymalna liczba aktywnych sesji",
    "apiManagerCustomRateLimits": "Niestandardowe limity stawek",
    "apiManagerCustomRateLimitsDesc": "Zastąp globalne limity domyślne. Pozostaw puste, aby użyć wartości domyślnych.",
    "apiManagerRateLimitRequestsPlaceholder": "Żądania",
    "apiManagerRateLimitReqPer": "żądanie /",
    "apiManagerRateLimitSecondsPlaceholder": "Sekundy",
    "apiManagerRemoveLimitTitle": "Usuń limit",
    "apiManagerTimezonePlaceholder": "Ameryka/Sao Paulo",
    "noLogPayloadPrivacy": "Prywatność ładunku bez logów",
    "bannedStatus": "Zakazany status",
    "managementApiAccess": "Dostęp do interfejsu API zarządzania",
    "expirationDate": "Data ważności",
    "managementAccess": "Dostęp do zarządzania",
    "allowedConnections": "Dozwolone połączenia",
    "searchPlaceholder": "__MISSING__:Search by name or token...",
    "activeOnly": "__MISSING__:Active only",
    "filterStatus": "__MISSING__:STATUS",
    "filterType": "__MISSING__:TYPE",
    "filterAll": "__MISSING__:All",
    "filterStatusActive": "__MISSING__:Active",
    "filterStatusDisabled": "__MISSING__:Disabled",
    "filterStatusBanned": "__MISSING__:Banned",
    "filterStatusExpired": "__MISSING__:Expired",
    "filterTypeStandard": "__MISSING__:Standard",
    "filterTypeManage": "__MISSING__:Manage",
    "filterTypeRestricted": "__MISSING__:Restricted",
    "shownOf": "__MISSING__:{shown} of {total} shown",
    "emptyFilterTitle": "__MISSING__:No keys match your filters",
    "emptyFilterClear": "__MISSING__:Clear filters",
    "endpointRestrictions": "Allowed Endpoints",
    "allEndpointsAllowed": "This key can access all API endpoints.",
    "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}."
  },
  "auditLog": {
    "title": "Dziennik audytu",
    "searchPlaceholder": "Wyszukaj działania...",
    "action": "Akcja",
    "actor": "Aktor",
    "target": "Cel",
    "ipAddress": "Adres IP",
    "timestamp": "Znacznik czasu",
    "noEntries": "Nie znaleziono wpisów audytu",
    "filterByAction": "Filtruj według działania...",
    "filterByActor": "Filtruj według aktora...",
    "filterEntriesAria": "Filtruj wpisy dziennika audytu",
    "filterByActionTypeAria": "Filtruj według typu akcji",
    "filterByActorAria": "Filtruj według aktora",
    "refreshAuditLogAria": "Odśwież dziennik audytu",
    "tableAria": "Wpisy dziennika audytu",
    "failedFetchAuditLog": "Nie udało się pobrać dziennika kontroli",
    "notAvailable": "—",
    "description": "Działania administracyjne i zdarzenia związane z bezpieczeństwem",
    "showing": "Wyświetlanie wpisów {count} (przesunięcie {offset})",
    "previous": "Poprzedni"
  },
  "media": {
    "title": "Studio multimediów",
    "subtitle": "Generuj obrazy, wideo i muzykę",
    "model": "Model",
    "prompt": "Prompt",
    "generate": "Generuj",
    "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": "__MISSING__:Embedding",
      "image": "__MISSING__:Image",
      "imageToText": "__MISSING__:Image to Text",
      "tts": "__MISSING__:Text to Speech",
      "stt": "__MISSING__:Speech to Text",
      "webSearch": "__MISSING__:Web Search",
      "webFetch": "__MISSING__:Web Fetch",
      "video": "__MISSING__:Video",
      "music": "__MISSING__:Music"
    },
    "noProviders": "__MISSING__:No providers configured for this kind yet.",
    "addConnection": "__MISSING__:Add Connection",
    "backToProviders": "__MISSING__:Back to Providers",
    "connections": "__MISSING__:{count} Connections",
    "noConnections": "__MISSING__:No connections yet — add one from the provider page.",
    "loading": "__MISSING__: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": "Kopiuj",
    "resetToDefault": "Przywróć ustawienia domyślne",
    "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": "Narzędzia interfejsu wiersza polecenia",
    "noActiveProviders": "Brak aktywnych dostawców",
    "noActiveProvidersDesc": "Najpierw dodaj i połącz dostawców, aby skonfigurować narzędzia CLI.",
    "mapModels": "Modele map",
    "testConnection": "Połączenie testowe",
    "connectionStatus": "Stan połączenia",
    "configureEndpoint": "Skonfiguruj punkt końcowy",
    "instructions": "Instrukcje",
    "modelMapping": "Mapowanie modelu",
    "baseUrl": "Bazowy adres URL",
    "apiKey": "Klucz API",
    "configured": "Skonfigurowane",
    "notConfigured": "Nie skonfigurowano",
    "notInstalled": "Nie zainstalowano",
    "custom": "Niestandardowe",
    "unknown": "Nieznany",
    "lastSavedAt": "Ostatnio zapisany: {date}",
    "never": "Nigdy",
    "justNow": "właśnie teraz",
    "minutesAgoShort": "{count}m temu",
    "hoursAgoShort": "{count}h temu",
    "daysAgoShort": "{count}d temu",
    "monthsAgoShort": "{count}miesiące temu",
    "yearsAgoShort": "{count}y temu",
    "runtimeCheckFailed": "Kontrola czasu wykonania nie powiodła się",
    "yourApiKeyPlaceholder": "twój-api-key",
    "modelPlaceholder": "dostawca/identyfikator modelu",
    "configurationSaved": "Konfiguracja została zapisana pomyślnie.",
    "failedToSave": "Nie udało się zapisać konfiguracji.",
    "noApiKeysCreateOne": "Brak kluczy API — utwórz je na stronie Klucze",
    "defaultOmnirouteKey": "sk_omniroute (domyślnie)",
    "selectModel": "Wybierz Model",
    "selectModelForAlias": "Wybierz model dla {alias}",
    "selectModelForTool": "Wybierz model dla {tool}",
    "select": "Wybierz",
    "clear": "Jasne",
    "comingSoon": "Już wkrótce",
    "checkingRuntime": "Sprawdzam stan środowiska wykonawczego...",
    "guideOnlyIntegration": "Integracja wyłącznie w trybie przewodnika (nie jest wymagane lokalne środowisko wykonawcze)",
    "cliRuntimeDetected": "Środowisko wykonawcze CLI zostało wykryte i gotowe",
    "cliFoundNotRunnable": "Znaleziono interfejs CLI, ale nie można go uruchomić{reason}",
    "cliRuntimeNotDetected": "Nie wykryto środowiska wykonawczego CLI",
    "binary": "Binarny",
    "configPath": "Ścieżka konfiguracji",
    "configPathShort": "Konfig",
    "failedCheckRuntimeStatus": "Nie udało się sprawdzić stanu środowiska wykonawczego.",
    "copy": "Kopiuj",
    "copied": "Skopiowano",
    "copyConfig": "Kopiuj konfigurację",
    "saveConfig": "Zapisz konfigurację",
    "selectionSaved": "Wybór został zapisany",
    "guide": "Przewodnik",
    "detected": "Wykryto",
    "notReady": "Nie gotowy",
    "active": "Aktywny",
    "inactive": "Nieaktywny",
    "startMitm": "Uruchom MITM",
    "stopMitm": "Zatrzymaj MITM",
    "mitmStarted": "MITM rozpoczęło się pomyślnie!",
    "mitmStopped": "MITM został zatrzymany pomyślnie!",
    "failedStart": "Nie udało się uruchomić MITM",
    "failedStop": "Nie udało się zatrzymać MITM",
    "saveMappings": "Zapisz mapowania",
    "mappingsSaved": "Mapowania zapisane!",
    "failedSaveMappings": "Nie udało się zapisać mapowań",
    "howItWorks": "Jak to działa:",
    "antigravityHowWorksDesc": "Antygrawitacja wysyła żądania do punktu końcowego Google. MITM przechwytuje i przekierowuje je do OmniRoute.",
    "antigravityStep1": "1. Uruchom MITM, aby kierować żądania przez OmniRoute.",
    "antigravityStep2Prefix": "2. Dodaj",
    "antigravityStep2Suffix": "do pliku hosts jako 127.0.0.1.",
    "antigravityStep3": "3. Otwórz Antygrawitację i żądania zostaną przesłane przez serwer proxy.",
    "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
    "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
    "mitmStep2Prefix": "2. Add",
    "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
    "mitmStep3": "3. Open {toolName} and requests will be proxied.",
    "sudoPasswordRequiredTitle": "Wymagane hasło Sudo",
    "sudoPasswordHint": "Aby zmodyfikować ustawienia pliku hosts i systemowego serwera proxy, wymagane jest hasło administratora.",
    "enterSudoPassword": "Wprowadź hasło sudo",
    "sudoPasswordRequiredError": "Wymagane jest hasło Sudo.",
    "cancel": "Anuluj",
    "confirm": "Potwierdź",
    "settingsApplied": "Ustawienia zostały zastosowane pomyślnie!",
    "failedApplySettings": "Nie udało się zastosować ustawień",
    "settingsReset": "Ustawienia zostały zresetowane pomyślnie!",
    "failedResetSettings": "Nie udało się zresetować ustawień",
    "backupRestored": "Kopia zapasowa przywrócona!",
    "failedRestore": "Nie udało się przywrócić",
    "checkingCli": "Sprawdzam {tool} CLI...",
    "cliNotRunnable": "{tool} Zainstalowano CLI, ale nie można go uruchomić",
    "cliNotInstalled": "{tool} Interfejs CLI nie jest zainstalowany",
    "cliNotDetected": "{tool} Nie wykryto interfejsu CLI",
    "cliDetectedReady": "{tool} Wykryto interfejs CLI i jest on gotowy",
    "cliFoundFailedHealthcheck": "{tool} Znaleziono interfejs CLI, ale kontrola stanu środowiska wykonawczego nie powiodła się{reason}.",
    "installCliPrompt": "Aby móc korzystać z tej funkcji, zainstaluj {tool} CLI.",
    "installCodexPrompt": "Aby skorzystać z funkcji automatycznego stosowania, zainstaluj Codex CLI.",
    "hide": "Ukryj",
    "howToInstall": "Jak zainstalować",
    "installationGuide": "Przewodnik instalacji",
    "platforms": "macOS/Linux/Windows:",
    "afterInstallationRun": "Po instalacji uruchom",
    "toVerify": "zweryfikować.",
    "current": "Aktualny",
    "baseUrlPlaceholder": "https://.../v1",
    "resetToDefault": "Przywróć ustawienia domyślne",
    "providerModelPlaceholder": "dostawca/identyfikator modelu",
    "apply": "Zastosuj",
    "reset": "Zresetuj",
    "manualConfig": "Konfiguracja ręczna",
    "backups": "Kopie zapasowe",
    "configBackups": "Skonfiguruj kopie zapasowe",
    "noBackupsYet": "Nie ma jeszcze kopii zapasowych. Kopie zapasowe są tworzone automatycznie przed każdym Zastosowaniem lub Resetem.",
    "restore": "Przywróć",
    "backupRestoredReloading": "Kopia zapasowa przywrócona! Stan ponownego ładowania...",
    "failedRestoreBackup": "Nie udało się przywrócić kopii zapasowej",
    "applied": "Zastosowano!",
    "failed": "Nie udało się",
    "resetDone": "Zresetuj!",
    "omnirouteConfiguredOpenAiCompatible": "OmniRoute jest skonfigurowany jako dostawca zgodny z OpenAI",
    "provider": "Dostawca",
    "model": "Modelka",
    "providers": "Dostawcy",
    "auth": "Autoryt",
    "noApiKeysAvailable": "Brak dostępnych kluczy API",
    "usingDefaultOmniroute": "Używam domyślnego: sk_omniroute",
    "updateConfig": "Zaktualizuj konfigurację",
    "applyConfig": "Zastosuj konfigurację",
    "noBackupsAvailable": "Brak dostępnych kopii zapasowych.",
    "profileSaved": "Profil „{name}” został zapisany!",
    "failedSaveProfile": "Nie udało się zapisać profilu",
    "profileActivated": "Profil aktywowany!",
    "failedActivateProfile": "Nie udało się aktywować profilu",
    "profiles": "Profile",
    "savedProfiles": "Zapisane profile",
    "noProfilesYet": "Nie zapisano jeszcze żadnych profili. Zapisz bieżącą konfigurację jako profil poniżej.",
    "activate": "Aktywuj",
    "deleteProfile": "Usuń profil",
    "profileNamePlaceholder": "Nazwa profilu (np. Konto Osobiste)",
    "saveCurrent": "Zapisz bieżący",
    "codexAuthNotePrefix": "Kodeks używa",
    "codexAuthNoteMiddle": "z",
    "codexAuthNoteSuffix": "Kliknij „Zastosuj”, aby przeprowadzić automatyczną konfigurację.",
    "claudeManualConfiguration": "Claude CLI - Konfiguracja ręczna",
    "codexManualConfiguration": "Codex CLI — konfiguracja ręczna",
    "droidManualConfiguration": "Droid fabryczny – konfiguracja ręczna",
    "openClawManualConfiguration": "Otwarty pazur - konfiguracja ręczna",
    "clineManualConfiguration": "Konfiguracja ręczna Cline",
    "kiloManualConfiguration": "Konfiguracja ręczna kodu Kilo",
    "whenToUseLabel": "Kiedy używać",
    "openToolDocs": "Otwórz dokumentację narzędzi",
    "toolUseCases": {
      "claude": "Użyj, jeśli chcesz mieć silne przepływy pracy związane z planowaniem i długie refaktoryzacje wielu plików za pomocą Claude Code.",
      "codex": "Użyj, gdy Twój zespół jest ujednolicony w zakresie przepływów CLI OpenAI Codex i uwierzytelniania opartego na profilach.",
      "droid": "Użyj, gdy potrzebujesz lekkiego agenta terminalowego skupionego na szybkim kodowaniu i pętlach wykonywania poleceń.",
      "openclaw": "Użyj, jeśli chcesz agenta kodującego w stylu Open Claw, ale kierowanego przez zasady OmniRoute.",
      "cline": "Użyj, gdy konfigurujesz agentów kodujących w edytorach i chcesz przeprowadzić konfigurację z pomocą modeli OmniRoute.",
      "kilo": "Użyj, gdy przepływ pracy zależy od poleceń Kilo Code i szybkich edycji iteracyjnych.",
      "cursor": "Użyj podczas kodowania w programie Cursor, jeśli potrzebujesz niestandardowych modeli zgodnych z OpenAI za pośrednictwem OmniRoute.",
      "continue": "Użyj podczas uruchamiania Kontynuuj w środowiskach IDE, jeśli potrzebujesz przenośnej konfiguracji dostawcy opartej na formacie JSON.",
      "opencode": "Użyj, jeśli wolisz uruchamianie agentów natywnych w terminalu i automatyzację skryptów za pośrednictwem OpenCode.",
      "kiro": "Użyj podczas integracji Kiro i centralnego sterowania routingiem modeli z OmniRoute.",
      "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
      "antigravity": "Użyj, gdy ruch antygrawitacyjny/Kiro musi zostać przechwycony przez MITM i skierowany do OmniRoute.",
      "copilot": "Użyj, jeśli chcesz mieć UX w stylu czatu Copilot, jednocześnie wymuszając klucze OmniRoute i reguły routingu.",
      "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": "Użyj, gdy potrzebujesz lekkiego asystenta AI natywnego dla terminala do szybkich zadań.",
      "hermes-agent": "__MISSING__:Use when you need Hermes Agent (by Nousresearch) with default, delegation, vision and auxiliary models routed through OmniRoute.",
      "custom": "Używaj do niestandardowych implementacji narzędzi lub ogólnych konfiguracji zgodnych z OpenAI."
    },
    "toolDescriptions": {
      "antigravity": "Google Antigravity IDE z MITM",
      "claude": "Antropiczny kod Claude'a CLI",
      "codex": "Interfejs wiersza polecenia OpenAI Codex",
      "droid": "Asystent sztucznej inteligencji droida fabrycznego",
      "openclaw": "Otwórz asystenta AI Claw",
      "cline": "Cline AI Asystent kodowania CLI",
      "kilo": "Kilo Code AI Assistant CLI",
      "cursor": "Edytor kodu AI kursora",
      "continue": "Kontynuuj Asystenta AI",
      "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": "Asystent terminala AI Hermes",
      "hermes-agent": "__MISSING__:Hermes Agent (by Nousresearch) - Advanced terminal AI with multi-model support (delegation, vision, compression, etc.)",
      "custom": "Generic generator konfiguracji CLI lub SDK zgodny z OpenAI"
    },
    "guides": {
      "cursor": {
        "notes": {
          "0": "Aby korzystać z tej funkcji, wymagane jest konto Cursor Pro.",
          "1": "Kursor kieruje żądania przez własny serwer, więc lokalny punkt końcowy nie jest obsługiwany. Włącz punkt końcowy Cloud w Ustawieniach."
        },
        "steps": {
          "1": {
            "title": "Otwórz Ustawienia",
            "desc": "Przejdź do Ustawienia -> Modele"
          },
          "2": {
            "title": "Włącz interfejs API OpenAI",
            "desc": "Włącz opcję „Klucz API OpenAI”."
          },
          "3": {
            "title": "Bazowy adres URL"
          },
          "4": {
            "title": "Klucz API"
          },
          "5": {
            "title": "Dodaj model niestandardowy",
            "desc": "Kliknij „Wyświetl wszystkie modele” -> „Dodaj model niestandardowy”"
          },
          "6": {
            "title": "Wybierz Model"
          }
        }
      },
      "continue": {
        "steps": {
          "1": {
            "title": "Otwórz konfigurację",
            "desc": "Otwórz plik konfiguracyjny Kontynuuj"
          },
          "2": {
            "title": "Klucz API"
          },
          "3": {
            "title": "Wybierz Model"
          },
          "4": {
            "title": "Dodaj konfigurację modelu",
            "desc": "Dodaj następującą konfigurację do tablicy modeli:"
          }
        },
        "notes": {
          "0": "Continue używa pliku konfiguracyjnego 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 wymaga konfiguracji klucza API.",
          "1": "Ustaw URL bazowy na swój endpoint 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 wymaga konta 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": "Niestandardowy interfejs wiersza polecenia",
    "toolCategories": "Tool Categories",
    "visibleToolsCount": "Dostępne narzędzia: {count}",
    "customCliBuilderTitle": "Kreator CLI zgodny z OpenAI",
    "customCliBuilderDescription": "Generuj zmienne env i fragmenty JSON dla dowolnego interfejsu CLI lub zestawu SDK, który akceptuje podstawowy adres URL, klucz API i identyfikator modelu zgodny z OpenAI.",
    "customCliNoModels": "Połącz co najmniej jednego dostawcę, aby zapełnić selektory modeli.",
    "customCliNameLabel": "Nazwa CLI",
    "customCliNamePlaceholder": "np. Interfejs wiersza poleceń mojego zespołu",
    "customCliDefaultModelLabel": "Domyślny model",
    "customCliDefaultModelHelp": "Użyj dowolnego identyfikatora modelu lub kombinacji OmniRoute. Większość interfejsów CLI zgodnych z OpenAI potrzebuje jedynie podstawowego adresu URL /v1 i ciągu modelowego.",
    "customCliKeyHelper": "W przypadku instalacji lokalnych OmniRoute może używać sk_omniroute. W trybie chmury wybierz jeden z kluczy API zarządzania.",
    "customCliAliasMappingsLabel": "Mapowania aliasów",
    "customCliAliasMappingsHelp": "Opcjonalne aliasy pomocnicze dla skryptów opakowania lub plików konfiguracyjnych, które wymagają stabilnych, skróconych nazw.",
    "customCliAddAlias": "Dodaj alias",
    "customCliNoMappings": "Nie ma jeszcze mapowań aliasów. Dodaj jeden, jeśli Twoje skrypty opakowania lub zespołu używają stabilnych krótkich nazw.",
    "customCliAliasPlaceholder": "np. recenzja",
    "customCliTargetModelLabel": "Model docelowy",
    "customCliEndpointHintLabel": "Jak okablować punkt końcowy",
    "customCliEndpointHint": "Wskaż dowolnemu klientowi kompatybilnemu z OpenAI podstawowy adres URL OmniRoute /v1. Nieprzetworzony punkt końcowy zakończenia czatu to {endpoint}. Użyj bloku JSON, jeśli narzędzie chce obiektu dostawcy, lub skryptu env, gdy odczytuje zmienne OPENAI_*.",
    "customCliEnvBlockTitle": "Env/fragment powłoki",
    "customCliJsonBlockTitle": "Blok JSON dostawcy",
    "copilotConfigGenerator": "Generator konfiguracji GitHub Copilot",
    "copilotApiKey": "Klucz API",
    "copilotFilterModelsPlaceholder": "Filtruj modele...",
    "copilotMaxInputTokens": "Maksymalna liczba tokenów wejściowych",
    "copilotMaxOutputTokens": "Maksymalna liczba tokenów wyjściowych",
    "copilotToolCalling": "Wywołanie narzędzia",
    "copilotPasteInto": "Wklej do: ",
    "wireApiChatCompletions": "Zakończenia czatu (/chat/uzupełnienia)",
    "wireApiResponses": "API odpowiedzi (/response)"
  },
  "combos": {
    "title": "Kombinacje",
    "description": "Twórz kombinacje modeli z obsługą routingu ważonego i obsługi rezerwowej",
    "autoCatalogTitle": "Katalog automatycznego routingu",
    "autoCatalogTemplateCount": "{count} szablony",
    "autoCatalogDescription": "Wbudowane kombinacje automatyczne/* rozwiązywane dynamicznie od podłączonych dostawców. Użyj dowolnego z tych identyfikatorów jako pola modelu — nie jest wymagana żadna konfiguracja.",
    "autoCatalogExpand": "Rozwiń katalog automatycznego wyznaczania tras",
    "autoCatalogCollapse": "Zwiń katalog automatycznego wyznaczania tras",
    "createCombo": "Utwórz kombinację",
    "editCombo": "Edytuj kombinację",
    "deleteCombo": "Usuń kombinację",
    "noModels": "Żadnych modeli",
    "noModelsYet": "Nie dodano jeszcze żadnych modeli",
    "addModel": "Dodaj model",
    "addModelToCombo": "Dodaj model do kombinacji",
    "routingStrategy": "Strategia routingu",
    "maxRetries": "Maksymalna liczba ponownych prób",
    "timeout": "Limit czasu (ms)",
    "healthcheck": "Kontrola stanu",
    "priority": "Priorytet",
    "fallback": "Powrót",
    "roundRobin": "Okrągły Robin",
    "random": "Losowe",
    "leastLatency": "Najmniejsze opóźnienie",
    "comboName": "Nazwa kombinacji",
    "comboNamePlaceholder": "moja kombinacja",
    "deleteConfirm": "Usunąć tę kombinację?",
    "noCombosYet": "Nie ma jeszcze żadnych kombinacji",
    "comboCreated": "Kombinacja utworzona pomyślnie",
    "comboUpdated": "Kombinacja została pomyślnie zaktualizowana",
    "comboDeleted": "Kombinacja usunięta",
    "failedCreate": "Nie udało się utworzyć kombinacji",
    "failedUpdate": "Nie udało się zaktualizować kombinacji",
    "errorCreating": "Błąd podczas tworzenia kombinacji",
    "errorUpdating": "Błąd aktualizacji kombinacji",
    "errorDeleting": "Błąd podczas usuwania kombinacji",
    "testFailed": "Żądanie testowe nie powiodło się",
    "failedToggle": "Nie udało się przełączyć kombinacji",
    "testResults": "Wyniki testu — {name}",
    "resolvedBy": "Rozwiązane przez:",
    "more": "+{count} więcej",
    "reqs": "wymagania",
    "success": "sukces",
    "proxyConfigured": "Serwer proxy skonfigurowany",
    "copyComboName": "Skopiuj nazwę kombinacji",
    "enableCombo": "Włącz kombinację",
    "disableCombo": "Wyłącz kombinację",
    "testCombo": "Kombinacja testowa",
    "duplicate": "Duplikat",
    "proxyConfig": "Konfiguracja proxy",
    "nameRequired": "Imię i nazwisko jest wymagane",
    "nameInvalid": "Tylko litery, cyfry, -, _, / i . dozwolone",
    "nameHint": "Litery, cyfry, -, _, / i . dozwolone",
    "priorityDesc": "Sekwencyjne działanie awaryjne: najpierw wypróbowuje model 1, potem 2 itd.",
    "weightedDesc": "Rozdziela ruch według procentu wagi z rezerwą",
    "roundRobinDesc": "Dystrybucja kołowa: każde żądanie trafia do następnego modelu w rotacji",
    "contextRelay": "Context Relay",
    "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
    "randomDesc": "Jednolity wybór losowy, a następnie powrót do pozostałych modeli",
    "leastUsedDesc": "Wybiera model z najmniejszą liczbą żądań, równoważąc obciążenie w czasie",
    "costOptimizedDesc": "Najpierw wybiera najtańszy model na podstawie ceny",
    "resetAware": "Resetowanie RR",
    "resetAwareDesc": "Bilansuje pozostały limit w stosunku do 5-godzinnych i cotygodniowych resetów, a następnie w systemie okrężnym uzyskuje podobne wyniki",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
    "models": "Modele",
    "autoBalance": "Automatyczne balansowanie",
    "advancedSettings": "Ustawienia zaawansowane",
    "retryDelay": "Opóźnienie ponownej próby (ms)",
    "concurrencyPerModel": "Współbieżność/model",
    "queueTimeout": "Limit czasu kolejki (ms)",
    "contextRelayHandoffThreshold": "Handoff Threshold",
    "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
    "contextRelayMaxMessages": "Max Messages For Summary",
    "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
    "contextRelaySummaryModel": "Summary Model",
    "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
    "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
    "advancedHint": "Pozostaw puste, aby użyć globalnych ustawień domyślnych. Zastępują one ustawienia poszczególnych dostawców.",
    "failoverBeforeRetry": "Przełączenie awaryjne przed ponowną próbą",
    "maxSetRetries": "Maksymalna liczba powtórzeń zestawu",
    "setRetryDelayMs": "Ustaw opóźnienie ponownej próby (ms)",
    "moveUp": "Przesuń się w górę",
    "moveDown": "Przesuń w dół",
    "removeModel": "Usuń",
    "saving": "Zapisywanie...",
    "weighted": "Ważona",
    "leastUsed": "Najrzadziej używany",
    "costOpt": "Opcja kosztowa",
    "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": "Przekierowujesz między wieloma kontami dzięki telemetrii przydziałów i różnym oknom resetowania.",
        "avoid": "Dane telemetryczne dotyczące przydziałów są niedostępne dla większości kont.",
        "example": "Wolisz cotygodniowe resetowanie konta na poziomie 60% jutro niż resetowanie konta na poziomie 80% później."
      },
      "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": "Użyj, jeśli chcesz całkowicie wyczerpać limit jednego dostawcy przed przejściem do następnego.",
        "avoid": "Unikaj sytuacji, gdy potrzebujesz równoważenia obciążenia na poziomie żądania między dostawcami.",
        "example": "Przykład: Wykorzystaj wszystkie kredyty Deepgram o wartości 200 USD, zanim wrócisz do Groq."
      },
      "auto": {
        "when": "Używaj, gdy potrzebujesz wieloczynnikowego routingu punktacji na podstawie kosztów, opóźnień i jakości.",
        "avoid": "Unikaj, gdy potrzebujesz ścisłego uporządkowania priorytetów lub trwałości historycznej.",
        "example": "Przykład: zrównoważ żądania pomiędzy modelami o różnych mocach."
      },
      "lkgp": {
        "when": "Użyj, jeśli chcesz wyznaczać trasy na podstawie historycznych wskaźników powodzenia i wydajności.",
        "avoid": "Unikaj, gdy dane historyczne są ograniczone lub niewiarygodne.",
        "example": "Przykład: Kieruj do modeli z dobrym doświadczeniem w zakresie określonych zadań."
      },
      "context-optimized": {
        "when": "Użyj, gdy chcesz zoptymalizować użycie okna kontekstowego w różnych modelach.",
        "avoid": "Unikaj, gdy modele mają podobną długość kontekstu lub zadania są proste.",
        "example": "Przykład: Rozłóż długie konwersacje pomiędzy modelami z większymi oknami kontekstowymi."
      }
    },
    "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": "Po włączeniu każdy błąd nadrzędny powoduje natychmiastowe przełączenie awaryjne do następnego celu kombi, pomijając wszystkie ponowne próby i zastępcze adresy URL.",
      "maxSetRetries": "Liczba ponownych prób wykonania pełnego zestawu docelowego, gdy każdy cel zakończy się niepowodzeniem. 0 = brak ponawiania ustawionego poziomu.",
      "setRetryDelayMs": "Opóźnienie między ponawianiem prób na poziomie zestawu, dające czas na rozwiązanie przejściowych problemów."
    },
    "templatesTitle": "Quick templates",
    "templatesDescription": "Apply a starting profile, then adjust models and config.",
    "templateApply": "Apply template",
    "templateHighAvailability": "High availability",
    "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
    "templateCostSaver": "Cost saver",
    "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
    "templateBalanced": "Balanced load",
    "templateBalancedDesc": "Least-used routing to spread demand over time.",
    "usageGuideHide": "Hide",
    "usageGuideDontShowAgain": "Don't show again",
    "usageGuideShow": "Show guide",
    "quickTestTitle": "Combo ready to validate",
    "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
    "testNow": "Test now",
    "pricingCoverage": "Pricing coverage",
    "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
    "pricingAvailable": "Pricing available",
    "pricingMissing": "No pricing",
    "pricingAvailableShort": "priced",
    "pricingMissingShort": "no-price",
    "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
    "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
    "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
    "filterAll": "All",
    "filterIntelligent": "Intelligent",
    "filterDeterministic": "Deterministic",
    "filterEmptyTitle": "No combos match this strategy filter.",
    "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
    "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
    "readinessTitle": "Gotowy do zapisania?",
    "readinessDescription": "Przed utworzeniem lub aktualizacją tej kombinacji przejrzyj listę kontrolną.",
    "readinessCheckName": "Nazwa kombinacji jest prawidłowa",
    "readinessCheckModels": "Wybrano co najmniej jeden model",
    "readinessCheckWeights": "Suma ważona wynosi 100%",
    "readinessCheckWeightsOptional": "Reguła wagi nie jest wymagana",
    "readinessCheckPricing": "Dane cenowe są dostępne",
    "readinessCheckPricingOptional": "Reguła cenowa nie jest wymagana",
    "saveBlockedTitle": "Zapisywanie jest zablokowane do czasu naprawienia następujących elementów:",
    "saveBlockName": "Zdefiniuj nazwę kombinacji.",
    "saveBlockModels": "Dodaj co najmniej jeden model.",
    "saveBlockWeighted": "Ustaw wagi na 100% (obecnie: {total}%).",
    "saveBlockPricing": "Dodaj cenę dla co najmniej jednego modelu lub wybierz inną strategię.",
    "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": "__MISSING__:Configuration View",
    "configOnlyHint": "__MISSING__:This panel shows routing inputs only. Live breaker state is available on the Health page.",
    "routingInputs": "__MISSING__:Routing Inputs",
    "routingInputsHint": "__MISSING__:Mode pack and weighting stay here; breaker runtime state stays on the Health page.",
    "emailVisibilityHint": "__MISSING__:Account emails here follow the global privacy toggle.",
    "emailVisibilityTooltip": "__MISSING__:Use the eye icon to reveal or hide account emails globally across combos, providers and quota screens.",
    "manualModel": "__MISSING__:Manual model",
    "manualModelInvalid": "__MISSING__:Enter a model as provider/model.",
    "manualModelUnknownProvider": "__MISSING__:Unknown provider prefix.",
    "builderDynamicAccountShort": "__MISSING__:Dynamic account",
    "builderNeedValidName": "__MISSING__:Define a valid combo name before continuing.",
    "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": "Rotacja kont z możliwością resetowania",
        "description": "Równoważy pozostały limit dostawcy względem czasu resetowania.",
        "tip1": "Użyj jawnych kroków dotyczących konta lub routingu tagów konta w przypadku dostawców korzystających z telemetrii przydziałów.",
        "tip2": "Dostosuj sesję do tygodniowych ciężarów, gdy krótkotrwałe wyczerpanie jest bardziej ryzykowne.",
        "tip3": "Staraj się, aby krawat był mały, aby równoważne konta nadal rotowały sprawiedliwie."
      },
      "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": "Wyczerp limity dostawców sekwencyjnie, a następnie cofnij je.",
        "tip1": "Używaj do routingu opartego na przydziałach z wyraźnymi łańcuchami awaryjnymi.",
        "tip2": "Dokładnie ustalaj limity, aby uniknąć przedwczesnego cofnięcia się.",
        "tip3": "Działa najlepiej z dostawcami oferującymi bezpłatne poziomy lub pakiety kredytowe.",
        "title": "Wyczerpanie kwot"
      },
      "auto": {
        "description": "Trasa oparta na punktacji w czasie rzeczywistym pod kątem kosztów, opóźnień, jakości i kondycji.",
        "tip1": "Pozwól silnikowi automatycznie zrównoważyć wiele czynników.",
        "tip2": "Monitoruj, które czynniki wpływają na decyzje dotyczące routingu w dziennikach.",
        "tip3": "Używaj w przypadku złożonych obciążeń, w których nie dominuje żaden pojedynczy czynnik.",
        "title": "Optymalizacja wieloczynnikowa"
      },
      "lkgp": {
        "description": "Trasa oparta na historycznych wynikach i wzorcach sukcesu.",
        "tip1": "Wymaga wystarczającej historii żądań w celu uzyskania dokładnych przewidywań.",
        "tip2": "Dobre w przypadku obciążeń ze spójnymi wzorcami wydajności modelu.",
        "tip3": "Monitoruj dokładność przewidywań i w razie potrzeby dostosowuj wagi.",
        "title": "Trasowanie oparte na historii"
      },
      "context-optimized": {
        "description": "Optymalizuj routing w oparciu o wykorzystanie okna kontekstowego i wydajność tokena.",
        "tip1": "Kieruj długie rozmowy do modeli z większymi oknami kontekstowymi.",
        "tip2": "Monitoruj wykorzystanie kontekstu, aby uniknąć marnowania tokenów.",
        "tip3": "Najlepsze dla konwersacyjnej sztucznej inteligencji wymagającej obszernego przechowywania kontekstu.",
        "title": "Optymalizacja kontekstu"
      },
      "context-relay": {
        "description": "Najlepiej, gdy spodziewana jest rotacja kont, a kolejne konto musi dziedziczyć uproszczone podsumowanie zadań.",
        "tip1": "Używaj w przypadku dostawców rotujących konta dla tej samej rodziny modeli.",
        "tip2": "Ustaw próg przekazania poniżej twardych granic przydziału dla czasu generowania podsumowania.",
        "tip3": "Ustaw dedykowany model podsumowujący tylko wtedy, gdy podstawowy jest zbyt drogi lub niestabilny.",
        "title": "Priorytet ciągłości sesji"
      },
      "p2c": {
        "description": "Skieruj się do dostawcy o najniższym obciążeniu prądowym na podstawie wskaźników w czasie rzeczywistym.",
        "tip1": "Monitoruj wskaźniki kondycji dostawcy, aby uzyskać dokładną ocenę obciążenia.",
        "tip2": "Działa najlepiej w przypadku jednorodnych pul dostawców.",
        "tip3": "Dostosuj czułość, aby uniknąć oscylacji podczas szczytów ruchu.",
        "title": "Moc dwóch wyborów"
      }
    },
    "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": "Getting Started with Combos",
    "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
    "wizardGuideHint": "or click + Create Combo above",
    "createFirstCombo": "Create Your First Combo",
    "wizardStep1Title": "Name Your Combo",
    "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
    "wizardStep2Title": "Add Models",
    "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
    "wizardStep3Title": "Choose Strategy",
    "wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
    "wizardStep4Title": "Review & Save",
    "wizardStep4Desc": "Review your configuration and activate the combo",
    "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": "Dokładny krok dostawcy/modelu/konta jest już w zestawie.",
    "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": "Ukończ każdy etap, aby zdefiniować kombinacje, zbudować kroki, wybrać strategię routingu i przejrzeć wyniki.",
    "builderStepsDescription": "Zbuduj każdy krok kombinacji w kolejności: dostawca, model, a następnie konto. Umożliwia to ponowne wykorzystanie tego samego dostawcy i modelu na różnych kontach.",
    "selectProvider": "Wybierz dostawcę",
    "selectProviderPlaceholder": "Wybierz dostawcę",
    "selectModel": "Wybierz Model",
    "selectModelPlaceholder": "Najpierw wybierz dostawcę",
    "selectAccount": "Wybierz Konto",
    "selectComboToReference": "Wybierz kombinację, do której chcesz się odwołać",
    "comboReference": "Odniesienie do kombinacji",
    "addComboReference": "Dodaj odwołanie do kombinacji",
    "addStepBeforeContinue": "Zanim przejdziesz do następnego etapu, dodaj przynajmniej jeden krok.",
    "previewNextStep": "Podgląd następnego kroku",
    "autoSelectAccount": "Automatycznie wybierz konto w czasie wykonywania",
    "modePackBalanced": "Zrównoważony",
    "modePackBudget": "Budżet",
    "modePackPerformance": "Wydajność",
    "modePackCustom": "Niestandardowe",
    "browseLegacyCatalog": "Przeglądaj starszy katalog combo",
    "agentFeaturesTitle": "Funkcje agenta",
    "agentFeaturesDescription": "Włącz zaawansowane funkcje dla agentów korzystających z tej kombinacji",
    "agentFeaturesSystemMessageOverride": "Zastąp komunikat systemowy",
    "agentFeaturesSystemMessagePlaceholder": "Jesteś doświadczonym asystentem...",
    "agentFeaturesSystemMessageHint": "Zastąpienie komunikatu systemowego dla agentów",
    "agentFeaturesToolFilterRegex": "/wzór-regex/",
    "agentFeaturesToolFilterHint": "Narzędzie filtrujące wyrażenie regularne dla agentów",
    "agentFeaturesContextCacheHint": "Włącz pamięć podręczną kontekstową dla narzędzi agenta",
    "agentFeaturesContextCacheProtection": "Chroń pamięć podręczną przed mutacjami narzędzi agenta",
    "agentFeaturesContextLength": "Długość kontekstu",
    "agentFeaturesContextLengthPlaceholder": "np. 128000",
    "agentFeaturesContextLengthHint": "Definiuje okno kontekstowe dla tej kombinacji w /v1/models.",
    "agentFeaturesContextLengthErrorInteger": "Długość kontekstu musi być prawidłową liczbą całkowitą",
    "agentFeaturesContextLengthErrorRange": "Długość kontekstu musi mieścić się w przedziale od 1000 do 2000000",
    "compressionOverride": "Zastąpienie kompresji",
    "modePack": "Pakiet trybów"
  },
  "costs": {
    "title": "Koszty",
    "pageDescription": "Śledź wydatki, analizuj trendy i zarządzaj budżetem AI u wszystkich dostawców",
    "overview": "Przegląd",
    "budget": "Budżet",
    "totalCost": "Całkowity koszt",
    "breakdown": "Podział kosztów",
    "noData": "Brak danych o kosztach",
    "byModel": "Według modelu",
    "byProvider": "Przez Dostawcę",
    "range7d": "7 dni",
    "range30d": "30 dni",
    "range90d": "90 dni",
    "rangeAll": "Cały czas",
    "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": "Użycie tokena",
    "totalTokens": "Suma tokenów",
    "inputTokens": "Tokeny wejściowe",
    "outputTokens": "Tokeny wyjściowe",
    "inputOutputRatio": "Stosunek wejścia/wyjścia",
    "tokens": "żetony",
    "routingEfficiency": "Wydajność routingu",
    "fallbackCount": "Żądania zastępcze",
    "fallbackRate": "Współczynnik rezerwowy",
    "modelCoverage": "Pokrycie modelu",
    "modelCoverageDesc": "% żądań z jawnym modelem",
    "outOfRequests": "z {total} żądań",
    "costByApiKey": "Koszt według klucza API",
    "costByAccount": "Koszt według konta",
    "apiKeyName": "Klucz API",
    "account": "Konto",
    "requests": "Żądania",
    "cost": "Koszt",
    "dayStreak": "passa dnia",
    "weeklyUsagePattern": "Tygodniowy wzór użycia",
    "activityHeatmap": "Aktywność (365 dni)",
    "less": "Mniej",
    "more": "Więcej",
    "monthlyForecast": "Prognoza miesięczna",
    "forecastBasis": "Na podstawie ostatnich {days} dni",
    "avgDailyCost": "Śr. koszt dzienny",
    "daysRemaining": "Pozostało {days} dni",
    "periodComparison": "Porównanie okresów",
    "previousPeriod": "Poprzednia połowa",
    "currentPeriod": "Obecna połowa",
    "exportCSV": "Eksportuj jako CSV",
    "exportJSON": "Eksportuj jako JSON",
    "legacyFreeLabel": "__MISSING__:Legacy / Free",
    "costExplorerTitle": "Eksplorator kosztów",
    "costExplorerDescription": "Analizuj wydatki według dostawcy, modelu, klucza API, konta lub poziomu usługi.",
    "groupProvider": "Dostawca",
    "groupModel": "Typ modelu",
    "groupApiKey": "Klucz API",
    "groupAccount": "Konto",
    "groupServiceTier": "Poziom usługi",
    "serviceTierFast": "__MISSING__:Fast",
    "serviceTierFlex": "__MISSING__:Flex",
    "serviceTierStandard": "__MISSING__:Standard",
    "serviceTierBreakdownTitle": "__MISSING__:Service Tier",
    "serviceTierBreakdownSubtitle": "__MISSING__:Fast / Flex / Standard split",
    "serviceTierUsageSaved": "__MISSING__:usage saved",
    "serviceTierCostSaved": "__MISSING__:saved",
    "serviceTierCostShareSuffix": "__MISSING__:of cost",
    "dimension": "Wymiar",
    "share": "Udział",
    "legacyOrFree": "Starsze / bezpłatne",
    "filterRows": "Filtruj wiersze…",
    "filterCostExplorerRows": "Filtruj wiersze eksploratora kosztów",
    "noMatchingCostRows": "Brak pasujących wierszy kosztów",
    "noMatchingCostRowsDescription": "Dostosuj tekst wyszukiwania, grupowanie lub wybrane okno czasowe.",
    "showingCostRows": "Wyświetlono {shown} z {total} pasujących wierszy.",
    "showingTopCostRows": "Wyświetlono {shown} z {total} pasujących wierszy (top 50)."
  },
  "endpoint": {
    "title": "Punkt końcowy interfejsu API",
    "available": "Dostępne punkty końcowe",
    "cloudProxy": "Serwer proxy w chmurze",
    "disableConfirm": "Czy na pewno chcesz wyłączyć serwer proxy w chmurze?",
    "baseUrl": "Bazowy adres URL",
    "apiKeyLabel": "Klucz API",
    "registeredKeys": "Zarejestrowane klucze",
    "chatCompletions": "Zakończenia czatu",
    "responses": "Odpowiedzi",
    "listModels": "Lista modeli",
    "usingCloudProxy": "Korzystanie z serwera proxy w chmurze",
    "usingLocalServer": "Korzystanie z serwera lokalnego",
    "machineId": "Identyfikator maszyny: {id}...",
    "disableCloud": "Wyłącz chmurę",
    "enableCloud": "Włącz chmurę",
    "modelsAcrossEndpoints": "{models} modele w {endpoints} punktach końcowych",
    "loadingModels": "Loading available models...",
    "chatDesc": "Czat strumieniowy i niestreamingowy ze wszystkimi dostawcami",
    "embeddings": "Osadzenia",
    "embeddingsDesc": "Osadzanie tekstu dla potoków wyszukiwania i RAG",
    "imageGeneration": "Generowanie obrazu",
    "imageDesc": "Generuj obrazy na podstawie podpowiedzi tekstowych",
    "rerank": "Zmień rangę",
    "rerankDesc": "Zmień rangę dokumentów według trafności dla zapytania",
    "audioTranscription": "Transkrypcja dźwięku",
    "audioTranscriptionDesc": "Transkrypcja plików audio na tekst (szeptem)",
    "textToSpeech": "Tekst na mowę",
    "textToSpeechDesc": "Konwertuj tekst na naturalnie brzmiącą mowę",
    "musicGeneration": "Music Generation",
    "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
    "moderations": "Moderacje",
    "moderationsDesc": "Moderowanie treści i klasyfikacja bezpieczeństwa",
    "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": "Główne API",
    "categoryMedia": "Media i Multi-Modal",
    "categorySearch": "Search & Discovery",
    "categoryUtility": "Narzędzia i Zarządzanie",
    "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": "Włącz serwer proxy w chmurze",
    "whatYouGet": "Co otrzymasz",
    "cloudBenefitAccess": "Uzyskaj dostęp do swojego API z dowolnego miejsca na świecie",
    "cloudBenefitShare": "Z łatwością udostępniaj punkt końcowy swojemu zespołowi",
    "cloudBenefitPorts": "Nie ma potrzeby otwierania portów ani konfigurowania zapory ogniowej",
    "cloudBenefitEdge": "Szybka globalna sieć brzegowa",
    "cloudSessionNote": "Cloud będzie przechowywać Twoją sesję uwierzytelniania przez 1 dzień. Jeśli nie zostanie użyty, zostanie automatycznie usunięty.",
    "cloudUnstableNote": "Chmura jest obecnie niestabilna z Claude Code OAuth w niektórych przypadkach.",
    "cloudConnected": "Serwer proxy chmury podłączony!",
    "connectingToCloud": "Łączę z chmurą...",
    "verifyingConnection": "Weryfikacja połączenia...",
    "connecting": "Łączenie...",
    "verifying": "Weryfikuję...",
    "connected": "Połączono!",
    "disableCloudTitle": "Wyłącz serwer proxy w chmurze",
    "disableWarning": "Wszystkie sesje autoryzacji zostaną usunięte z chmury.",
    "syncingData": "Synchronizowanie najnowszych danych...",
    "disablingCloud": "Wyłączam chmurę...",
    "syncing": "Synchronizowanie...",
    "disabling": "Wyłączam...",
    "cloudConnectedVerified": "Cloud Proxy podłączony i zweryfikowany!",
    "connectedVerificationPending": "Połączono — weryfikacja w toku",
    "connectedVerificationPendingWithError": "Połączono — weryfikacja w toku: {error}",
    "cloudDisabledSuccess": "Chmura została pomyślnie wyłączona",
    "syncedSuccess": "Zsynchronizowano pomyślnie",
    "failedDisable": "Nie udało się wyłączyć chmury",
    "failedEnable": "Nie udało się włączyć chmury",
    "cloudRequestTimeout": "Upłynął limit czasu żądania w chmurze",
    "cloudRequestFailed": "Żądanie w chmurze nie powiodło się",
    "cloudWorkerUnreachable": "Nie udało się połączyć z pracownikiem chmury. Upewnij się, że usługa w chmurze jest uruchomiona (npm run dev w /cloud).",
    "connectionFailed": "Połączenie nie powiodło się",
    "syncFailed": "Nie udało się zsynchronizować danych w chmurze",
    "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} — Modele",
    "noModelsForProvider": "Brak dostępnych modeli tego dostawcy.",
    "chat": "Czat",
    "embedding": "Osadzanie",
    "image": "Obraz",
    "custom": "niestandardowe",
    "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": "Wiadomości",
    "messagesApiDesc": "Natywny format API Anthropic Messages dla dostawców zgodnych z Claude",
    "imageEdits": "Edycja obrazu",
    "imageEditsDesc": "Edytuj i modyfikuj istniejące obrazy za pomocą AI (inpainting, outpainting, wariacje)",
    "batchApi": "Wsadowe API",
    "batchApiDesc": "Przetwarzaj duże partie żądań asynchronicznie (kompatybilny z OpenAI)",
    "filesApi": "Pliki API",
    "filesApiDesc": "Przesyłaj pliki i zarządzaj nimi w celu przetwarzania wsadowego",
    "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": "Hasło Sudo (wymagane w systemie macOS/Linux)",
    "ngrokTitle": "Tunel Ngrok",
    "ngrokRunning": "Bieganie",
    "ngrokStarting": "Rozpoczęcie",
    "ngrokStoppedState": "Zatrzymany",
    "ngrokNeedsAuth": "Potrzebuje autoryzacji",
    "ngrokNotInstalled": "Nie zainstalowano",
    "ngrokUnsupported": "Nieobsługiwane",
    "ngrokError": "Błąd",
    "ngrokEnable": "Włącz tunel",
    "ngrokDisable": "Zatrzymaj tunel",
    "ngrokUrlNotice": "Tworzy publiczny tunel ngrok.",
    "ngrokAuthTokenLabel": "Authtoken (wymagany, jeśli nie ustawiono NGROK_AUTTOKEN)",
    "ngrokAuthTokenPlaceholder": "Wprowadź swój token uwierzytelniający ngrok",
    "ngrokLastError": "Ostatni błąd: {error}",
    "ngrokStarted": "Ruszył tunel Ngrok",
    "ngrokStopped": "Tunel Ngrok zatrzymał się",
    "ngrokRequestFailed": "Nie udało się zaktualizować tunelu Ngrok",
    "tokenSaverSubtitle": "Wydawaj mniej tokenów na każde żądanie.",
    "tokenSaverToolOutput": "Wyjście narzędzia",
    "tokenSaverLlmOutput": "Wyjście LLM",
    "tokenSaverInputCompression": "Kompresja wejściowa",
    "apiEndpointsCatalogUnavailable": "Katalog API niedostępny",
    "apiEndpointsSearchPlaceholder": "Wyszukaj punkty końcowe...",
    "apiEndpointsRequiresAuth": "Wymaga autoryzacji",
    "apiEndpointsNoMatch": "Żaden punkt końcowy nie pasuje do Twojego filtra",
    "localServer": "Serwer lokalny",
    "cloudOmniroute": "Chmura OmniRoute",
    "copyUrl": "Skopiuj adres URL",
    "badgeLoopbackTooltip": "__MISSING__:This endpoint is only accessible locally (loopback only)",
    "badgeAlwaysProtectedTooltip": "__MISSING__:This endpoint is always protected and requires authorization",
    "badgeInternalTooltip": "__MISSING__:This is an internal system endpoint",
    "tierAll": "__MISSING__:All",
    "tierAuth": "__MISSING__:Authenticated",
    "tierLoopback": "__MISSING__:Loopback",
    "tierAlwaysProtected": "__MISSING__:Always Protected",
    "tierPublic": "__MISSING__:Public",
    "hideInternal": "__MISSING__:Hide Internal",
    "showInternal": "__MISSING__:Show Internal"
  },
  "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": "Potwierdzić kombinację {action} „{combo}”?",
    "switchComboFailed": "Nie udało się przełączyć stanu kombinacji.",
    "switchComboSuccess": "Kombinacja „{combo}” została zaktualizowana.",
    "confirmApplyProfile": "Zastosować profil odporności „{profile}”?",
    "applyProfileFailed": "Nie udało się zastosować profilu odporności.",
    "applyProfileSuccess": "Zastosowano profil „{profile}”.",
    "confirmResetBreakers": "Zresetować wszystkie wyłączniki automatyczne?",
    "resetBreakersFailed": "Nie udało się zresetować wyłączników automatycznych.",
    "resetBreakersSuccess": "Reset wyłączników automatycznych.",
    "processStatus": "Stan procesu",
    "online": "W Internecie",
    "offline": "Nieaktywny",
    "disableLabel": "__MISSING__:Disable {label}",
    "enableLabel": "__MISSING__:Enable {label}",
    "transportMode": "__MISSING__:Transport Mode",
    "transportStdioDesc": "__MISSING__:Local — IDE spawns process via omniroute --mcp",
    "transportSseDesc": "__MISSING__:Remote — Server-Sent Events over HTTP",
    "transportStreamableHttpDesc": "__MISSING__:Remote — Modern bidirectional HTTP",
    "copy": "__MISSING__:Copy",
    "mcpDashboardCopyUrl": "Skopiuj adres URL",
    "mcpDisabledTitle": "__MISSING__:MCP is disabled",
    "mcpDisabledDesc": "__MISSING__:Enable MCP above to configure transport mode and view server telemetry.",
    "mcpIntro": "__MISSING__:Model Context Protocol — {tools} tools across {scopes} scopes, {transports} transports (stdio / SSE / Streamable HTTP).",
    "mcpStep1": "__MISSING__:Run via {code}",
    "mcpStep2": "__MISSING__:Configure your MCP client to connect over stdio transport.",
    "mcpStep3": "__MISSING__:Invoke tools like {code1} and {code2}.",
    "pid": "PID",
    "sessionUptime": "Session uptime",
    "lastHeartbeat": "Last heartbeat",
    "activity24h": "Activity (24h)",
    "totalCalls": "Total calls",
    "successRate": "Success rate",
    "avgLatency": "Avg latency",
    "topTools": "Top tools",
    "noToolCalls24h": "No tool calls in the last 24 hours.",
    "runtimeDetails": "Runtime details",
    "transport": "Transport",
    "scopesEnforced": "Scopes enforced",
    "yes": "yes",
    "no": "no",
    "lastCall": "Last call",
    "heartbeatPath": "Heartbeat path",
    "operationalControls": "Operational controls",
    "switchCombo": "Switch combo",
    "inactive": "inactive",
    "active": "active",
    "activateCombo": "Activate combo",
    "deactivateCombo": "Deactivate combo",
    "applyResilienceProfile": "Apply resilience profile",
    "profileAggressive": "aggressive",
    "profileBalanced": "balanced",
    "profileConservative": "conservative",
    "applyProfile": "Apply profile",
    "resetCircuitBreakers": "Reset circuit breakers",
    "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
    "resetAllBreakers": "Reset all breakers",
    "toolsAndScopes": "Tools and scopes",
    "tableTool": "Tool",
    "tableScopes": "Scopes",
    "tablePhase": "Phase",
    "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": "wiadomość/wyślij",
    "rpcMethodStream": "wiadomość/strumień",
    "rpcMethodGet": "zadania/otrzymuj",
    "rpcMethodCancel": "zadania/anuluj",
    "serviceLabel": "A2A",
    "online": "__MISSING__:Online",
    "offline": "__MISSING__:Offline",
    "disableLabel": "__MISSING__:Disable {label}",
    "enableLabel": "__MISSING__:Enable {label}",
    "a2aDisabledTitle": "__MISSING__:A2A is disabled",
    "a2aDisabledDesc": "__MISSING__:Enable A2A above to view task telemetry, agent details, and validation tools.",
    "a2aIntro": "__MISSING__:Agent2Agent JSON-RPC 2.0 endpoint — send tasks, stream responses, cancel in-flight jobs.",
    "a2aStep1": "__MISSING__:Discover the agent card at {code}.",
    "a2aStep2": "__MISSING__:Send JSON-RPC to {code1} using {code2} or {code3}.",
    "a2aStep3": "__MISSING__:Track and cancel tasks with {code1} and {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": "Potok OK ({latencyMs}ms)",
    "pipelineError": "Błąd rurociągu",
    "healthUnknown": "Zdrowie nieznane",
    "checkingHealth": "Sprawdzam…",
    "checkHealth": "Sprawdź zdrowie",
    "pageInfo": "Strona {page} z {totalPages} (łącznie {total})",
    "previous": "Poprzedni",
    "next": "Następny",
    "cancel": "Anuluj",
    "save": "Zapisz",
    "keyPlaceholder": "np. motyw.preferencji.użytkownika",
    "contentPlaceholder": "Wartość lub treść JSON do zapamiętania"
  },
  "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": "Filtruj umiejętności według nazwy, opisu lub tagu",
    "allModes": "Wszystkie tryby",
    "totalSkills": "__MISSING__:Total Skills",
    "enabledSkills": "__MISSING__:Enabled",
    "totalExecutions": "__MISSING__:Executions",
    "successRate": "__MISSING__:Success Rate",
    "marketplaceTab": "__MISSING__:Marketplace",
    "applyFilters": "__MISSING__:Apply filters",
    "popularDefaultsLabel": "__MISSING__:Popular by default for selected provider:",
    "onMode": "__MISSING__:ON",
    "offMode": "__MISSING__:OFF",
    "autoMode": "__MISSING__:AUTO",
    "installSkillButton": "__MISSING__:Install Skill",
    "installSkillModalTitle": "__MISSING__:Install Skill",
    "installJsonPlaceholder": "__MISSING__:Paste skill manifest JSON here...",
    "installing": "__MISSING__:Installing...",
    "installSuccess": "__MISSING__:Skill installed ({id})",
    "installError": "__MISSING__:Install failed",
    "invalidJson": "__MISSING__:Invalid JSON",
    "searchMarketplacePlaceholder": "__MISSING__:Search skills...",
    "searchMarketplace": "__MISSING__:Search Marketplace",
    "marketplaceEmpty": "__MISSING__:No skills found in marketplace",
    "marketplaceError": "__MISSING__:Search failed",
    "installingFromMarketplace": "__MISSING__:Installing from marketplace...",
    "popularSkills": "__MISSING__:Popular Skills",
    "skillsMarketplace": "Rynek umiejętności",
    "searching": "__MISSING__:Searching...",
    "pageInfo": "__MISSING__:Page {page} of {totalPages} ({total} total)",
    "previous": "__MISSING__:Previous",
    "next": "__MISSING__:Next",
    "activeProvider": "__MISSING__:Active provider:",
    "changeInSettings": "__MISSING__:Change this in Settings → Memory & Skills.",
    "installs": "__MISSING__:installs",
    "marketplaceSkillsMpHint": "__MISSING__:Configure your SkillsMP API key in Settings to browse the marketplace.",
    "marketplaceSkillsShHint": "__MISSING__:Search the skills.sh open directory to discover and install agent skills.",
    "installSkillModalDesc": "__MISSING__:Paste a skill manifest JSON or upload a .json file.",
    "uploadJson": "__MISSING__:Upload JSON",
    "cancel": "__MISSING__:Cancel",
    "installSkill": "Zainstaluj umiejętność"
  },
  "health": {
    "title": "Stan systemu",
    "description": "Monitorowanie w czasie rzeczywistym Twojej instancji OmniRoute",
    "healthy": "Zdrowy",
    "degraded": "Zdegradowany",
    "down": "W dół",
    "uptime": "Czas pracy",
    "memory": "Pamięć",
    "memoryRss": "Pamięć (RSS)",
    "heap": "Kupa",
    "cpu": "Procesor",
    "database": "Baza danych",
    "version": "Wersja",
    "lastCheck": "Ostatnia kontrola",
    "providerHealth": "Zdrowie dostawcy",
    "systemMetrics": "Metryki systemu",
    "tokenHealth": "Tokenowe zdrowie",
    "refreshAll": "Odśwież wszystko",
    "checkNow": "Sprawdź teraz",
    "loadingHealth": "Ładowanie danych zdrowotnych...",
    "failedToLoad": "Nie udało się załadować danych o stanie zdrowia: {error}",
    "retry": "Spróbuj ponownie",
    "allOperational": "Wszystkie systemy sprawne",
    "issuesDetected": "Wykryto problemy systemowe",
    "updatedAt": "Zaktualizowano {time}",
    "latency": "Opóźnienie",
    "latencyP50": "p50",
    "latencyP95": "s. 95",
    "latencyP99": "str. 99",
    "millisecondsShort": "{value}ms",
    "notAvailable": "—",
    "totalRequests": "Łączna liczba żądań",
    "noDataYet": "Brak danych",
    "promptCache": "Natychmiastowa pamięć podręczna",
    "entries": "Wpisy",
    "hitRate": "Współczynnik trafień",
    "hitsMisses": "Trafienia/chybienia",
    "signatureCache": "Pamięć podręczna podpisów",
    "signatureDefaults": "Domyślne",
    "signatureTool": "Narzędzie",
    "signatureFamily": "Rodzina",
    "signatureSession": "Sesja",
    "recovering": "Odzyskiwanie",
    "noCBData": "Brak dostępnych danych dotyczących wyłącznika automatycznego. Najpierw złóż kilka próśb.",
    "providerHealthStatusAria": "Stan zdrowia dostawcy",
    "issuesLabel": "Wykryto problemy",
    "operational": "Operacyjny",
    "providers": "Dostawcy",
    "configuredProvidersLabel": "Skonfigurowane w panelu kontrolnym",
    "configuredProvidersHint": "Dostawcy z poświadczeniami zapisanymi w /dashboard/providers, niezależnie od stanu środowiska wykonawczego.",
    "activeProviders": "{count} active",
    "activeProvidersHint": "Skonfigurowani dostawcy aktualnie obsługują żądania routingu.",
    "monitoredProviders": "{count} monitored",
    "monitoredProvidersHint": "Dostawcy są obecnie śledzeni przez monitory stanu wyłączników.",
    "healthyCount": "{count} zdrowy",
    "nodeVersion": "Węzeł {version}",
    "failures": "{count} błąd",
    "failuresPlural": "{count} niepowodzenia",
    "lastFailure": "Ostatni",
    "rateLimitStatus": "Stan limitu stawki",
    "activeLimiters": "{count} aktywny ogranicznik",
    "activeLimitersPlural": "{count} aktywne limitery",
    "queued": "W kolejce",
    "queuedCount": "{count} w kolejce",
    "running": "bieganie",
    "runningCount": "{count} działa",
    "ok": "OK",
    "activeLockouts": "Aktywne blokady",
    "resetConfirm": "Zresetować wszystkie wyłączniki automatyczne do stanu prawidłowego? Spowoduje to wyczyszczenie wszystkich liczników błędów i przywrócenie wszystkich dostawców do stanu operacyjnego.",
    "resetAllTitle": "Zresetuj wszystkie wyłączniki automatyczne do stanu prawidłowego",
    "resetting": "Resetuję...",
    "resetAll": "Zresetuj wszystko",
    "until": "Do {time}",
    "limitExhausted": "Exhausted",
    "learnedFromHeaders": "Learned from headers",
    "remainingOfLimit": "{remaining}/{limit} remaining",
    "throttleStatus": "Throttle: {value}",
    "lastHeaderUpdate": "Header update: {age}",
    "databaseHealth": "Kondycja bazy danych",
    "stickyBoundSessions": "Sesje klejone",
    "sessionsByApiKey": "Sesje według klucza API",
    "noActiveSessionsTracked": "Nie śledzono jeszcze żadnych aktywnych sesji.",
    "noSessionQuotaMonitorsActive": "Brak aktywnych monitorów przydziału sesji.",
    "gracefulDegradationStatus": "Pełen wdzięku stan degradacji",
    "additionalModels": "+{count} więcej modeli",
    "providerHealthMatrixTitle": "__MISSING__:Provider Health Matrix",
    "providerHealthMatrixDescription": "__MISSING__:Provider × account × model states from breakers, cooldowns, lockouts and logs.",
    "healthMatrixRange": "__MISSING__:Health matrix range",
    "providerFilter": "__MISSING__:Provider filter",
    "onlyIssues": "__MISSING__:Only issues",
    "refresh": "__MISSING__:Refresh",
    "accounts": "__MISSING__:Accounts",
    "models": "__MISSING__:Models",
    "issues": "__MISSING__:Issues",
    "loadingProviderHealthMatrix": "__MISSING__:Loading provider health matrix...",
    "failedProviderHealthMatrix": "__MISSING__:Failed to load Provider Health Matrix: {error}",
    "noProvidersMatchedFilters": "__MISSING__:No providers matched the current filters.",
    "modelPillSummary": "__MISSING__:{requests} req · {successRate} success · {latency} avg",
    "modelLockoutSummary": "__MISSING__:{reason} · {duration} left",
    "locked": "__MISSING__:locked",
    "inferred": "__MISSING__:inferred",
    "inactive": "__MISSING__:Inactive",
    "noConnectionId": "__MISSING__:no connection id",
    "accountModelSummary": "__MISSING__:{connectionId} · {count} models",
    "cooldown": "__MISSING__:cooldown",
    "durationRemaining": "__MISSING__:{duration} remaining",
    "noSyncedModelsOrTraffic": "__MISSING__:No synced models or recent traffic yet.",
    "providerRowSummary": "__MISSING__:{active}/{total} active accounts · {requests} req · {successRate} success · {latency} avg",
    "cooldownCount": "__MISSING__:{count} cooldown",
    "lockoutCount": "__MISSING__:{count} lockouts",
    "issueCount": "__MISSING__:{count} issues",
    "score": "__MISSING__:Score",
    "lastRequest": "__MISSING__:Last request",
    "lastError": "__MISSING__:Last error"
  },
  "telemetry": {
    "title": "Telemetria systemu",
    "description": "Ciągłe sygnały żądania, czasu działania, sesji i pamięci z tego procesu OmniRoute.",
    "uptime": "Czas pracy",
    "totalRequests": "Łączna liczba żądań",
    "avgLatency": "Średnie opóźnienie",
    "errorRate": "Poziom błędów",
    "activeConnections": "Aktywne połączenia",
    "memoryUsage": "Wykorzystanie pamięci",
    "latencyTrend": "Trend opóźnień",
    "throughputTrend": "Trend przepustowości",
    "memoryTrend": "Trend pamięciowy",
    "refresh": "Odśwież",
    "updatedAt": "Zaktualizowano {time}",
    "loadFailed": "Nie udało się załadować danych telemetrycznych.",
    "partialData": "Telemetria jest częściowo dostępna: {error}"
  },
  "mitm": {
    "title": "Pełnomocnik MITM",
    "description": "Przejrzysty serwer proxy do przechwytywania i kierowania żądań klientów.",
    "enable": "Włącz serwer proxy MITM",
    "enableDesc": "Rozpocznij lub zatrzymaj proces lokalnego przechwytywania i zastąpienia DNS.",
    "status": "Stan",
    "running": "Bieganie",
    "stopped": "Zatrzymany",
    "start": "Zacznij",
    "stop": "Zatrzymaj się",
    "refresh": "Odśwież",
    "port": "Port proxy",
    "apiKey": "Klucz API routera",
    "apiKeyPlaceholder": "Opcjonalne; wraca do klucza lokalnego",
    "sudoPassword": "Hasło Sudo",
    "cachedPassword": "Buforowane dla tego procesu",
    "saveSettings": "Zapisz ustawienia",
    "settingsSaved": "Ustawienia MITM zostały zapisane.",
    "startedSuccess": "Uruchomiono serwer proxy MITM.",
    "stoppedSuccess": "Serwer proxy MITM został zatrzymany.",
    "saveFailed": "Nie udało się zaktualizować ustawień MITM.",
    "loadFailed": "Nie udało się załadować ustawień MITM.",
    "invalidPort": "Przechwytywanie przezroczystego MITM wymaga obecnie portu 443.",
    "certificate": "Certyfikat CA",
    "certificateReady": "Certyfikat jest dostępny do instalacji zaufania klienta.",
    "certificateMissing": "Certyfikat nie został jeszcze wygenerowany.",
    "available": "Dostępne",
    "missing": "Brak",
    "downloadCert": "Pobierz certyfikat CA",
    "regenerateCert": "Zregeneruj certyfikat",
    "regenerateConfirm": "Spowoduje to unieważnienie istniejącego zaufania klienta. Kontynuować?",
    "regenerateSuccess": "Zregenerowano certyfikat MITM.",
    "regenerateFailed": "Nie udało się ponownie wygenerować certyfikatu MITM.",
    "targetRoutes": "Trasy docelowe",
    "interceptedRequests": "Przechwycone żądania",
    "activeConnections": "Aktywne połączenia",
    "dnsConfigured": "Skonfigurowano DNS",
    "pid": "PID",
    "lastIntercept": "Ostatnie przechwycenie",
    "target": "Cel",
    "host": "Gospodarz",
    "localPort": "Port lokalny",
    "endpoints": "Punkty końcowe",
    "enabled": "Włączone",
    "configured": "Skonfigurowane",
    "yes": "Tak",
    "no": "Nie",
    "noTargets": "Nie skonfigurowano tras docelowych."
  },
  "limits": {
    "title": "Limity i kwoty",
    "rateLimit": "Limit stawki",
    "remaining": "Pozostało",
    "requestsPerMinute": "Żądania/min",
    "tokensPerMinute": "Tokeny/min",
    "dailyLimit": "Limit dzienny"
  },
  "logs": {
    "title": "Dzienniki",
    "requestLogs": "Poproś o logi",
    "proxyLogs": "Dzienniki proxy",
    "auditLog": "Dziennik audytu",
    "console": "Konsola",
    "auditLogDesc": "Działania administracyjne i zdarzenia związane z bezpieczeństwem",
    "loading": "Ładowanie...",
    "refresh": "Odśwież",
    "filterByAction": "Filtruj według działania...",
    "filterByActor": "Filtruj według aktora...",
    "filterEntriesAria": "Filtruj wpisy dziennika audytu",
    "filterByActionTypeAria": "Filtruj według typu akcji",
    "filterByActorAria": "Filtruj według aktora",
    "refreshAuditLogAria": "Odśwież dziennik audytu",
    "tableAria": "Wpisy dziennika audytu",
    "failedFetchAuditLog": "Nie udało się pobrać dziennika kontroli",
    "showing": "Wyświetlanie wpisów {count} (przesunięcie {offset})",
    "search": "Szukaj",
    "timestamp": "Znacznik czasu",
    "action": "Akcja",
    "actor": "Aktor",
    "target": "Cel",
    "details": "Szczegóły",
    "ipAddress": "Adres IP",
    "notAvailable": "—",
    "noEntries": "Nie znaleziono wpisów w dzienniku kontroli",
    "previous": "Poprzedni",
    "next": "Następny",
    "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": "Wyczyść wszystko",
    "confirmClearActiveRequests": "Wyczyścić wszystkie aktywne żądania?",
    "model": "Model",
    "provider": "Provider",
    "account": "Account",
    "elapsed": "Elapsed",
    "activeStage": "__MISSING__:Stage",
    "activeStageUnknown": "__MISSING__:Not sent to upstream yet",
    "activeStageRegistered": "__MISSING__:Registered",
    "activeStagePayloadPrepared": "__MISSING__:Payload prepared",
    "activeStageWaitingAccountSlot": "__MISSING__:Waiting for account slot",
    "activeStageWaitingRateLimit": "__MISSING__:Waiting for rate limiter",
    "activeStageRateLimitSlotAcquired": "__MISSING__:Rate limit slot acquired",
    "activeStageSendingToProvider": "__MISSING__:Sending to upstream",
    "activeStageProviderResponseStarted": "__MISSING__:Upstream response started",
    "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": "Witamy",
    "security": "Bezpieczeństwo",
    "test": "Testuj",
    "ready": "Gotowy!",
    "setPassword": "Ustaw hasło",
    "addProvider": "Dodaj swojego pierwszego dostawcę",
    "getStarted": "Rozpocznij",
    "skip": "Pomiń",
    "skipWizard": "Całkowicie pomiń kreatora",
    "skipPassword": "Pomiń konfigurację hasła",
    "skipAndContinue": "Pomiń i kontynuuj",
    "passwordLabel": "Hasło",
    "confirmPassword": "Potwierdź hasło",
    "enterPassword": "Wprowadź hasło",
    "confirmPasswordPlaceholder": "Potwierdź hasło",
    "passwordsMismatch": "Hasła nie pasują",
    "setupComplete": "Konfiguracja ukończona!",
    "goToDashboard": "Przejdź do Panelu →",
    "welcomeDesc": "OmniRoute to lokalny serwer proxy API AI. Kieruje żądania do wielu dostawców AI z równoważeniem obciążenia, przełączaniem awaryjnym i śledzeniem użycia.",
    "multiProvider": "Wielu dostawców",
    "usageTracking": "Śledzenie użycia",
    "securityDesc": "Ustaw hasło, aby chronić swój pulpit nawigacyjny, lub na razie pomiń.",
    "providerDesc": "Połącz swojego pierwszego dostawcę AI. Możesz dodać więcej później.",
    "apiKeyRequired": "Klucz API (wymagany)",
    "customUrlOptional": "Niestandardowy adres URL (opcjonalnie)",
    "testDesc": "Sprawdźmy, czy połączenie Twojego dostawcy działa.",
    "runTest": "Uruchom test połączenia",
    "testingConnection": "Testowanie połączenia...",
    "connectionSuccessful": "Połączenie pomyślne! Twój dostawca jest gotowy.",
    "noProviderFound": "Nie znaleziono dostawcy. Możesz dodać je później z poziomu panelu kontrolnego.",
    "testFailed": "Test nie powiódł się, ale możesz to skonfigurować później.",
    "couldNotTest": "Nie można teraz przetestować. Możesz przetestować z poziomu pulpitu nawigacyjnego.",
    "doneDesc": "Wszystko gotowe! Twoja instancja OmniRoute jest skonfigurowana i gotowa do zastępowania żądań AI.",
    "yourEndpoint": "Twój punkt końcowy:",
    "continue": "Kontynuuj",
    "retry": "Spróbuj ponownie",
    "failedSetPassword": "Nie udało się ustawić hasła. Spróbuj ponownie.",
    "failedAddProvider": "Nie udało się dodać dostawcy. Spróbuj ponownie.",
    "connectionError": "Błąd połączenia. Spróbuj ponownie.",
    "provider": "Dostawca",
    "apiKeyHelp": "Klucz API to hasło do usług AI. Pobierz go ze strony internetowej swojego dostawcy (np. platforma.openai.com, console.anthropic.com).",
    "tier": {
      "subtitle": "OmniRoute dzieli dostawców na trzy poziomy, więc routing preferuje najpierw najbardziej niezawodną i najtańszą ścieżkę.",
      "tier1": {
        "label": "Klienci premium",
        "description": "Najwyższej klasy interfejsy CLI z natywnymi przepływami uwierzytelniania i modelami wnioskowania."
      },
      "tier2": {
        "label": "Optymalizacja kosztów",
        "description": "Tani dostawcy o dużej przepustowości wykorzystywani do codziennego ruchu."
      },
      "tier3": {
        "label": "Rezerwa i specjalność",
        "description": "Lokalnie hostowane lub specjalne punkty końcowe używane jako rezerwowe."
      },
      "configure": "Skonfiguruj dostawców"
    },
    "tierFlowDiagramAlt": "3-poziomowy diagram rezerwowy OmniRoute",
    "apiKeyMgmt": "Zarządzanie kluczami API"
  },
  "providers": {
    "title": "Dostawcy",
    "allProviders": "Wszyscy dostawcy",
    "audioProviders": "Dostawcy dźwięku",
    "showFreeOnly": "Tylko bezpłatne",
    "addProvider": "Dodaj dostawcę",
    "addFirstProvider": "Dodaj swojego pierwszego dostawcę",
    "addFirstProviderDesc": "Połącz się z dostawcą AI, aby rozpocząć kierowanie żądań przez OmniRoute. Możesz korzystać z bezpłatnych dostawców, kluczy API lub kont OAuth.",
    "learnMore": "Dowiedz się więcej",
    "editProvider": "Edytuj dostawcę",
    "deleteProvider": "Usuń dostawcę",
    "noProviders": "Nie skonfigurowano żadnych dostawców",
    "modelAvailability": "Dostępność modelu",
    "accounts": "Konta",
    "newAccount": "Nowe konto",
    "deleteConfirm": "Czy na pewno chcesz usunąć tego dostawcę?",
    "testing": "Testowanie...",
    "testConnection": "Połączenie testowe",
    "testSuccess": "Połączenie pomyślne",
    "testFailed": "Połączenie nie powiodło się",
    "available": "Dostępne",
    "cooldown": "Czas odnowienia",
    "unavailable": "Niedostępne",
    "unknown": "Nieznany",
    "oauthLabel": "OAuth",
    "compatibleLabel": "Kompatybilny",
    "chat": "Czat",
    "responses": "Odpowiedzi",
    "messages": "Wiadomości",
    "oauthProviders": "Dostawcy protokołu OAuth",
    "freeProviders": "Bezpłatni dostawcy",
    "apiKeyProviders": "Dostawcy kluczy API",
    "compatibleProviders": "Dostawcy obsługujący klucz API",
    "testAll": "Przetestuj wszystko",
    "testAllOAuth": "Przetestuj wszystkie połączenia OAuth",
    "testAllFree": "Przetestuj wszystkie bezpłatne połączenia",
    "testAllApiKey": "Przetestuj wszystkie połączenia klucza API",
    "testAllCompatible": "Przetestuj wszystkie kompatybilne połączenia",
    "connected": "{count} Połączono",
    "errorCount": "{count} Błąd ({code})",
    "errorCountNoCode": "{count} Błąd",
    "warningCount": "{count} Ostrzeżenie",
    "noConnections": "Brak połączeń",
    "expiredBadge": "Expired",
    "expiringSoonBadge": "Expiring Soon",
    "freeTier": "Poziom bezpłatny",
    "freeTierAvailable": "Dostępny poziom bezpłatny",
    "hasFreeTooltip": "__MISSING__:Free tier available",
    "noAuthLabel": "__MISSING__:No Auth",
    "noAuthProviders": "__MISSING__:No Auth Providers",
    "upstreamProxyLabel": "__MISSING__:Upstream Proxy",
    "freeAggregated": "__MISSING__:All providers with free tier (also shown in their native category)",
    "deprecated": "Przestarzałe",
    "deprecatedProvider": "Ten dostawca został wycofany",
    "riskNotice": {
      "title": "__MISSING__:Before continuing",
      "tooltip": "__MISSING__:Provider with usage caveats — click for details",
      "oauth": "__MISSING__:This provider uses your official product session/OAuth, which is not authorized for proxy/router use.\n\nWe don't recommend intensive autonomous agent usage (OpenCloud-style, long multi-step flows, large batches) — the upstream may react by restricting or banning the account.\n\nUse at your own risk.",
      "webCookie": "__MISSING__:This provider authenticates through your web session cookies. The upstream service may invalidate the session at any time, requiring you to log in again. Not recommended for long unattended operations.\n\nUse at your own risk.",
      "deprecated": "__MISSING__:This provider was discontinued by its upstream and may stop working without notice. Existing connections may continue working until the upstream fully removes access. Consider alternatives.",
      "dontShowAgain": "__MISSING__:Don't show this again for this provider",
      "understand": "__MISSING__:I understand, continue",
      "cancel": "__MISSING__:Cancel"
    },
    "disabled": "Niepełnosprawny",
    "enableProvider": "Włącz dostawcę",
    "disableProvider": "Wyłącz dostawcę",
    "testResults": "Wyniki testu",
    "noCompatibleYet": "Nie dodano jeszcze żadnych kompatybilnych dostawców",
    "compatibleHint": "Użyj powyższych przycisków, aby dodać punkty końcowe kompatybilne z OpenAI lub Anthropic",
    "addOpenAICompatible": "Dodaj kompatybilność z OpenAI",
    "addAnthropicCompatible": "Dodaj kompatybilność antropiczną",
    "addNewProvider": "Dodaj nowego dostawcę",
    "backToProviders": "Powrót do dostawców",
    "configureNewProvider": "Skonfiguruj nowego dostawcę AI do użycia z aplikacjami.",
    "providerLabel": "Dostawca",
    "selectProvider": "Wybierz dostawcę",
    "selectedProvider": "Wybrany dostawca",
    "authMethod": "Metoda uwierzytelniania",
    "apiKeyLabel": "Klucz API",
    "apiKeyRequired": "Wymagany jest klucz API",
    "selectProviderRequired": "Wybierz dostawcę",
    "enterApiKey": "Wprowadź swój klucz API",
    "apiKeySecure": "Twój klucz API zostanie zaszyfrowany i bezpiecznie przechowywany.",
    "oauth2Connect": "Połącz się z OAuth2",
    "oauth2Label": "OAuth2",
    "oauth2Desc": "Połącz swoje konto za pomocą uwierzytelniania OAuth2.",
    "displayName": "Nazwa wyświetlana",
    "displayNamePlaceholder": "np. produkcyjne API, środowisko deweloperskie",
    "displayNameHint": "Opcjonalne. Przyjazna nazwa identyfikująca tę konfigurację.",
    "active": "Aktywny",
    "activeDescription": "Włącz tego dostawcę do użytku w swoich aplikacjach",
    "cancel": "Anuluj",
    "createProvider": "Utwórz dostawcę",
    "failedCreate": "Nie udało się utworzyć dostawcy",
    "errorOccurred": "Wystąpił błąd. Spróbuj ponownie.",
    "modelStatus": "Stan modelu",
    "showConfiguredOnly": "Configured only",
    "allModelsOperational": "Wszystkie modele sprawne",
    "modelsWithIssues": "{count} modele z problemami",
    "allModelsNormal": "Wszystkie modele reagują normalnie.",
    "cooldownCleared": "Czas odnowienia usunięty dla {model}",
    "failedClearCooldown": "Nie udało się wyczyścić czasu odnowienia",
    "loadingAvailability": "Ładowanie dostępności modelu...",
    "clearCooldown": "Jasne",
    "clearing": "Czyszczenie...",
    "until": "Do {time}",
    "providerTestFailed": "Test dostawcy nie powiódł się",
    "providerTestTimeout": "Provider test timed out — too many connections to test at once",
    "modeTest": "{mode} Test",
    "passedCount": "{count} zaliczone",
    "failedCount": "{count} nie powiodło się",
    "testedCount": "{count} przetestowane",
    "millisecondsAbbr": "{value}ms",
    "okShort": "OK",
    "errorShort": "BŁĄD",
    "noActiveConnectionsInGroup": "Nie znaleziono aktywnych połączeń dla tej grupy.",
    "allTestsPassed": "Wszystkie {total} testy zaliczone",
    "testSummary": "{passed}/{total} zaliczone, {failed} nie powiodło się",
    "nameLabel": "Imię",
    "prefixLabel": "Przedrostek",
    "baseUrlLabel": "Bazowy adres URL",
    "apiTypeLabel": "Typ interfejsu API",
    "prefixHint": "Wymagane. Unikalny przedrostek nazw modeli.",
    "nameHint": "Wymagane. Przyjazna etykieta dla tego węzła.",
    "baseUrlHint": "Wymagane.  Podstawowy adres URL interfejsu API dostawcy.",
    "anthropicPrefixPlaceholder": "AC-prod",
    "openaiPrefixPlaceholder": "oc-prod",
    "anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
    "openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
    "validateConnection": "Sprawdź połączenie",
    "validating": "Sprawdzanie poprawności...",
    "connectionValid": "Połączenie jest ważne!",
    "connectionFailed": "Połączenie nie powiodło się. Sprawdź adres URL i klucz.",
    "testKeyLabel": "Testuj klucz API",
    "testKeyPlaceholder": "sk-... (tylko do sprawdzenia)",
    "providerNotFound": "Nie znaleziono dostawcy",
    "deleteConnectionConfirm": "Usunąć to połączenie?",
    "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": "Nie udało się ustawić aliasu",
    "failedSaveConnection": "Nie udało się zapisać połączenia",
    "failedSaveConnectionRetry": "Nie udało się zapisać połączenia. Spróbuj ponownie.",
    "failedRetestConnection": "Nie udało się ponownie przetestować połączenia",
    "deleteCompatibleNodeConfirm": "Usunąć ten {type} Zgodny węzeł?",
    "anthropicCompatibleDetails": "Szczegóły zgodności antropicznej",
    "openaiCompatibleDetails": "Szczegóły zgodności z OpenAI",
    "messagesApi": "Interfejs API wiadomości",
    "responsesApi": "API odpowiedzi",
    "embeddings": "Embeddings",
    "audioTranscriptions": "Audio Transcriptions",
    "audioSpeech": "Audio Speech",
    "imagesGenerations": "Images Generations",
    "chatCompletions": "Zakończenia czatu",
    "importingModels": "Importowanie...",
    "importFromModels": "Importuj z /modele",
    "modelsImported": "{count} models imported",
    "allModelsAlreadyImported": "Wszystkie modele są już zaimportowane",
    "noNewModelsToImport": "Brak nowych modeli do zaimportowania — wszystkie modele są już w rejestrze lub na liście modeli niestandardowych",
    "skippingExistingModels": "Pomijanie {count} istniejących modeli",
    "autoSync": "Automatyczna synchronizacja",
    "autoSyncTooltip": "Automatycznie odświeża listę modeli co 24 godziny (konfigurowalne przez MODEL_SYNC_INTERVAL_HOURS)",
    "autoSyncEnabled": "Automatyczna synchronizacja włączona — modele będą okresowo odświeżane",
    "autoSyncDisabled": "Automatyczna synchronizacja wyłączona",
    "autoSyncToggleFailed": "Nie udało się przełączyć automatycznej synchronizacji",
    "clearAllModels": "Wyczyść wszystkie modele",
    "clearAllModelsConfirm": "Czy na pewno chcesz usunąć wszystkie modele dla tego dostawcy?",
    "clearAllModelsSuccess": "Wszystkie modele wyczyszczone",
    "clearAllModelsFailed": "Nie udało się wyczyścić modeli",
    "addConnectionToImport": "Dodaj połączenie, aby umożliwić importowanie.",
    "noModelsConfigured": "Nie skonfigurowano żadnych modeli",
    "connectionCount": "{count} połączenia",
    "fetchingModels": "Pobieram dostępne modele...",
    "failedFetchModels": "Nie udało się pobrać modeli",
    "noModelsFound": "Nie znaleziono żadnych modeli",
    "importFailed": "Import nie powiódł się",
    "noNewModelsAdded": "Nie dodano żadnych nowych modeli.",
    "adding": "Dodawanie...",
    "close": "Close",
    "importingModelsTitle": "Importowanie modeli",
    "copyModel": "Skopiuj model",
    "filterModels": "Filtruj modele…",
    "modelsActive": "aktywne",
    "showModel": "Pokaż model",
    "hideModel": "Ukryj model",
    "removeModel": "Usuń model",
    "rateLimitProtected": "Chronione",
    "rateLimitUnprotected": "Niechroniony",
    "enableRateLimitProtection": "Kliknij, aby włączyć ochronę limitu szybkości",
    "disableRateLimitProtection": "Kliknij, aby wyłączyć ochronę limitu szybkości",
    "productionKey": "Klucz produkcyjny",
    "enterNewApiKey": "Wprowadź nowy klucz API",
    "codexApplyModalTitle": "Zastosuj się do lokalnego kodeksu",
    "codexApplyTargetLabel": "Ścieżka docelowa",
    "codexApplyBackupLabel": "Kopie zapasowe",
    "codexApplyWarning": "Zastąpi to istniejący plik auth.json. Kontynuować?",
    "codexApplyConfirmCheckbox": "Potwierdzam, że chcę zastąpić istniejący plik auth.json",
    "codexApply": "Zastosuj",
    "bulkTabSingle": "Pojedynczy",
    "bulkTabBulkAdd": "Dodaj zbiorczo",
    "bulkAddFormatHint": "Jeden klucz na linię. Format: nazwa|apiKey lub po prostu apiKey (nazywany automatycznie według indeksu).",
    "bulkValidateKeys": "Zweryfikuj każdy klucz przed zapisaniem (wolniej)",
    "bulkAddAllKeys": "Dodaj wszystkie klucze",
    "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
    "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
    "optional": "Opcjonalne",
    "anthropicCompatibleName": "Kompatybilny z antropią",
    "openaiCompatibleName": "Kompatybilny z OpenAI",
    "failedImportModels": "Nie udało się zaimportować modeli",
    "noModelsReturnedFromEndpoint": "Z punktu końcowego /models nie zwrócono żadnych modeli.",
    "importingModelsProgress": "Importowanie {current} z {total} modeli...",
    "foundModelsStartingImport": "Znaleziono {count} modeli. Rozpoczynam importowanie...",
    "importingModelById": "Importowanie {modelId}...",
    "importSuccessCount": "Pomyślnie zaimportowano {count, plural, one {# model} other {# models}}!",
    "noNewModelsAddedExisting": "Nie dodano żadnych nowych modeli (wszystkie już istnieją).",
    "importDoneCount": "✓ Gotowe! {count, plural, one {# model imported.} other {# models imported.}}",
    "unexpectedErrorOccurred": "Wystąpił nieoczekiwany błąd",
    "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
    "messagesPath": "wiadomości",
    "responsesPath": "odpowiedzi",
    "chatCompletionsPath": "czat/uzupełnienia",
    "add": "Dodaj",
    "edit": "Edytuj",
    "delete": "Usuń",
    "anthropic": "Antropiczny",
    "openai": "OpenAI",
    "singleConnectionPerCompatible": "Dozwolone jest tylko jedno połączenie na kompatybilny węzeł. Dodaj kolejny węzeł, jeśli potrzebujesz więcej połączeń.",
    "connections": "Połączenia",
    "providerProxyTitleConfigured": "Serwer proxy dostawcy: {host}",
    "configured": "skonfigurowany",
    "providerProxyConfigureHint": "Skonfiguruj serwer proxy dla wszystkich połączeń tego dostawcy",
    "providerProxy": "Pełnomocnik dostawcy",
    "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": "Nie ma jeszcze żadnych połączeń",
    "addFirstConnectionHint": "Aby rozpocząć, dodaj swoje pierwsze połączenie",
    "addConnection": "Dodaj połączenie",
    "availableModels": "Dostępne modele",
    "builtInModels": "Built-in models",
    "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
    "pageAutoRefresh": "Strona odświeży się automatycznie...",
    "statusDisabled": "wyłączone",
    "statusConnected": "podłączony",
    "statusRuntimeIssue": "problem z czasem wykonania",
    "statusAuthFailed": "autoryzacja nie powiodła się",
    "statusRateLimited": "stawka ograniczona",
    "statusNetworkIssue": "problem z siecią",
    "statusTestUnsupported": "test nieobsługiwany",
    "statusUnavailable": "niedostępne",
    "statusFailed": "nie powiodło się",
    "statusError": "błąd",
    "oauthAccount": "Konto OAuth",
    "errorTypeRuntime": "Lokalny czas wykonania",
    "errorTypeUpstreamAuth": "Autoryzacja nadrzędna",
    "errorTypeMissingCredential": "Brakujące poświadczenie",
    "errorTypeRefreshFailed": "Odświeżanie nie powiodło się",
    "errorTypeTokenExpired": "Token wygasł",
    "errorTypeRateLimited": "Cena ograniczona",
    "errorTypeUpstreamUnavailable": "Upstream niedostępny",
    "errorTypeNetworkError": "Błąd sieci",
    "errorTypeTestUnsupported": "Test nieobsługiwany",
    "errorTypeUpstreamError": "Błąd w górę",
    "proxySourceGlobal": "Globalny",
    "proxySourceProvider": "Dostawca",
    "proxySourceKey": "Klucz",
    "proxyConfiguredBySource": "Pełnomocnik ({source}): {host}",
    "autoPriority": "Automatycznie: {priority}",
    "proxy": "Pełnomocnik",
    "retestAuthentication": "Przetestuj ponownie uwierzytelnianie",
    "retest": "Przetestuj ponownie",
    "disableConnection": "Wyłącz połączenie",
    "enableConnection": "Włącz połączenie",
    "reauthenticateConnection": "Ponownie uwierzytelnij to połączenie",
    "proxyConfig": "Konfiguracja proxy",
    "aliasExistsAlert": "Alias „{alias}” już istnieje. Użyj innego modelu lub edytuj istniejący alias.",
    "openRouterAnyModelHint": "OpenRouter obsługuje każdy model. Dodawaj modele i twórz aliasy, aby uzyskać szybki dostęp.",
    "modelIdFromOpenRouter": "Identyfikator modelu (z OpenRouter)",
    "openRouterModelPlaceholder": "antropiczny/claude-3-opus",
    "customModels": "Modele niestandardowe",
    "customModelsHint": "Dodaj identyfikatory modeli, których nie ma na liście domyślnej. Będą one dostępne do routingu.",
    "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": "Przełącz limit dla modelu",
    "modelId": "Identyfikator modelu",
    "customModelPlaceholder": "np. gpt-4.5-turbo",
    "loading": "Ładowanie...",
    "removeCustomModel": "Usuń model niestandardowy",
    "noCustomModels": "Nie dodano jeszcze żadnych modeli niestandardowych.",
    "allSuggestedAliasesExist": "Wszystkie sugerowane aliasy już istnieją. Wybierz inny model lub usuń sprzeczne aliasy.",
    "failedSaveCustomModel": "Nie udało się zapisać modelu niestandardowego",
    "modelAddedSuccess": "Model {modelId} został pomyślnie dodany",
    "failedAddModelTryAgain": "Nie udało się dodać modelu. Spróbuj ponownie.",
    "failedSaveImportedModel": "Nie udało się zapisać zaimportowanego modelu w niestandardowej bazie danych",
    "failedImportModelsTryAgain": "Nie udało się zaimportować modeli. Spróbuj ponownie.",
    "failedRemoveModelFromDatabase": "Nie udało się usunąć modelu z bazy danych",
    "modelRemovedSuccess": "Model został pomyślnie usunięty",
    "failedDeleteModelTryAgain": "Nie udało się usunąć modelu. Spróbuj ponownie.",
    "compatibleModelsDescription": "Dodaj ręcznie modele kompatybilne z {type} lub zaimportuj je z punktu końcowego /models.",
    "anthropicCompatibleModelPlaceholder": "klauzula-3-opus-20240229",
    "openaiCompatibleModelPlaceholder": "gpt-4o",
    "apiKeyValidationFailed": "Weryfikacja klucza API nie powiodła się. Sprawdź swój klucz i spróbuj ponownie.",
    "addProviderApiKeyTitle": "Dodaj klucz API {provider}",
    "checking": "Sprawdzam...",
    "check": "Sprawdź",
    "valid": "Ważne",
    "invalid": "Nieprawidłowe",
    "creating": "Tworzenie...",
    "validationChecksAnthropicCompatible": "Walidacja sprawdza {provider} poprzez weryfikację klucza API.",
    "validationChecksOpenAiCompatible": "Walidacja sprawdza {provider} poprzez /models na podstawowym adresie URL.",
    "priorityLabel": "Priorytet",
    "saving": "Zapisywanie...",
    "save": "Zapisz",
    "editConnection": "Edytuj połączenie",
    "accountName": "Nazwa konta",
    "email": "E-mail",
    "healthCheckMinutes": "Kontrola stanu (min)",
    "healthCheckHint": "Proaktywny interwał odświeżania tokenu. 0 = wyłączone.",
    "selectAllModels": "Select all",
    "deselectAllModels": "Deselect all",
    "modelsActiveCount": "{active}/{total} active",
    "noModelsMatch": "No models match \"{filter}\"",
    "groupLabel": "Environment",
    "groupPlaceholder": "e.g. eKaizen, Personal",
    "failedTestConnection": "Nie udało się przetestować połączenia",
    "failed": "Nie udało się",
    "leaveBlankKeepCurrentApiKey": "Pozostaw puste, aby zachować bieżący klucz API.",
    "editCompatibleTitle": "Edytuj {type} Kompatybilny",
    "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
    "apiKeyForCheck": "Klucz API (do sprawdzenia)",
    "compatibleProdPlaceholder": "{type} Kompatybilny (Prod)",
    "tokenRefreshed": "Token refreshed successfully",
    "tokenRefreshFailed": "Token refresh failed",
    "applyCodexAuthLocal": "Apply auth",
    "exportCodexAuthFile": "Export auth",
    "applyClaudeAuthLocal": "Zastosuj autoryzację",
    "exportClaudeAuthFile": "Eksportuj autoryzację",
    "importClaudeAuth": "Importuj autoryzację",
    "claudeApplyModalTitle": "Zastosuj do lokalnego kodu Claude",
    "claudeApplyTargetLabel": "Ścieżka docelowa",
    "claudeApplyBackupLabel": "Kopie zapasowe",
    "claudeApplyMcpHint": "Istniejący stan MCP OAuth zostanie zachowany.",
    "claudeApplyWarning": "Zastąpi to istniejącą sekcję claudeAiOauth. Kontynuować?",
    "claudeApplyConfirmCheckbox": "Potwierdzam, że chcę zastąpić istniejącą sekcję claudeAiOauth",
    "claudeApply": "Zastosuj",
    "claudeAuthAppliedLocal": "Autoryzacja Claude'a zastosowana lokalnie",
    "claudeAuthApplyFailed": "Nie udało się zastosować lokalnego uwierzytelnienia Claude",
    "claudeAuthExported": "Wyeksportowano plik autoryzacyjny Claude",
    "claudeAuthExportFailed": "Nie udało się wyeksportować pliku uwierzytelniającego Claude",
    "claudeImportModalTitle": "Importuj autoryzację Claude'a",
    "claudeImportTabSingle": "Pojedynczy",
    "claudeImportTabBulk": "luzem",
    "claudeImportTabUpload": "Prześlij plik",
    "claudeImportTabPaste": "Wklej JSON",
    "claudeImportFileLabel": "Wybierz plik .credentials.json",
    "claudeImportPasteLabel": "Wklej zawartość JSON",
    "claudeImportEmailLabel": "Adres e-mail konta",
    "claudeImportNameLabel": "Nazwa połączenia (opcjonalnie)",
    "claudeImportOverwriteLabel": "Zastąp istniejące połączenie, jeśli konto już istnieje",
    "claudeImportSubmit": "Importuj",
    "claudeImportSuccess": "Połączenie Claude zostało pomyślnie zaimportowane",
    "claudeImportInvalidJson": "Nie można przeanalizować pliku jako JSON",
    "claudeImportInvalidShape": "Plik nie jest prawidłowym plikiem .credentials.json",
    "claudeImportDuplicate": "Konto już istnieje — włącz opcję „Zastąp istniejące”, aby je zastąpić",
    "claudeImportIdentityUnverified": "Bootstrap nie mógł zweryfikować konta. Włącz opcję „Zastąp istniejące” lub podaj adres e-mail.",
    "claudeImportFailed": "Nie udało się zaimportować uwierzytelnienia Claude",
    "claudeImportBulkModeUpload": "Prześlij pliki",
    "claudeImportBulkModePaste": "Wklej tablicę JSON",
    "claudeImportBulkModeZip": "Prześlij ZIP",
    "claudeImportBulkUploadHint": "Upuść lub pobierz maksymalnie 50 plików .credentials.json (każdy po 256 KB, łącznie 10 MB).",
    "claudeImportBulkPasteHint": "Wklej tablicę obiektów: [{ json, name?, email? }, ...]",
    "claudeImportBulkZipHint": "ZIP zawierający wpisy .json. Maks. 50 wpisów, 10 MB po rozpakowaniu.",
    "claudeImportBulkSubmit": "Zaimportuj wszystko",
    "claudeImportBulkSuccess": "Zaimportowano połączenia {count} Claude",
    "claudeImportBulkFailed": "Nie udało się zaimportować niektórych wpisów",
    "claudeImportBulkZipExtracting": "Wyodrębniam ZIP…",
    "claudeImportBulkZipError": "Nie udało się wyodrębnić ZIP",
    "applyGeminiAuthLocal": "Zastosuj autoryzację",
    "exportGeminiAuthFile": "Eksportuj autoryzację",
    "importGeminiAuth": "Importuj autoryzację",
    "geminiApplyModalTitle": "Zastosuj do lokalnego interfejsu wiersza polecenia Gemini",
    "geminiApplyTargetLabel": "Ścieżka docelowa",
    "geminiApplyBackupLabel": "Kopie zapasowe",
    "geminiApplyAccountsHint": "Aktywne konto google_accounts.json zostanie zaktualizowane, aby było zgodne z tym połączeniem.",
    "geminiApplyWarning": "Spowoduje to zastąpienie istniejącego pliku oauth_creds.json i zaktualizowanie pliku google_accounts.json. Kontynuować?",
    "geminiApplyConfirmCheckbox": "Potwierdzam, że chcę zastąpić istniejący plik oauth_creds.json",
    "geminiApply": "Zastosuj",
    "geminiAuthAppliedLocal": "Autoryzacja Gemini stosowana lokalnie",
    "geminiAuthApplyFailed": "Nie udało się zastosować lokalnego uwierzytelnienia Gemini",
    "geminiAuthExported": "Wyeksportowano plik uwierzytelniający Gemini",
    "geminiAuthExportFailed": "Nie udało się wyeksportować pliku uwierzytelniającego Gemini",
    "geminiImportModalTitle": "Importuj autoryzację Gemini",
    "geminiImportTabSingle": "Pojedynczy",
    "geminiImportTabBulk": "luzem",
    "geminiImportTabUpload": "Prześlij plik",
    "geminiImportTabPaste": "Wklej JSON",
    "geminiImportFileLabel": "Wybierz plik oauth_creds.json",
    "geminiImportPasteLabel": "Wklej zawartość JSON",
    "geminiImportEmailLabel": "Adres e-mail konta",
    "geminiImportNameLabel": "Nazwa połączenia (opcjonalnie)",
    "geminiImportOverwriteLabel": "Zastąp istniejące połączenie, jeśli konto już istnieje",
    "geminiImportSubmit": "Importuj",
    "geminiImportSuccess": "Połączenie Gemini zostało pomyślnie zaimportowane",
    "geminiImportInvalidJson": "Nie można przeanalizować pliku jako JSON",
    "geminiImportInvalidShape": "Plik nie jest prawidłowym plikiem oauth_creds.json",
    "geminiImportDuplicate": "Konto już istnieje — włącz opcję „Zastąp istniejące”, aby je zastąpić",
    "geminiImportIdentityUnverified": "Nie można zweryfikować tożsamości z id_token. Włącz opcję „Zastąp istniejące” lub podaj adres e-mail.",
    "geminiImportFailed": "Nie udało się zaimportować uwierzytelnienia Gemini",
    "geminiImportBulkModeUpload": "Prześlij pliki",
    "geminiImportBulkModePaste": "Wklej tablicę JSON",
    "geminiImportBulkModeZip": "Prześlij ZIP",
    "geminiImportBulkUploadHint": "Upuść lub pobierz maksymalnie 50 plików oauth_creds.json (każdy po 256 KB, łącznie 10 MB).",
    "geminiImportBulkPasteHint": "Wklej tablicę obiektów: [{ json, name?, email? }, ...]",
    "geminiImportBulkZipHint": "ZIP zawierający wpisy oauth_creds.json. Maks. 50 wpisów, 10 MB po rozpakowaniu.",
    "geminiImportBulkSubmit": "Zaimportuj wszystko",
    "geminiImportBulkSuccess": "Zaimportowano połączenia {count} Gemini",
    "geminiImportBulkFailed": "Nie udało się zaimportować niektórych wpisów",
    "geminiImportBulkZipExtracting": "Wyodrębniam ZIP…",
    "geminiImportBulkZipError": "Nie udało się wyodrębnić 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": "Importuj autoryzację",
    "codexImportModalTitle": "Importuj autoryzację Kodeksu",
    "codexImportTabSingle": "Pojedynczy",
    "codexImportTabBulk": "luzem",
    "codexImportTabUpload": "Prześlij plik",
    "codexImportTabPaste": "Wklej JSON",
    "codexImportFileLabel": "Wybierz plik auth.json",
    "codexImportFileHint": "Wybierz plik auth.json wyeksportowany z Codexu lub z OmniRoute.",
    "codexImportPasteLabel": "Wklej zawartość JSON",
    "codexImportEmailLabel": "Adres e-mail konta",
    "codexImportEmailHint": "Automatycznie wykryte z pliku; edytować w razie potrzeby.",
    "codexImportNameLabel": "Nazwa połączenia (opcjonalnie)",
    "codexImportOverwriteLabel": "Zastąp istniejące połączenie, jeśli konto już istnieje",
    "codexImportSubmit": "Importuj",
    "codexImportSuccess": "Połączenie Kodeksu zostało pomyślnie zaimportowane",
    "codexImportInvalidJson": "Nie można przeanalizować pliku jako JSON",
    "codexImportInvalidShape": "Plik nie jest prawidłowym plikiem auth.json Codex",
    "codexImportDuplicate": "Konto już istnieje — włącz opcję „Zastąp istniejące”, aby je zastąpić",
    "codexImportFailed": "Nie udało się zaimportować uwierzytelnienia Codex",
    "codexImportDetectedEmail": "Wykryto: {email}",
    "codexImportNoEmailDetected": "W pliku nie wykryto adresu e-mail",
    "codexImportBulkModeUpload": "Prześlij pliki",
    "codexImportBulkModePaste": "Wklej listę",
    "codexImportBulkModeZip": "Archiwum ZIP",
    "codexImportBulkUploadHint": "Wybierz wiele plików .json lub przeciągnij i upuść",
    "codexImportBulkPasteHint": "Tablica JSON [ {...}, {...} ] lub wiele JSON oddzielonych --- w osobnej linii",
    "codexImportBulkZipHint": "Prześlij plik .zip zawierający pliki auth.json (maks. 50 plików, 10 MB)",
    "codexImportBulkSubmit": "Zaimportuj konta {count}",
    "codexImportBulkLimit": "Maksymalnie 50 plików na import",
    "codexImportBulkSuccess": "{count} zaimportowano",
    "codexImportBulkFailed": "{count} nie powiodło się",
    "codexImportBulkZipExtracting": "Wyodrębniam ZIP…",
    "codexImportBulkZipError": "Nie udało się wyodrębnić 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": "Przedsiębiorstwo i chmura",
    "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": "Dostawcy agentów w chmurze",
    "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": "Otwórz t3.chat → DevTools → Aplikacja → Pamięć lokalna → https://t3.chat, skopiuj „convex-session-id”. Następnie otwórz DevTools → Network, skopiuj pełny nagłówek Cookie z dowolnego żądania czatu. Wklej obie wartości w polach poniżej.",
    "t3ChatWebCookiePlaceholder": "wypukły-id-sesji=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": "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": "Twój identyfikator projektu Google Cloud. Wymagane w przypadku kont z wyjątkami. Wpisz identyfikator projektu GCP, którego chcesz używać z interfejsem Gemini CLI.",
    "geminiCliProjectIdLabel": "Identyfikator projektu Google Cloud",
    "geminiCliProjectIdPlaceholder": "identyfikator mojego-gcp-projektu",
    "antigravityProjectIdHint": "Opcjonalne zastąpienie żądań kodu chmury antygrawitacyjnej. Pozostaw puste, aby użyć projektu wykrytego podczas Google OAuth.",
    "antigravityClientProfileLabel": "__MISSING__:Client profile",
    "antigravityClientProfileHint": "__MISSING__:Choose which Antigravity client identity OmniRoute presents to the API.",
    "antigravityClientProfileIde": "__MISSING__:IDE",
    "antigravityClientProfileHarness": "__MISSING__:Harness / CLI",
    "codexFastTierActiveChip": "__MISSING__:Codex Fast tier is active",
    "tierFast": "__MISSING__:Fast",
    "antigravityProjectIdLabel": "Identyfikator projektu Google Cloud",
    "antigravityProjectIdPlaceholder": "identyfikator mojego-gcp-projektu",
    "grokWebCookieHint": "Grok Web Cookie Hint",
    "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
    "herokuBaseUrlHint": "Heroku Base Url Hint",
    "hideEmail": "Hide Email",
    "imageProviders": "Image Providers",
    "videoProviders": "Generowanie wideo",
    "embeddingRerankProviders": "Osadzania i zmiana rankingu",
    "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": "Wyszukaj dostawców...",
    "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": "Dostawcy bezpłatnego poziomu",
    "freeTierLabel": "Dostępny poziom bezpłatny",
    "freeTierProvidersDesc": "Dostawcy z bezpłatnymi poziomami — niektórzy wymagają rejestracji klucza API, inni w ogóle nie potrzebują poświadczeń.",
    "providerSummaryAll": "Razem",
    "ideProviders": "Dostawcy IDE",
    "ideProvidersDesc": "Redaktorzy z wbudowaną subskrypcją AI. Użyj strony dostawcy, aby zaimportować poświadczenia bezpośrednio z pęku kluczy IDE.",
    "noIdeProviders": "Żaden dostawca IDE nie pasuje do bieżących filtrów.",
    "providerDetailFastTierTooltip": "Domyślnie zastosuj warstwę Codex Fast do wszystkich połączeń Codex",
    "providerDetailFastDefaultLabel": "Szybkie ustawienie domyślne",
    "providerDetailBrowserManualConnect": "Połączenie przez przeglądarkę/ręczne",
    "providerDetailAuthUrl": "Adres URL uwierzytelniania",
    "providerDetailCallbackUrl": "Adres URL wywołania zwrotnego",
    "providerDetailValidClaudeCredentialsFile": "Prawidłowy plik danych uwierzytelniających Claude",
    "providerDetailPathAutoDetectedAllOs": "Ścieżka jest wykrywana automatycznie w zależności od systemu operacyjnego (Linux/Mac/Windows).",
    "providerDetailMyClaudeAccountPlaceholder": "Moje konto Claude",
    "providerDetailPathAutoDetected": "Ścieżka jest wykrywana automatycznie w zależności od systemu operacyjnego (Linux/Mac).",
    "webFetch": "__MISSING__:Web Fetch",
    "webFetchTooltip": "__MISSING__:Providers that extract content from web URLs (HTML → Markdown, scrape, screenshot)",
    "webFetchProvidersHeading": "__MISSING__:Web Fetch Providers",
    "compatibleProvidersDesc": "__MISSING__:OpenAI-compatible and Anthropic-compatible endpoints you host or configure. Point any OpenAI SDK to your own URL and route requests here.",
    "oauthProvidersDesc": "__MISSING__:Providers authenticated via OAuth — sign in once and OmniRoute handles token rotation automatically.",
    "webCookieProvidersDesc": "Dostawcy ci używają sesji internetowych przeglądarki, plików cookie lub tokenów sieciowych zamiast kluczy API. Otwórz dostawcę, aby dodać wymagane poświadczenia sesji.",
    "apiKeyProvidersDesc": "__MISSING__:Standard API key providers. Add your key once and OmniRoute routes, retries, and rate-limits on your behalf.",
    "noAuthProvidersDesc": "__MISSING__:Open endpoints that require no credentials — ready to use immediately without any sign-up.",
    "upstreamProxyProvidersDesc": "__MISSING__:Route outbound traffic through an upstream proxy before it reaches the provider. Useful for corporate networks or traffic inspection.",
    "webFetchProvidersDesc": "__MISSING__:Providers that fetch and extract content from web URLs. Use them to ground prompts with live web data.",
    "aggregatorsGatewaysDesc": "__MISSING__:Multi-provider aggregators and AI gateways that expose a single unified API across dozens of underlying models.",
    "enterpriseCloudDesc": "__MISSING__:Enterprise-tier and cloud-hosted models with enhanced SLAs, compliance certifications, and dedicated capacity.",
    "cloudAgentProvidersDesc": "__MISSING__:Autonomous cloud agents that execute long-running tasks with plan approval and live status tracking.",
    "localProvidersDesc": "__MISSING__:Self-hosted models running on your own hardware. No data leaves your infrastructure.",
    "searchProvidersDesc": "__MISSING__:Web and document search providers. Attach them to LLM calls for Retrieval-Augmented Generation.",
    "audioProvidersDesc": "__MISSING__:Text-to-speech and speech-to-text providers for voice I/O and audio transcription pipelines.",
    "embeddingRerankProvidersDesc": "__MISSING__:Vector embedding and reranking providers for semantic search, RAG pipelines, and similarity scoring.",
    "imageProvidersDesc": "__MISSING__:Image generation and vision providers — create images from text or analyse existing ones.",
    "videoProvidersDesc": "__MISSING__:Video generation providers. Create short video clips from text prompts or images.",
    "onboardingWizard": "Kreator wdrażania dostawcy",
    "onboardingWizardShort": "Kreator wdrożenia",
    "onboardingWizardDescription": "Połącz dostawców obsługujących klucz API, niestandardowo zgodnych i OAuth z walidacją, trwałością i natychmiastowym testem połączenia.",
    "onboardingStepType": "Wpisz",
    "onboardingStepProvider": "Dostawca",
    "onboardingStepCredentials": "Poświadczenia",
    "onboardingStepResult": "Wynik",
    "onboardingTypeApiKeyTitle": "Dostawca klucza API",
    "onboardingTypeApiKeyText": "Korzystaj z wbudowanych dostawców, takich jak OpenAI, Anthropic, Gemini, Groq, Azure i innych.",
    "onboardingTypeCustomTitle": "Niestandardowy kompatybilny dostawca",
    "onboardingTypeCustomText": "Utwórz punkt końcowy zgodny z OpenAI, Anthropic lub Claude Code i dodaj jego klucz.",
    "onboardingTypeOAuthTitle": "Dostawca OAuth",
    "onboardingTypeOAuthText": "Wykorzystaj ponownie istniejący protokół OAuth, kod urządzenia lub lokalne przepływy importu dla dostawców kodowania.",
    "onboardingChooseOAuthProvider": "Wybierz dostawcę OAuth",
    "onboardingChooseApiKeyProvider": "Wybierz dostawcę klucza API",
    "onboardingChooseProviderDescription": "Wybierz dostawcę, a kreator przeprowadzi Cię przez proces uwierzytelniania i testowanie.",
    "onboardingChangeType": "Zmień typ",
    "onboardingChangeProvider": "Zmień dostawcę",
    "onboardingSearchProviders": "Dostawcy wyszukiwania…",
    "onboardingApiKeyOptional": "Klucz API opcjonalny",
    "onboardingProviderConnected": "Dostawca podłączony",
    "onboardingProviderSavedWithWarnings": "Dostawca zapisany z ostrzeżeniami",
    "onboardingProviderFinished": "Zakończono wdrażanie dostawcy",
    "onboardingYourProviderConnection": "Twoje połączenie z dostawcą",
    "onboardingTestPassed": "Test zaliczony",
    "onboardingTestFailed": "Test nie powiódł się",
    "onboardingOpenProviderDetails": "Otwórz szczegóły dostawcy",
    "onboardingTryInPlayground": "Spróbuj na placu zabaw",
    "onboardingDefaultConnectionName": "{provider} Podstawowy",
    "onboardingTestingConnection": "Testuję połączenie dostawcy…",
    "onboardingValidatingCredentials": "Sprawdzam poświadczenia…",
    "onboardingSavingConnection": "Zapisuję połączenie z dostawcą…",
    "onboardingProviderFailed": "Wdrożenie dostawcy nie powiodło się",
    "onboardingCreatingCompatibleProvider": "Tworzę kompatybilnego dostawcę…",
    "onboardingSavingCompatibleConnection": "Zapisuję połączenie zgodnego dostawcy…",
    "onboardingCustomProviderFallbackName": "Dostawca niestandardowy",
    "onboardingCustomProviderFailed": "Wdrożenie dostawcy niestandardowego nie powiodło się",
    "onboardingLoadingOAuthConnection": "Ładowanie połączenia OAuth…",
    "onboardingOAuthNoConnectionFound": "OAuth zostało zakończone, ale nie znaleziono połączenia z dostawcą.",
    "onboardingOAuthFailed": "Wdrożenie OAuth nie powiodło się",
    "onboardingAddProvider": "Dodaj {provider}",
    "onboardingConnectionName": "Nazwa połączenia",
    "onboardingApiKeyOptionalLabel": "Klucz API (opcjonalnie)",
    "onboardingBaseUrlOverride": "Zastąpienie podstawowego adresu URL",
    "onboardingBaseUrlOverrideHint": "Opcjonalne. Przechowywane jako dostawcaSpecificData.baseUrl.",
    "onboardingRegion": "Region",
    "onboardingSearchCx": "Szukaj CX / identyfikator wyszukiwarki",
    "onboardingProviderSpecificIdPlaceholder": "Opcjonalny identyfikator specyficzny dla dostawcy",
    "onboardingCustomUserAgent": "Niestandardowy agent użytkownika",
    "onboardingWorking": "Pracuję…",
    "onboardingValidateSaveTest": "Sprawdź, zapisz i przetestuj",
    "onboardingBack": "Powrót",
    "onboardingCreateCustomCompatibleProvider": "Utwórz niestandardowego kompatybilnego dostawcę",
    "onboardingCreateCustomCompatibleDescription": "Kreator najpierw tworzy węzeł dostawcy, a następnie przechowuje i testuje jego połączenie klucza API.",
    "onboardingProtocol": "Protokół",
    "onboardingOpenAiCompatible": "Kompatybilny z OpenAI",
    "onboardingAnthropicCompatible": "Kompatybilny z antropią",
    "onboardingClaudeCodeCompatible": "Kompatybilny z Claude Code",
    "onboardingProviderPrefix": "Prefiks dostawcy",
    "onboardingProviderPrefixHint": "Służy do generowania identyfikatora zarządzanego dostawcy.",
    "onboardingChatPath": "Ścieżka czatu",
    "onboardingModelsPath": "Ścieżka modeli",
    "onboardingCreateSaveTest": "Twórz, zapisuj i testuj",
    "onboardingConnectProvider": "Połącz {provider}",
    "onboardingOAuthFlowDescription": "OmniRoute otworzy istniejący przepływ OAuth dla tego dostawcy. Po zalogowaniu kreator ponownie ładuje zapisane połączenie i przeprowadza ten sam test połączenia, co strona dostawcy.",
    "onboardingStartOAuthFlow": "Rozpocznij przepływ OAuth",
    "passthroughModelsDescription": "{provider} akceptuje identyfikatory modeli natywne dla dostawcy. Importuj z /models lub dodaj niestandardowe identyfikatory dla routingu.",
    "bedrockModelsDescription": "Modele Amazon Bedrock są objęte zakresem regionu AWS. Importuj z /models lub dodaj identyfikatory modeli Bedrock włączone w wybranym regionie.",
    "bedrockModelPlaceholder": "antropiczny.claude-sonnet-4-6",
    "addProviderSessionCookieTitle": "Dodaj plik cookie sesji {provider}",
    "addProviderWebTokenTitle": "Dodaj token sieciowy {provider}",
    "addProviderConnectionTitle": "Dodaj połączenie {provider}",
    "webTokenCredentialLabel": "Token sesji internetowej",
    "webNoAuthCredentialLabel": "Nie jest wymagane żadne poświadczenie",
    "webCookieCredentialHint": "Wymagany plik cookie: {credential}. Wklej wartość nagłówka Cookie z sesji internetowej, w której się zalogowałeś {provider}. Nie dołączaj przedrostka Cookie:.",
    "webTokenCredentialHint": "Dane uwierzytelniające: {credential}. Wklej wartość tokena z własnej sesji internetowej {provider}, w której się zalogowałeś, lub eksport HAR DevTools, jeśli dostawca to obsługuje.",
    "webCookieEditHint": "Pozostaw puste, aby zachować plik cookie bieżącej sesji. Wymagany plik cookie: {credential}.",
    "webTokenEditHint": "Pozostaw puste, aby zachować bieżący token sesji internetowej. Dane uwierzytelniające: {credential}.",
    "webSessionGuideTitle": "Jak uzyskać dane uwierzytelniające sesję",
    "webSessionGuideIntro": "{provider} używa sesji internetowej przeglądarki zamiast klucza API.",
    "webCookieRequiredCredential": "Wymagany plik cookie: {credential}",
    "webTokenRequiredCredential": "Wymagany token: {credential}",
    "webSessionGuideStep1": "Zaloguj się do {provider} w swojej przeglądarce.",
    "webSessionGuideStep2": "Otwórz narzędzia programistyczne przeglądarki i sprawdź żądanie wysłane przez aplikację internetową.",
    "webSessionGuideStep3": "Skopiuj wymagane dane uwierzytelniające z domeny dostawcy. W przypadku plików cookie skopiuj tylko wartość nagłówka Cookie i pomiń Cookie:.",
    "webSessionGuideStep4": "Wklej go tutaj i sprawdź połączenie. Jeśli przestanie działać, zaloguj się ponownie i zastąp ją nową wartością.",
    "webSessionSecurityHint": "Traktuj to jak hasło: może uzyskać dostęp do Twojego zalogowanego konta internetowego, dopóki nie wygaśnie lub nie zostanie unieważnione.",
    "webNoAuthGuideTitle": "Nie jest wymagane żadne poświadczenie",
    "webNoAuthGuideBody": "{provider} nie potrzebuje klucza API ani pliku cookie. Zapisz połączenie, aby móc korzystać z bezpłatnego internetowego punktu końcowego.",
    "webSessionCredentialValidationFailed": "Weryfikacja danych logowania sesji nie powiodła się. Zaloguj się ponownie, skopiuj nowe dane uwierzytelniające i spróbuj ponownie.",
    "checkCookie": "Sprawdź plik cookie",
    "checkWebToken": "Sprawdź token"
  },
  "settings": {
    "title": "Ustawienia",
    "general": "Generał",
    "security": "Bezpieczeństwo",
    "appearance": "Wygląd",
    "routing": "Trasowanie",
    "cache": "Pamięć podręczna",
    "resilience": "Odporność",
    "routingSettingsIntro": "Kontroluje sposób, w jaki Twoje żądania są kierowane, przekształcane i wysyłane do dostawców sztucznej inteligencji.",
    "routingOpDropParagraphContainsLabel": "__MISSING__:Drop paragraph (contains)",
    "routingOpDropParagraphStartsWithLabel": "__MISSING__:Drop paragraph (starts with)",
    "routingOpReplaceTextLabel": "__MISSING__:Replace text",
    "routingOpReplaceRegexLabel": "__MISSING__:Replace regex",
    "routingOpDropBlockContainsLabel": "__MISSING__:Drop block (contains)",
    "routingOpPrependSystemBlockLabel": "__MISSING__:Prepend system block",
    "routingOpAppendSystemBlockLabel": "__MISSING__:Append system block",
    "routingOpInjectBillingHeaderLabel": "__MISSING__:Inject billing header",
    "routingOpObfuscateWordsLabel": "__MISSING__:Obfuscate words (ZWJ)",
    "routingOpDropParagraphContainsDesc": "__MISSING__:Removes any paragraph (text block split on blank lines) inside the system prompt whose text contains ANY of the listed substrings. Use to strip third-party client fingerprints like 'github.com/anomalyco/opencode' or 'docs.openwebui.com' that Anthropic's classifier flags.",
    "routingOpDropParagraphStartsWithDesc": "__MISSING__:Removes any paragraph that STARTS WITH one of the listed prefixes. Use for identity lines like 'You are OpenCode' or 'You are Open WebUI' that announce the calling client.",
    "routingOpReplaceTextDesc": "__MISSING__:Replaces a literal substring with another literal substring. Use for known trigger phrases — e.g. rewrite 'Here is some useful information about the environment you are running in:' to 'Environment context you are running in:' (an empirically-validated trigger phrase).",
    "routingOpReplaceRegexDesc": "__MISSING__:Replaces text matching a regular expression. Use when you need patterns (character classes, optional whitespace, anchors) instead of literal substrings. A malformed pattern is caught at runtime when the op runs.",
    "routingOpDropBlockContainsDesc": "__MISSING__:Removes ENTIRE system blocks (not just paragraphs) whose text contains any of the listed substrings. Use when a whole block is fingerprint-bearing and you want it gone — e.g. an injected MCP-server description.",
    "routingOpPrependSystemBlockDesc": "__MISSING__:Inserts a new text block at the FRONT of the system array. Use to add the SDK identity 'You are a Claude agent, built on Anthropic's Claude Agent SDK.' that Anthropic's classifier expects.",
    "routingOpAppendSystemBlockDesc": "__MISSING__:Inserts a new text block at the END of the system array. Use for cosmetic additions that don't need to be at position [0].",
    "routingOpInjectBillingHeaderDesc": "__MISSING__:Prepends the special 'x-anthropic-billing-header: cc_version=...; cc_entrypoint=...; cch=...;' text block that Anthropic's classifier validates. Required for CC bridge relay endpoints; for the native claude provider OmniRoute already injects its own billing line so this op is usually redundant there.",
    "routingOpObfuscateWordsDesc": "__MISSING__:Inserts a Zero-Width-Joiner character after the first letter of each listed word, so 'opencode' becomes 'o‍pencode'. Reads identical to humans but bypasses classifier word matches. Targets system blocks, user/assistant messages, and tool descriptions.",
    "routingNeedlesHint": "__MISSING__:List of substrings. A paragraph matches if it contains ANY one of them. Add one per line via 'Add entry'.",
    "routingPrefixesHint": "__MISSING__:List of strings. A paragraph matches if it starts with any one of them (leading whitespace is trimmed before matching).",
    "routingCaseSensitiveHint": "__MISSING__:When ON, 'OpenCode' and 'opencode' are different strings. When OFF (default), the comparison ignores case.",
    "routingMatchLiteralHint": "__MISSING__:Exact literal substring to find. No regex syntax — special chars like . * ? are treated as themselves.",
    "routingReplacementTextHint": "__MISSING__:Replacement string. Leave blank to delete the match. The output preserves surrounding text.",
    "routingAllOccurrencesHint": "__MISSING__:When ON (default), every instance is replaced. When OFF, only the first match is replaced.",
    "routingPatternHint": "__MISSING__:JavaScript regex source. Don't wrap in slashes — just 'foo(.*)bar'. Server rejects patterns that fail to compile.",
    "routingRegexFlagsHint": "__MISSING__:JavaScript regex flags (g = all matches, i = case-insensitive, s = dot matches newline, m = multiline). Default 'g'.",
    "routingBlockTextHint": "__MISSING__:Full text of the new system block. Use a literal string; the system block stores text only.",
    "routingIdempotencyKeyHint": "__MISSING__:Optional. If set, the op skips when a block whose text starts with this key is already present. Prevents double-prepend on retries.",
    "routingBillingEntrypointHint": "__MISSING__:Value injected as 'cc_entrypoint='. Anthropic accepts 'sdk-cli' (Agent SDK), 'cli' (Claude Code CLI), or other documented values.",
    "routingBillingVersionFormatHint": "__MISSING__:How the 3-char build hash after cc_version= is computed. 'ex-machina' = sha256 of CCH_SALT+chars-from-first-user-msg+version (per-message). 'omniroute-daystamp' = sha256 of YYYY-MM-DD+version (stable per-day).",
    "routingBillingCchAlgoHint": "__MISSING__:How the 5-char cch= token is computed. 'sha256-first-user' = sha256 of first user message text. 'xxhash64-body' = body-level signing fills it later. 'static-zero' = literal '00000' placeholder.",
    "routingObfuscateWordsHint": "__MISSING__:Lowercase words to obfuscate. ZWJ insertion is applied case-insensitively, so 'opencode' also matches 'OpenCode' and 'OPENCODE'.",
    "routingObfuscateTargetsHint": "__MISSING__:Which body regions to scan for the words: system blocks, user/assistant messages, and/or tool descriptions.",
    "routingObfuscateTargetsLabel": "__MISSING__:Targets",
    "routingSummarizeDropParagraphContains": "__MISSING__:drop paragraphs containing: {items}",
    "routingSummarizeDropParagraphStartsWith": "__MISSING__:drop paragraphs starting with: {items}",
    "routingSummarizeReplaceText": "__MISSING__:replace \"{match}\" → \"{replacement}\"",
    "routingSummarizeReplaceRegex": "__MISSING__:regex /{pattern}/{flags} → \"{replacement}\"",
    "routingSummarizeDropBlockContains": "__MISSING__:drop blocks containing: {items}",
    "routingSummarizePrependSystemBlock": "__MISSING__:prepend block: \"{text}\"",
    "routingSummarizeAppendSystemBlock": "__MISSING__:append block: \"{text}\"",
    "routingSummarizeInjectBillingHeader": "__MISSING__:inject billing header (entrypoint={entrypoint}, version={versionFormat}, cch={cchAlgo})",
    "routingSummarizeObfuscateWords": "__MISSING__:obfuscate {count} word(s) via ZWJ in {targets}",
    "routingDefaultAutoVariantLKGP": "__MISSING__:Last Known Good Provider",
    "routingDefaultAutoVariantLKGPDesc": "__MISSING__:Last Known Good Provider",
    "routingDefaultAutoVariantCoding": "__MISSING__:Quality-first for code",
    "routingDefaultAutoVariantCodingDesc": "__MISSING__:Quality-first for code",
    "routingDefaultAutoVariantFast": "__MISSING__:Low-latency routing",
    "routingDefaultAutoVariantFastDesc": "__MISSING__:Low-latency routing",
    "routingDefaultAutoVariantCheap": "__MISSING__:Cost-optimized",
    "routingDefaultAutoVariantCheapDesc": "__MISSING__:Cost-optimized",
    "routingDefaultAutoVariantOffline": "__MISSING__:High availability",
    "routingDefaultAutoVariantOfflineDesc": "__MISSING__:High availability",
    "routingDefaultAutoVariantSmart": "__MISSING__:Best discovery (10% explore)",
    "routingDefaultAutoVariantSmartDesc": "__MISSING__:Best discovery (10% explore)",
    "routingOpSummaryCount": "__MISSING__:{count, plural, =0 {no ops} one {# op} other {# ops}}",
    "routingOpEnabled": "__MISSING__:enabled",
    "routingOpDisabled": "__MISSING__:disabled",
    "routingOpStatusSeparator": "__MISSING__: · ",
    "resilienceSettingsIntro": "Automatyczne ponawianie prób, czas oczekiwania i powrót po awarii w przypadku niepowodzenia dostawcy.",
    "aiSettingsIntro": "Ustawienia specyficzne dla sztucznej inteligencji dotyczące budżetu, zachowania modelu i kompresji.",
    "systemPrompt": "Monit systemowy",
    "thinkingBudget": "Myślący budżet",
    "proxy": "Pełnomocnik",
    "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": "Pełnomocnik MITM",
    "pricing": "Ceny",
    "storage": "Przechowywanie",
    "policies": "Zasady",
    "ipFilter": "Filtr IP",
    "comboDefaults": "Domyślne ustawienia kombinacji",
    "fallbackChains": "Łańcuchy rezerwowe",
    "changePassword": "Zmień hasło",
    "enablePassword": "Włącz hasło",
    "darkMode": "Tryb ciemny",
    "lightMode": "Tryb światła",
    "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": "właśnie teraz",
    "modelsDevStats": "Sync Statistics",
    "modelsDevStatsDesc": "Current models.dev data coverage",
    "providers": "Dostawcy",
    "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": "Temat systemu",
    "debugToggle": "Enable Debug Mode",
    "sidebarVisibilityToggle": "Show Sidebar Items",
    "enableCache": "Włącz pamięć podręczną",
    "cacheTTL": "Pamięć podręczna TTL",
    "maxCacheSize": "Maksymalny rozmiar pamięci podręcznej",
    "clearCache": "Wyczyść pamięć podręczną",
    "cacheCleared": "Cache cleared successfully",
    "clearCacheFailed": "Failed to clear cache",
    "cacheHits": "Trafienia w pamięci podręcznej",
    "cacheMisses": "Brak pamięci podręcznej",
    "hitRate": "Współczynnik trafień",
    "cacheEntries": "Wpisy w pamięci podręcznej",
    "cacheSettings": "Cache Settings",
    "semanticCache": "Semantic Cache",
    "maxEntries": "Max Entries",
    "ttlMinutes": "TTL (minutes)",
    "promptCache": "Natychmiastowa pamięć podręczna",
    "strategy": "Strategy",
    "preserveClientCache": "Preserve Client Cache",
    "enabled": "Enabled",
    "loading": "Loading...",
    "saving": "Zapisywanie...",
    "save": "Save",
    "circuitBreaker": "Wyłącznik automatyczny",
    "retryPolicy": "Zasady ponawiania prób",
    "maxRetries": "Maksymalna liczba ponownych prób",
    "retryDelay": "Opóźnienie ponownej próby",
    "timeoutMs": "Limit czasu (ms)",
    "enableSystemPrompt": "Włącz monit systemowy",
    "systemPromptText": "Tekst monitu systemowego",
    "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": "Ta strona służy jedynie do konfiguracji zachowania. Stan wyłącznika na żywo jest wyświetlany na stronie Stan. Ponowne próby specyficzne dla kombinacji i kontrola szczeliny okrężnej pozostają w ustawieniach kombinacji.",
    "enableThinking": "Włącz myślenie",
    "maxThinkingTokens": "Żetony Max Thinking",
    "enableProxy": "Włącz serwer proxy",
    "proxyUrl": "Adres URL serwera proxy",
    "pricingRates": "Format stawek cenowych",
    "currentPricing": "Aktualny przegląd cen",
    "loadingPricing": "Ładowanie danych cenowych...",
    "noPricing": "Brak danych o cenach",
    "input": "Wejście",
    "output": "Wyjście",
    "cached": "Buforowane",
    "reasoning": "Rozumowanie",
    "cacheCreation": "Tworzenie pamięci podręcznej",
    "customPricing": "Ceny niestandardowe",
    "databaseSize": "Rozmiar bazy danych",
    "backupDb": "Kopia zapasowa bazy danych",
    "restoreDb": "Przywróć bazę danych",
    "exportData": "Eksportuj dane",
    "importData": "Importuj dane",
    "clearData": "Wyczyść wszystkie dane",
    "clearDataConfirm": "Spowoduje to trwałe usunięcie wszystkich danych. Czy jesteś pewien?",
    "enableRequestLogs": "Włącz dzienniki żądań",
    "logRetention": "Przechowywanie dziennika",
    "ipWhitelist": "Biała lista adresów IP",
    "ipBlacklist": "Czarna lista adresów IP",
    "addIP": "Dodaj adres IP",
    "savedSuccessfully": "Ustawienia zostały zapisane pomyślnie",
    "ai": "sztuczna inteligencja",
    "advanced": "Zaawansowane",
    "localMode": "Tryb lokalny — wszystkie dane przechowywane na Twoim komputerze",
    "settingsSectionsAria": "Sekcje ustawień",
    "switchThemes": "Przełączaj między jasnymi i ciemnymi motywami",
    "themeSelectionAria": "Wybór tematu",
    "themeLight": "Światło",
    "themeDark": "Ciemny",
    "themeSystem": "Systemu",
    "endpointTunnelVisibility": "Widoczność tunelu końcowego",
    "endpointTunnelVisibilityDesc": "Ukryj kontrolki tunelu na stronie Punkt końcowy bez zmiany stanu tunelu.",
    "showCloudflareTunnel": "Szybki tunel Cloudflare",
    "showCloudflareTunnelDesc": "Pokaż elementy sterujące szybkiego tunelu Cloudflare na stronie Punkt końcowy.",
    "showTailscaleFunnel": "Lejek z łuską ogonową",
    "showTailscaleFunnelDesc": "Pokaż elementy sterujące Lejka ze skalą ogonową na stronie Punkt końcowy.",
    "showNgrokTunnel": "Tunel Ngrok",
    "showNgrokTunnelDesc": "Pokaż elementy sterujące tunelu ngrok na stronie Punkt końcowy.",
    "sidebarVisibility": "Hide sidebar items",
    "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
    "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
    "hideHealthLogs": "Ukryj dzienniki kontroli stanu",
    "hideHealthLogsDesc": "Gdy opcja jest włączona, pomiń komunikaty [HealthCheck] w konsoli serwera",
    "themeAccent": "Kolor motywu",
    "themeAccentDesc": "Wybierz gotowy kolor lub utwórz własny motyw z jednego koloru",
    "themeCreate": "Utwórz motyw",
    "themeCustom": "Motyw niestandardowy",
    "themeBlue": "Niebieski",
    "themeRed": "Czerwony",
    "themeGreen": "Zielony",
    "themeViolet": "Fioletowy",
    "themeOrange": "Pomarańczowy",
    "themeCyan": "Cyjan",
    "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": "Opróżnij pamięć podręczną",
    "flushing": "Płukanie…",
    "size": "Rozmiar",
    "hits": "Hity",
    "evictions": "Eksmisje",
    "loadingCacheStats": "Ładowanie statystyk pamięci podręcznej…",
    "globalProxy": "Globalny pełnomocnik",
    "globalProxyDesc": "Skonfiguruj globalny wychodzący serwer proxy dla wszystkich wywołań API. Poszczególni dostawcy, kombinacje i klucze mogą to zastąpić.",
    "noGlobalProxy": "Nie skonfigurowano globalnego serwera proxy",
    "globalLabel": "Globalny",
    "configure": "Skonfiguruj",
    "globalSystemPrompt": "Monit systemu globalnego",
    "saved": "Zapisano",
    "beforePromptLabel": "__MISSING__:Before Prompt",
    "beforePromptDesc": "__MISSING__:Injected before agent/provider system instructions",
    "beforePromptPlaceholder": "__MISSING__:Instructions inserted before agent/provider prompt...",
    "afterPromptLabel": "__MISSING__:After Prompt",
    "afterPromptDesc": "__MISSING__:Injected after agent/provider system instructions",
    "afterPromptPlaceholder": "__MISSING__:Instructions inserted after agent/provider prompt...",
    "chars": "{count} znaków",
    "thinkingBudgetTitle": "Myślący budżet",
    "thinkingBudgetDesc": "Kontroluj użycie tokenu wnioskowania AI we wszystkich żądaniach",
    "passthrough": "Przejście",
    "passthroughDesc": "Żadnych zmian – klient kontroluje myślenie o budżecie",
    "auto": "Automat",
    "autoDesc": "Pozbądź się całej konfiguracji myślenia — pozwól dostawcy zdecydować",
    "custom": "Niestandardowe",
    "customDesc": "Ustaw stały budżet tokenów dla wszystkich żądań",
    "adaptive": "Adaptacyjny",
    "adaptiveDesc": "Skaluj budżet w oparciu o złożoność żądania",
    "effortNone": "Brak (0 tokenów)",
    "effortLow": "Niski (1 tys. tokenów)",
    "effortMedium": "Średni (10 tys. tokenów)",
    "effortHigh": "Wysoki (128 tys. tokenów)",
    "tokenBudget": "Budżet tokenowy",
    "tokens": "żetony",
    "baseEffortLevel": "Podstawowy poziom wysiłku",
    "adaptiveHint": "Tryb adaptacyjny skaluje się od tego poziomu podstawowego w oparciu o liczbę komunikatów, użycie narzędzia i długość podpowiedzi.",
    "requireLogin": "Wymagaj logowania",
    "requireLoginDesc": "Po włączeniu pulpit nawigacyjny wymaga hasła. Gdy WYŁ., dostęp bez logowania.",
    "currentPassword": "Aktualne hasło",
    "enterCurrentPassword": "Wprowadź aktualne hasło",
    "newPassword": "Nowe hasło",
    "enterNewPassword": "Wprowadź nowe hasło",
    "confirmPassword": "Potwierdź nowe hasło",
    "confirmPasswordPlaceholder": "Potwierdź nowe hasło",
    "passwordsNoMatch": "Hasła nie pasują",
    "passwordUpdated": "Hasło zostało pomyślnie zaktualizowane",
    "failedUpdatePassword": "Nie udało się zaktualizować hasła",
    "errorOccurred": "Wystąpił błąd",
    "updatePassword": "Zaktualizuj hasło",
    "setPassword": "Ustaw hasło",
    "apiEndpointProtection": "Ochrona punktów końcowych API",
    "requireAuthModels": "Wymagaj klucza API dla /models",
    "requireAuthModelsDesc": "Po włączeniu punkt końcowy /v1/models zwraca 404 dla nieuwierzytelnionych żądań. Zapobiega odkrywaniu modelu przez nieautoryzowanych użytkowników.",
    "authModelHeading": "Aktywny model autoryzacji",
    "authModelClient": "Punkty końcowe interfejsu API klienta (/v1/*, /chat/*, /responses/*, /codex/*, /messages/*) wymagają klucza API nośnika.",
    "authModelManagement": "Punkty końcowe zarządzania (/dashboard, /api/*) wymagają sesji pulpitu nawigacyjnego lub poświadczeń zarządzania.",
    "authModelPublic": "Publiczne są tylko trasy logowania, stanu zdrowia i ładowania początkowego.",
    "bruteForceProtection": "Ochrona przed brutalną siłą logowania",
    "bruteForceProtectionDesc": "Ogranicz i zablokuj /api/auth/login po powtarzających się błędach z tego samego adresu IP.",
    "corsAllowedOrigins": "CORS dozwolone pochodzenie",
    "corsAllowedOriginsDesc": "Rozdzielana przecinkami lista źródeł przeglądarek, które mogą łączyć się z tym serwerem. Pusta lista = brak dostępu CORS przeglądarki (serwer-serwer nadal działa). Używaj CORS_ALLOW_ALL=true env var tylko do programowania.",
    "blockedProviders": "Zablokowani dostawcy",
    "blockedProvidersDesc": "Ukryj określonych dostawców w odpowiedzi /v1/models. Zablokowani dostawcy nie będą wyświetlani na listach modeli.",
    "providersBlocked": "{count} dostawcy zablokowani w /models",
    "blockProviderTitle": "Zablokuj {provider}",
    "unblockProviderTitle": "Odblokuj {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": "Potok transformacji bloku systemowego",
    "systemTransformsDesc": "Potok przekształceń uporządkowany dla poszczególnych dostawców zastosowany do treści żądania przed przekazaniem dalej. Obsługuje dowolny identyfikator dostawcy.",
    "systemTransformsAddProvider": "Dodaj dostawcę",
    "systemTransformsAddProviderPlaceholder": "Wybierz dostawcę…",
    "systemTransformsAddProviderAllConfigured": "Wszyscy dostawcy są już skonfigurowani",
    "systemTransformsRemoveProvider": "Usuń dostawcę",
    "systemTransformsNoProviders": "Nie skonfigurowano żadnych dostawców. Aby rozpocząć, dodaj dostawcę.",
    "systemTransformsOpMoveUp": "Przesuń się w górę",
    "systemTransformsOpMoveDown": "Przesuń w dół",
    "systemTransformsOpDelete": "Usuń op",
    "routingStrategy": "Strategia routingu",
    "routingAdvancedGuideTitle": "Zaawansowane wskazówki dotyczące tras",
    "routingAdvancedGuideHint1": "Użyj opcji Fill First, aby uzyskać przewidywalny priorytet, Round Robin, aby zapewnić uczciwość, i P2C, aby zapewnić odporność na opóźnienia.",
    "routingAdvancedGuideHint2": "Jeśli dostawcy różnią się jakością/kosztami, zacznij od opcji Koszt w przypadku pracy w tle i opcji Najmniej używane w celu zapewnienia zrównoważonego zużycia.",
    "fillFirst": "Najpierw wypełnij",
    "fillFirstDesc": "Korzystaj z kont w kolejności priorytetów",
    "roundRobin": "Okrągły Robin",
    "roundRobinDesc": "Przeglądaj wszystkie konta",
    "p2c": "P2C",
    "p2cDesc": "Wybierz 2 losowo i użyj zdrowszego",
    "random": "Losowe",
    "randomDesc": "Losowe konto na każde żądanie",
    "leastUsed": "Najrzadziej używany",
    "leastUsedDesc": "Wybierz ostatnio używane konto",
    "costOpt": "Opcja kosztowa",
    "costOptDesc": "Preferuj najtańsze dostępne konto",
    "resetAware": "Resetowanie RR",
    "resetAwareDesc": "Preferuj konta ze zdrowym pozostałym limitem i bliższymi resetami",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
    "stickyLimit": "Lepki limit",
    "stickyLimitDesc": "Połączenia na konto przed zmianą",
    "modelAliases": "Aliasy modeli",
    "modelAliasesTitle": "Aliasy modeli",
    "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
    "addCustomAlias": "Dodaj niestandardowy alias",
    "deprecatedModelId": "Przestarzały ID modelu",
    "newModelId": "Nowy ID modelu",
    "customAliases": "Niestandardowe aliasy",
    "builtInAliases": "Wbudowane aliasy",
    "backgroundDegradationTitle": "Degradacja zadań w tle",
    "backgroundDegradationDesc": "Automatycznie wykrywa zadania w tle (tytuły, streszczenia) i kieruje do tańszych modeli",
    "enableDegradation": "Włącz degradację zadań w tle",
    "enableDegradationHint": "Gdy włączone, zadania w tle, takie jak generowanie tytułów i podsumowań, są automatycznie kierowane do tańszych modeli",
    "tasksDetected": "Wykryte zadania",
    "degradationMap": "Mapa degradacji modeli",
    "premiumModel": "Model premium",
    "cheapModel": "Tani model",
    "detectionPatterns": "Wzorce wykrywania",
    "newPattern": "np. \"wygeneruj tytuł\"",
    "aliasPatternPlaceholder": "claude-sonnet-*",
    "aliasTargetPlaceholder": "claude-sonnet-4-20250514",
    "pattern": "Wzór",
    "targetModel": "Model docelowy",
    "add": "+ Dodaj",
    "session": "Sesja",
    "sessionDetailsAria": "Szczegóły sesji",
    "status": "Stan",
    "authenticated": "Uwierzytelnione",
    "guest": "Gość",
    "loginTime": "Czas logowania",
    "sessionAge": "Wiek sesji",
    "browser": "Przeglądarka",
    "clearLocalData": "Wyczyść dane lokalne",
    "logout": "Wyloguj się",
    "clearLocalDataConfirm": "Wyczyścić wszystkie dane lokalne? Spowoduje to zresetowanie Twoich preferencji.",
    "unknown": "Nieznany",
    "systemActor": "systemu",
    "ipAccessControl": "Kontrola dostępu IP",
    "ipAccessControlDesc": "Blokuj lub zezwalaj na określone adresy IP",
    "ipModeDisabled": "Niepełnosprawny",
    "ipModeBlacklist": "Czarna lista",
    "ipModeWhitelist": "Biała lista",
    "ipModeWhitelistPriority": "Priorytet WL",
    "addIpAddress": "Dodaj adres IP",
    "ipAddressPlaceholder": "192.168.1.0/24 lub 10.0.*.*",
    "block": "+ Blok",
    "allow": "+ Zezwól",
    "blocked": "Zablokowano ({count})",
    "allowed": "Dozwolone ({count})",
    "temporaryBans": "Tymczasowe bany ({count})",
    "minLeft": "Pozostało {min}m",
    "auditLog": "Dziennik audytu",
    "searchAuditLogs": "Przeszukaj dzienniki kontrolne...",
    "failedLoadAuditLog": "Nie udało się załadować dziennika kontroli",
    "noAuditEvents": "Nie znaleziono żadnych zdarzeń kontrolnych",
    "action": "Akcja",
    "actor": "Aktor",
    "details": "Szczegóły",
    "time": "Czas",
    "fallbackChainsTitle": "Łańcuchy rezerwowe",
    "fallbackChainsDesc": "Zdefiniuj kolejność zastępczą dostawcy dla każdego modelu",
    "addChain": "+ Dodaj łańcuch",
    "modelName": "Nazwa modelu",
    "modelNamePlaceholder": "claude-sonnet-4-20250514",
    "providersCommaSeparated": "Dostawcy (oddzieleni przecinkami, w kolejności priorytetów)",
    "providersCommaSeparatedPlaceholder": "antropiczny, openai, bliźnięta",
    "createChain": "Utwórz łańcuch",
    "noFallbackChains": "Żadnych łańcuchów awaryjnych",
    "noFallbackChainsDesc": "Utwórz łańcuch, aby zdefiniować kolejność zastępczą dostawcy dla modelu.",
    "loadingFallbackChains": "Ładuję łańcuchy zastępcze...",
    "deleteChainConfirm": "Usunąć łańcuch zastępczy dla „{model}”?",
    "chainCreated": "Łańcuch stworzony dla {model}",
    "chainDeleted": "Łańcuch usunięty dla {model}",
    "failedCreateChain": "Nie udało się utworzyć łańcucha",
    "failedDeleteChain": "Nie udało się usunąć łańcucha",
    "deleteChain": "Usuń łańcuch",
    "fillModelAndProviders": "Podaj nazwę modelu i dostawców",
    "addAtLeastOneProvider": "Dodaj co najmniej jednego dostawcę",
    "comboDefaultsTitle": "Domyślne ustawienia kombinacji",
    "comboDefaultsGuideTitle": "Jak dostroić domyślne ustawienia kombinacji",
    "comboDefaultsGuideHint1": "Utrzymuj niską liczbę ponownych prób w przepływach o małych opóźnieniach; zwiększaj limit czasu tylko dla zadań o długim generowaniu.",
    "comboDefaultsGuideHint2": "Użyj zastąpienia dostawcy, gdy jeden z dostawców wymaga innego zachowania związanego z przekroczeniem limitu czasu/ponownej próby niż globalne ustawienia domyślne.",
    "globalComboConfig": "Globalna konfiguracja combo",
    "defaultStrategy": "Domyślna strategia",
    "defaultStrategyDesc": "Stosowane do nowych kombinacji bez wyraźnej strategii",
    "comboStrategyAria": "Strategia kombinacji",
    "priority": "Priorytet",
    "weighted": "Ważona",
    "contextRelay": "Context Relay",
    "contextRelayDesc": "Hands off context between providers with automatic summarization",
    "maxRetriesLabel": "Maksymalna liczba ponownych prób",
    "retryDelayLabel": "Opóźnienie ponownej próby (ms)",
    "timeoutLabel": "Limit czasu (ms)",
    "healthCheck": "Kontrola stanu zdrowia",
    "healthCheckDesc": "Wstępnie sprawdź dostępność dostawcy",
    "trackMetrics": "Śledź metryki",
    "trackMetricsDesc": "Rejestruj metryki żądań kombinacji",
    "providerOverrides": "Zastąpienia dostawcy",
    "providerOverridesDesc": "Zastąp limit czasu i liczbę ponownych prób na dostawcę. Ustawienia dostawcy zastępują globalne ustawienia domyślne.",
    "providerMaxRetriesAria": "{provider} maksymalna liczba ponownych prób",
    "providerTimeoutAria": "{provider} przekroczenie limitu czasu ms",
    "removeProviderOverrideAria": "Usuń zastąpienie {provider}",
    "newProviderNamePlaceholder": "np. google, otwórz...",
    "newProviderNameAria": "Nowa nazwa dostawcy",
    "retries": "ponawia próby",
    "ms": "pani",
    "saveComboDefaults": "Zapisz domyślne ustawienia kombinacji",
    "maxNestingDepth": "Maksymalna głębokość zagnieżdżenia",
    "concurrencyPerModel": "Współbieżność/model",
    "queueTimeout": "Limit czasu kolejki (ms)",
    "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": "Profile dostawców",
    "providerProfilesDesc": "Oddzielne ustawienia odporności dla dostawców OAuth (opartych na sesji) i kluczy API (mierzonych). Dostawcy protokołu OAuth mają bardziej rygorystyczne progi ze względu na niższe limity stawek.",
    "oauthProviders": "Dostawcy protokołu OAuth",
    "apiKeyProviders": "Dostawcy kluczy API",
    "transientCooldown": "Przejściowe odnowienie",
    "rateLimitCooldown": "Czas odnowienia limitu szybkości",
    "maxBackoffLevel": "Maksymalny poziom wycofania",
    "cbThreshold": "Próg CB",
    "cbResetTime": "Czas resetowania CB",
    "rateLimiting": "Ograniczanie szybkości",
    "rateLimitingDesc": "Dostawcy kluczy API mają automatycznie ograniczone stawki z bezpiecznymi ustawieniami domyślnymi. Limity są pobierane z nagłówków odpowiedzi i dostosowują się z czasem.",
    "defaultSafetyNet": "Domyślna siatka bezpieczeństwa",
    "rpm": "obr./min",
    "minGap": "Minimalna przerwa",
    "maxConcurrent": "Maksymalna liczba współbieżnych",
    "activeLimiters": "Aktywne ograniczniki",
    "noActiveLimiters": "Nie ma jeszcze aktywnych ograniczników szybkości.",
    "reservoir": "Zbiornik",
    "running": "Bieganie",
    "queued": "W kolejce",
    "circuitBreakers": "Wyłączniki automatyczne",
    "breakerStateClosed": "Zamknięte",
    "breakerStateOpen": "Otwórz",
    "breakerStateHalfOpen": "Półotwarte",
    "tripped": "{count} potknął się",
    "healthy": "{count} zdrowy",
    "resetAll": "Zresetuj wszystko",
    "noCircuitBreakers": "Żadne wyłączniki automatyczne nie są jeszcze aktywne. Są tworzone automatycznie, gdy żądania przepływają przez potok kombi.",
    "failures": "{count} awarie",
    "policiesLocked": "Zasady i zablokowane identyfikatory",
    "allOperational": "Wszystkie systemy działają — brak blokad i zadziałań wyłączników",
    "loadingPolicies": "Ładowanie zasad...",
    "lockedIdentifiers": "Zablokowane identyfikatory",
    "unlockedIdentifier": "Odblokowano: {identifier}",
    "sinceDate": "od {date}",
    "forceUnlock": "Wymuś odblokowanie",
    "unlocking": "Odblokowywanie...",
    "failedUnlock": "Nie udało się odblokować",
    "failedLoadWithStatus": "Nie udało się załadować: {status}",
    "failedLoadResilience": "Nie udało się wczytać stanu odporności",
    "saveFailed": "Zapisywanie nie powiodło się",
    "resetFailed": "Resetowanie nie powiodło się",
    "loadingResilience": "Ładowanie stanu odporności...",
    "retry": "Spróbuj ponownie",
    "systemStorage": "System i pamięć masowa",
    "allDataLocal": "Wszystkie dane przechowywane lokalnie na Twoim komputerze",
    "databasePath": "Ścieżka bazy danych",
    "exportDatabase": "Eksportuj bazę danych",
    "exportAll": "Eksportuj wszystko (.tar.gz)",
    "importDatabase": "Importuj bazę danych",
    "confirmDbImport": "Potwierdź import bazy danych",
    "confirmDbImportDesc": "Spowoduje to zastąpienie wszystkich bieżących danych treścią z {file}. Kopia zapasowa zostanie utworzona automatycznie przed importem.",
    "yesImport": "Tak, importuj",
    "lastBackup": "Ostatnia kopia zapasowa",
    "noBackupYet": "Nie ma jeszcze kopii zapasowej",
    "backupNow": "Utwórz kopię zapasową teraz",
    "backupRestore": "Kopia zapasowa i przywracanie",
    "viewBackups": "Zobacz kopie zapasowe",
    "hide": "Ukryj",
    "backupRetentionDesc": "Migawki bazy danych są tworzone automatycznie przed przywróceniem i co 15 minut w przypadku zmiany danych. Przechowywanie: 24 godziny na dobę + 30 codziennych kopii zapasowych z inteligentną rotacją.",
    "loadingBackups": "Ładowanie kopii zapasowych...",
    "noBackupsYet": "Nie są jeszcze dostępne żadne kopie zapasowe. Kopie zapasowe zostaną utworzone automatycznie w przypadku zmiany danych.",
    "backupsAvailable": "Dostępne są {count} kopie zapasowe",
    "refresh": "Odśwież",
    "confirm": "Potwierdzić?",
    "yes": "Tak",
    "no": "Nie",
    "restore": "Przywróć",
    "invalidFileType": "Nieprawidłowy typ pliku. Akceptowane są tylko pliki .sqlite.",
    "exportFailed": "Eksport nie powiódł się",
    "exportFailedWithError": "Eksport nie powiódł się: {error}",
    "fullExportFailedWithError": "Pełny eksport nie powiódł się: {error}",
    "backupCreated": "Utworzono kopię zapasową: {file}",
    "restoreSuccess": "Przywrócony! {connections} połączenia, {nodes} węzły, {combos} kombinacje, {apiKeys} klucze API.",
    "importSuccess": "Baza danych zaimportowana! {connections} połączenia, {nodes} węzły, {combos} kombinacje, {apiKeys} klucze API.",
    "minutesAgo": "{count}m temu",
    "hoursAgo": "{count}h temu",
    "daysAgo": "{count}d temu",
    "backupReasonManual": "instrukcja",
    "backupReasonPreRestore": "wstępne przywrócenie",
    "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
    "noChangesSinceBackup": "Żadnych zmian od ostatniej kopii zapasowej",
    "backupFailed": "Tworzenie kopii zapasowej nie powiodło się",
    "restoreFailed": "Przywracanie nie powiodło się",
    "importFailed": "Import nie powiódł się",
    "errorDuringRestore": "Podczas przywracania wystąpił błąd",
    "errorDuringImport": "Wystąpił błąd podczas importu",
    "modelPricing": "Ceny modeli",
    "modelPricingDesc": "Konfiguruj stawki kosztów dla każdego modelu • Wszystkie stawki w tokenach $/1M",
    "registry": "Rejestr",
    "priced": "Wyceniony",
    "searchProvidersModels": "Wyszukaj dostawców lub modele...",
    "showAll": "Pokaż wszystko",
    "noProvidersMatch": "Żaden dostawca nie pasuje do Twojego wyszukiwania.",
    "howPricingWorks": "Jak działa cena",
    "cacheWrite": "Zapis w pamięci podręcznej",
    "unsaved": "niezapisany",
    "resetDefaults": "Zresetuj ustawienia domyślne",
    "saveProvider": "Zapisz dostawcę",
    "model": "Modelka",
    "models": "modele",
    "moreProviders": "{count} więcej dostawców",
    "withPricing": "ze skonfigurowaną ceną",
    "policiesCircuitBreakers": "Zasady i wyłączniki automatyczne",
    "activeIssuesDetected": "Wykryto aktywne problemy",
    "off": "Wyłączone",
    "resetPricingConfirm": "Zresetować wszystkie ceny {provider} do wartości domyślnych?",
    "pricingDescInput": "Wejście: tokeny wysłane do modelu",
    "pricingDescOutput": "Dane wyjściowe: wygenerowano tokeny",
    "pricingDescCached": "Buforowane: ponownie wykorzystane dane wejściowe (~50% szybkości wprowadzania)",
    "pricingDescReasoning": "Rozumowanie: żetony myślenia (wraca do Wyjścia)",
    "pricingDescCacheWrite": "Zapis w pamięci podręcznej: tworzenie wpisów w pamięci podręcznej (powraca do opcji Wejście)",
    "pricingDescFormula": "Koszt = (wejście × współczynnik_wejściowy) + (wyjście × współczynnik_wyjściowy) + (pamięć podręczna × szybkość_pamięci) na milion tokenów.",
    "pricingSettingsTitle": "Ustawienia cenowe",
    "totalModels": "Wszystkie modele",
    "active": "Aktywny",
    "costCalculation": "Kalkulacja kosztów",
    "costCalculationDesc": "Koszty są obliczane na podstawie użycia tokena i stawek cenowych skonfigurowanych dla każdego modelu.",
    "pricingFormat": "Formularz cenowy",
    "pricingFormatDesc": "Wszystkie stawki podane są w tokenach $/1 milion (dolary na milion tokenów).",
    "tokenTypes": "Typy tokenów",
    "inputTokenDesc": "Standardowe tokeny zachęty",
    "outputTokenDesc": "Żetony ukończenia/odpowiedzi",
    "cachedTokenDesc": "Tokeny wejściowe w pamięci podręcznej (zwykle 50% szybkości wprowadzania)",
    "reasoningTokenDesc": "Specjalne żetony rozumowania/myślenia (awaryjne tempo produkcji)",
    "cacheCreationTokenDesc": "Tokeny używane do tworzenia wpisów w pamięci podręcznej (powrót do szybkości wprowadzania)",
    "customPricingNote": "Możesz zastąpić domyślne ceny dla określonych modeli. Zastąpienia niestandardowe mają pierwszeństwo przed automatycznie wykrytymi cenami.",
    "editPricing": "Edytuj ceny",
    "viewFullDetails": "Zobacz pełne szczegóły",
    "themeCoral": "Koral",
    "adaptiveVolumeRouting": "Adaptive Volume Routing",
    "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
    "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
    "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
    "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": "Nie udało się wyczyścić cen: {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": "Nie udało się zresetować cen: {reason}",
    "tab": "Tab",
    "pricingSavedProvider": "Ceny zapisane dla {provider}",
    "pricingSyncFailed": "Pricing Sync Failed",
    "pricingSaveFailedWithReason": "Nie udało się zapisać cen: {reason}",
    "pricingResetProvider": "Reset cen dla {provider}",
    "nextSync": "Next Sync",
    "pricingSyncFailedWithReason": "Synchronizacja cen nie powiodła się: {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": "Agresywna konfiguracja silnika",
    "compressionAggressiveConfigDesc": "Dostosuj podsumowanie, kompresję narzędzia i progi starzenia",
    "compressionUltraConfig": "Konfiguracja Ultra Engine",
    "compressionUltraConfigDesc": "Dostosuj czyszczenie heurystyczne, rezerwę SLM i progi dla poszczególnych wiadomości",
    "compressionUltraRate": "Zachowaj stawkę",
    "compressionUltraMinScore": "Minimalny próg wyniku",
    "compressionUltraSlmFallback": "Powrót do trybu agresywnego",
    "compressionUltraModelPath": "Ścieżka modelu SLM",
    "compressionSummarizerEnabled": "Włącz podsumowanie",
    "compressionMaxTokensPerMessage": "Maksymalna liczba tokenów na wiadomość",
    "compressionMinSavings": "Minimalny próg oszczędności",
    "compressionAgingThresholds": "Progi starzenia",
    "compressionAgingThresholdsDesc": "Liczba najnowszych wiadomości przechowywanych na każdym poziomie starzenia się (wyższa = bardziej zachowana)",
    "compressionToolStrategies": "Strategie wyników narzędzi",
    "compressionToolStrategiesDesc": "Przełącz strategie kompresji dla różnych typów wyników narzędzi",
    "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": "minuty",
    "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": "Opcjonalne",
    "current": "Aktualny",
    "remove": "Usuń",
    "search": "Szukaj",
    "oneproxyTitle": "1proxy Bezpłatny rynek proxy",
    "oneproxyTotalProxies": "Razem proxy",
    "oneproxyAvgQuality": "Średnia jakość",
    "resilienceScope": "Zakres:",
    "resilienceTrigger": "Wyzwalacz:",
    "resilienceEffect": "Efekt:",
    "resilienceRequestQueueTitle": "Request Queue & Rate",
    "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
    "resilienceRequestsPerMinute": "Requests per minute",
    "resilienceMinTimeBetweenRequests": "Minimum time between requests",
    "resilienceConcurrentRequests": "Concurrent requests",
    "resilienceMaxQueueWaitTime": "Maksymalny czas oczekiwania w kolejce",
    "resilienceBaseCooldown": "Base cooldown",
    "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
    "resilienceDefaultPerProvider": "Default (per provider)",
    "resilienceAlwaysOn": "Always on",
    "resilienceAlwaysOff": "Always off",
    "routingRemoveEntry": "Usuń wpis",
    "routingNeedlesSubstrings": "Igły (podciągi do dopasowania)",
    "routingCaseSensitive": "Wielkość liter ma znaczenie",
    "routingPrefixes": "Przedrostki",
    "routingMatch": "Mecz",
    "routingReplacement": "Wymiana",
    "routingReplaceAllOccurrences": "Zamień wszystkie wystąpienia",
    "routingPatternRegex": "Wzór (wyrażenie regularne)",
    "routingFlags": "Flagi",
    "routingNeedles": "Igły",
    "routingBlockText": "Zablokuj tekst",
    "routingIdempotencyKey": "Klucz idempotencji",
    "routingEntrypoint": "Punkt wejścia",
    "routingVersionFormat": "Format wersji",
    "routingCchAlgorithm": "Algorytm CCH",
    "routingWordsToObfuscate": "Słowa do zaciemnienia (ZWJ wstawiane po pierwszym znaku)",
    "logsSettingsTitle": "Ustawienia dzienników",
    "detailedLogsLabel": "Szczegółowe dzienniki włączone",
    "detailedLogsDesc": "Włącz szczegółowe rejestrowanie żądań/odpowiedzi",
    "callLogPipelineLabel": "Potok dziennika połączeń",
    "callLogPipelineDesc": "Włącz potok przetwarzania dziennika połączeń",
    "maxDetailSizeLabel": "Maksymalny rozmiar szczegółów (KB)",
    "maxDetailSizeDesc": "Maksymalny rozmiar szczegółowych wpisów dziennika",
    "ringBufferSizeLabel": "Rozmiar bufora pierścieniowego",
    "ringBufferSizeDesc": "Rozmiar bufora pierścieniowego dla kłód",
    "semanticCacheEnabledLabel": "Semantyczna pamięć podręczna włączona",
    "semanticCacheMaxSizeLabel": "Maksymalny rozmiar pamięci podręcznej semantycznej",
    "semanticCacheMaxSizeDesc": "Maksymalna liczba wpisów w semantycznej pamięci podręcznej",
    "semanticCacheTTLLabel": "Semantyczna pamięć podręczna TTL",
    "promptCacheEnabledLabel": "Włączono pamięć podręczną podpowiedzi",
    "promptCacheEnabledDesc": "Włącz buforowanie podpowiedzi",
    "promptCacheStrategyLabel": "Strategia szybkiej pamięci podręcznej",
    "promptCacheStrategyDesc": "Strategia szybkiego buforowania",
    "alwaysPreserveClientCacheLabel": "Zawsze zachowaj pamięć podręczną klienta",
    "alwaysPreserveClientCacheDesc": "Zasady zachowania pamięci podręcznej klienta",
    "logRetentionPolicyTitle": "Polityka przechowywania logów",
    "resilienceUseUpstream429HintsForBreaker": "Skorzystaj z podpowiedzi 429 (breaker)",
    "appearanceLogoPreviewAlt": "Podgląd logo",
    "appearanceFaviconPreviewAlt": "Podgląd Favikony",
    "oneproxyLastSync": "Ostatnia synchronizacja",
    "oneproxyAllProtocols": "Wszystkie protokoły",
    "oneproxyCountryCodePlaceholder": "Kod kraju (np. USA)",
    "oneproxyMinQualityPlaceholder": "Minimalna jakość",
    "oneproxyLoadingProxies": "Ładowanie serwerów proxy...",
    "oneproxyLastSyncLabel": "Ostatnia synchronizacja:",
    "oneproxyProxiesFetched": "Pobrane proxy:",
    "oneproxyConsecutiveFailures": "Kolejne awarie:",
    "oneproxyErrorLabel": "Błąd:",
    "oneproxyNever": "Nigdy",
    "oneproxySyncStatusTitle": "Stan synchronizacji",
    "oneproxySuccess": "Sukces",
    "oneproxyFailed": "Nie udało się",
    "routingAntigravitySignatureTitle": "Tryb pamięci podręcznej sygnatur antygrawitacyjnych",
    "routingAntigravitySignatureDesc": "__MISSING__:Control whether OmniRoute reuses only stored Gemini thought signatures or accepts validated client-provided signatures in Antigravity-compatible tool-call flows.",
    "routingAntigravitySignatureEnabledLabel": "__MISSING__:Enabled",
    "routingAntigravitySignatureEnabledDesc": "__MISSING__:Current behavior. Ignore client-provided signatures and keep using the stored OmniRoute flow.",
    "routingAntigravitySignatureBypassLabel": "__MISSING__:Bypass",
    "routingAntigravitySignatureBypassDesc": "__MISSING__:Accept client-provided signatures after lightweight validation and fall back to the stored signature when invalid.",
    "routingAntigravitySignatureBypassStrictLabel": "__MISSING__:Bypass Strict",
    "routingAntigravitySignatureBypassStrictDesc": "__MISSING__:Require full protobuf validation before accepting a client-provided signature.",
    "routingHeaderFingerprintTitle": "Odcisk palca nagłówka (na dostawcę)",
    "routingServerRejectedSave": "⚠ Serwer odrzucił zapis:",
    "routingAddTransformOp": "Dodaj operację transformacji",
    "routingClientCacheControlTitle": "Kontrola pamięci podręcznej klienta",
    "routingClientCacheControlDesc": "__MISSING__:Configure whether OmniRoute preserves client-provided cache_control markers",
    "routingClientCacheControlAutoDesc": "__MISSING__:For deterministic Claude-compatible flows, preserve client-provided cache_control as-is. If the request has no cache_control, OmniRoute does not inject any bridge-owned markers for CC-compatible third-party proxy compatibility.",
    "routingClientCacheControlAlwaysLabel": "__MISSING__:Always Preserve",
    "routingClientCacheControlAlwaysDesc": "__MISSING__:Always forward client-provided cache_control headers to upstream providers as-is.",
    "routingClientCacheControlNeverLabel": "__MISSING__:Never Preserve",
    "routingClientCacheControlNeverDesc": "__MISSING__:Always remove client cache_control headers and let OmniRoute manage caching where native provider flows support it.",
    "routingZeroConfigTitle": "Automatyczne wyznaczanie tras bez konfiguracji",
    "routingZeroConfigDesc": "__MISSING__:Enable automatic provider selection using the auto/ prefix. When enabled, requests to auto, auto/coding, auto/fast, etc. will dynamically route across all connected providers.",
    "routingDefaultAutoVariant": "Domyślny wariant automatyczny",
    "visionBridge": "Most Wizji",
    "visionBridgeDesc": "__MISSING__:Run an automatic vision-to-text fallback before routing image requests to text-only models.",
    "visionBridgeEnabledLabel": "__MISSING__:Enabled",
    "visionBridgeEnabledDesc": "__MISSING__:Toggle the pre-call bridge that replaces image parts with extracted text.",
    "visionBridgeModel": "Model mostu",
    "visionBridgeModelPlaceholder": "openai/gpt-4o-mini",
    "visionBridgeModelHint": "__MISSING__:Any OmniRoute model ID that supports vision can be used here.",
    "visionBridgePrompt": "Komunikat dotyczący mostu",
    "visionBridgePromptPlaceholder": "Opisz zwięźle ten obraz.",
    "visionBridgePromptHint": "__MISSING__:Sent to the vision model before the extracted description is injected back into the original request.",
    "visionBridgeTimeoutMs": "Limit czasu (ms)",
    "visionBridgeMaxImagesPerRequest": "Maksymalna liczba obrazów na żądanie",
    "resilienceMaxBackoffSteps": "Max backoff steps",
    "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
    "resilienceFailureThreshold": "Failure threshold",
    "resilienceResetTimeout": "Zresetuj limit czasu",
    "resilienceFailureThresholdLabel": "Próg awarii",
    "resilienceResetTimeoutLabel": "Zresetuj limit czasu",
    "resilienceConnectionCooldownTitle": "Connection Cooldown",
    "resilienceUseUpstreamRetryHintsLabel": "Skorzystaj ze wskazówek dotyczących ponownej próby przesłania",
    "resilienceUseUpstream429BreakerLabel": "Skorzystaj z podpowiedzi 429 (breaker)",
    "resilienceMaxBackoffStepsLabel": "Maksymalne kroki wycofywania",
    "resilienceYes": "Tak",
    "resilienceNo": "Nie",
    "resilienceDefault": "Default",
    "storageDatabaseBackupRetention": "Przechowywanie kopii zapasowych bazy danych",
    "storagePurgeData": "Usuń dane",
    "retentionQuotaSnapshots": "Migawki przydziału (dni)",
    "retentionMcpAudit": "Audyt MCP (dni)",
    "retentionA2aEvents": "Wydarzenia A2A (dni)",
    "retentionCallLogs": "Dzienniki połączeń (dni)",
    "retentionUsageHistory": "Historia użytkowania (dni)",
    "retentionMemoryEntries": "Wpisy pamięci (dni)",
    "storageAutoVacuumMode": "Tryb automatycznego odkurzania",
    "storageScheduledVacuum": "Zaplanowana próżnia",
    "storageVacuumHour": "Godzina próżni (0-23)",
    "storagePageSize": "Rozmiar strony (w bajtach)",
    "storageDatabaseSize": "Rozmiar bazy danych",
    "storagePageCount": "Liczba stron",
    "storageFreelistCount": "Liczba bezpłatnych list",
    "storageLastVacuum": "Ostatnia próżnia",
    "storageLastOptimization": "Ostatnia optymalizacja",
    "storageIntegrityCheck": "Kontrola integralności",
    "storageIntegrityOk": "✓ OK",
    "storageIntegrityError": "✗ Błąd",
    "storageUsageTokenBuffer": "Bufor tokenów użycia",
    "compressionSettingsAutoTriggerMode": "Tryb automatycznego wyzwalania",
    "compressionSettingsMcpDescriptionCompression": "Kompresja opisu MCP",
    "compressionSettingsCavemanIntensity": "Intensywność jaskiniowca",
    "compressionSettingsCavemanOutputMode": "Tryb wyjściowy jaskiniowca",
    "compressionSettingsOutputIntensity": "Intensywność wyjściowa",
    "compressionSettingsAutoClarityBypass": "Automatyczne obejście przejrzystości",
    "resilienceWaitForCooldown": "Poczekaj na odnowienie",
    "resilienceEnableServerSideWait": "Włącz oczekiwanie po stronie serwera",
    "resilienceMaximumRetries": "Maksymalna liczba ponownych prób",
    "resilienceMaximumWaitPerRetry": "Maksymalny czas oczekiwania na ponowną próbę",
    "memorySkillsSkillsmpMarketplace": "Rynek umiejętności MP",
    "memorySkillsFailedToSave": "Nie udało się zapisać",
    "memorySkillsApiKey": "Klucz API",
    "memorySkillsActiveSkillsProvider": "Dostawca aktywnych umiejętności",
    "cliproxyapiFallback": "Rozwiązanie awaryjne CLIProxyAPI",
    "cliproxyapiEnableFallback": "Włącz rezerwę CLIProxyAPI",
    "cliproxyapiUrl": "Adres URL CLIProxyAPI",
    "cliproxyapiStatus": "Stan CLIProxyAPI",
    "cliproxyapiNotDetected": "Nie wykryto",
    "payloadRulesTitle": "Zasady dotyczące ładunku",
    "payloadRulesDesc": "__MISSING__:Configure request payload mutations by model and protocol. Changes are persisted in settings and hot reloaded into the runtime immediately after save.",
    "payloadRuleDefaultTitle": "__MISSING__:default",
    "payloadRuleDefaultDesc": "__MISSING__:Applies params only when the target path is missing from the outgoing payload.",
    "payloadRuleOverrideTitle": "__MISSING__:override",
    "payloadRuleOverrideDesc": "__MISSING__:Forces values onto the payload, replacing anything already present at that path.",
    "payloadRuleFilterTitle": "__MISSING__:filter",
    "payloadRuleFilterDesc": "__MISSING__:Removes blocked params from the payload before the upstream request is sent.",
    "payloadRuleDefaultRawTitle": "__MISSING__:defaultRaw",
    "payloadRuleDefaultRawDesc": "__MISSING__:Like default, but string values are parsed as JSON first when possible. The legacy input alias default-raw is also accepted on save.",
    "payloadEditorTitle": "__MISSING__:Editor",
    "payloadEditorDesc": "__MISSING__:Use the runtime schema shape: default, override, filter, defaultRaw. The API also accepts the legacy input key default-raw.",
    "payloadEditorReady": "__MISSING__:Ready",
    "payloadResetInfo": "__MISSING__:Editor reset to the neutral template. Save to apply it.",
    "payloadSaveSuccess": "__MISSING__:Payload rules saved and hot reloaded.",
    "payloadJsonParseError": "__MISSING__:JSON parse error: {error}",
    "payloadMustBeObject": "__MISSING__:Payload rules must be a JSON object.",
    "payloadInvalidJson": "__MISSING__:Invalid JSON payload.",
    "payloadValidJsonRequired": "__MISSING__:Payload rules must be valid JSON before saving.",
    "savePayloadRules": "__MISSING__:Save Payload Rules",
    "requestLimitsTitle": "__MISSING__:Request Limits",
    "requestLimitsDesc": "__MISSING__:Configure global request limits and concurrency guards.",
    "maxRequestSizeLabel": "__MISSING__:Max Request Size (MB)",
    "maxRequestSizeDesc": "__MISSING__:Maximum allowed size for incoming API requests.",
    "maxResponseSizeLabel": "__MISSING__:Max Response Size (MB)",
    "maxResponseSizeDesc": "__MISSING__:Maximum allowed size for outgoing API responses.",
    "maxRequestTokensLabel": "__MISSING__:Max Request Tokens",
    "maxRequestTokensDesc": "__MISSING__:Maximum total tokens allowed in a single request.",
    "maxResponseTokensLabel": "__MISSING__:Max Response Tokens",
    "maxResponseTokensDesc": "__MISSING__:Maximum total tokens allowed in a single response.",
    "modelCooldownsTitle": "Modele w czasie odnowienia",
    "modelCooldownsEmpty": "Brak modeli w fazie odnowienia.",
    "codexFastTierTitle": "Szybki poziom Kodeksu",
    "codexFastTierDesc": "Globalnie wstrzyknij service_tier=priority dla żądań OpenAI Codex.",
    "codexFastTierHint": "Po włączeniu OmniRoute dodaje service_tier=priority do wychodzących żądań Kodeksu dla połączeń, które nie określają jeszcze warstwy. Warstwa priorytetowa wymaga klucza API OpenAI Enterprise lub ścieżki Kodeksu uwierzytelniania ChatGPT; inne typy kluczy otrzymają od OpenAI błąd związany z poziomem. Ustawienia poszczególnych połączeń na stronie dostawcy Kodeksu mają pierwszeństwo.",
    "codexFastTierSaveError": "Nie udało się zaktualizować ustawienia szybkiego poziomu Codex",
    "codexFastTierTierLabel": "__MISSING__:Service tier",
    "codexFastTierTierPriority": "__MISSING__:Priority",
    "codexFastTierTierFlex": "__MISSING__:Flex",
    "codexFastTierTierDefault": "__MISSING__:Default",
    "codexFastTierModelsLabel": "__MISSING__:Fast-tier models",
    "codexFastTierModelsHint": "__MISSING__:Only checked models receive service_tier when Fast Tier is enabled.",
    "codexFastTierModelCheckbox": "__MISSING__:Enable Fast Tier for {model}",
    "claudeFastModeTitle": "Tryb szybki Claude'a",
    "claudeFastModeDesc": "Włącz wybrane żądania Claude'a w tryb Anthropic Fast (prędkość: „szybka”).",
    "claudeFastModeHint": "Anthropic oficjalnie nie obsługuje trybu szybkiego dla klientów w stylu SDK. Po włączeniu OmniRoute przekazuje nagłówek X-CPA-Force-Fast-Mode, dzięki czemu sparowana kompilacja CLIProxyAPI może wyrazić zgodę na fałszowanie punktu wejścia. Tylko wymienione modele Opus są sprawdzane po stronie klienta przez Anthropic. Poziom subskrypcji, plan maksymalny i saldo środków w trybie szybkim są nadal wymuszane po stronie serwera — Anthropic może zwrócić out_of_credits nawet wtedy, gdy przełącznik jest włączony.",
    "claudeFastModeModelsLabel": "Dotyczy modeli ({count})",
    "claudeFastModeModelCheckbox": "Włącz tryb szybki dla {model}",
    "claudeFastModeSaveError": "Nie udało się zaktualizować ustawienia trybu szybkiego Claude",
    "authz": {
      "title": "__MISSING__:Authz Inventory",
      "description": "__MISSING__:5-tier route classification with live bypass policy. Read shows the full taxonomy; mutations re-prompt for the management password.",
      "loading": "__MISSING__:Loading inventory…",
      "loadError": "__MISSING__:Failed to load authz inventory",
      "tier": {
        "LOCAL_ONLY": "__MISSING__:Local only",
        "ALWAYS_PROTECTED": "__MISSING__:Always protected",
        "MANAGEMENT": "__MISSING__:Management",
        "CLIENT_API": "__MISSING__:Client API",
        "PUBLIC": "__MISSING__:Public"
      },
      "bypass": {
        "section": "__MISSING__:Manage-scope bypass",
        "kill_switch": {
          "label": "__MISSING__:Bypass kill-switch",
          "desc": "__MISSING__:Master toggle. When off, no LOCAL_ONLY prefix is reachable from non-loopback regardless of the per-prefix list."
        },
        "prefix": {
          "label": "__MISSING__:Bypassable prefixes",
          "desc": "__MISSING__:LOCAL_ONLY prefixes that manage-scope API keys (or dashboard sessions) may reach from non-loopback hosts.",
          "add": "__MISSING__:Add prefix",
          "placeholder": "__MISSING__:/api/mcp/v2/",
          "empty": "__MISSING__:No prefixes configured. Bypass effectively off."
        },
        "cli_tools_runtime_note": "__MISSING__:Spawn-capable prefix. Compile-time deny; cannot be made bypassable. Shown read-only."
      },
      "password": {
        "prompt": {
          "label": "__MISSING__:Current password",
          "desc": "__MISSING__:Re-confirm to apply security-impacting changes."
        },
        "placeholder": "__MISSING__:Current management password",
        "cancel": "__MISSING__:Cancel",
        "submit": "__MISSING__:Apply"
      },
      "save": "__MISSING__:Save changes",
      "saved": "__MISSING__:Authz settings updated",
      "pending": "__MISSING__:Unsaved changes",
      "badge": {
        "bypassable": "__MISSING__:Bypassable via manage scope",
        "strict": "__MISSING__:Strict loopback",
        "auth_required": "__MISSING__:Auth required",
        "public": "__MISSING__:Public",
        "always_protected": "__MISSING__:Always protected",
        "spawn_capable": "__MISSING__:Spawn-capable"
      },
      "error": {
        "PASSWORD_REQUIRED": "__MISSING__:Current password required to apply these changes.",
        "PASSWORD_MISMATCH": "__MISSING__:Current password is incorrect.",
        "INSUFFICIENT_SCOPE": "__MISSING__:API key lacks the manage scope.",
        "BYPASS_PREFIX_NOT_ALLOWED": "__MISSING__:One or more prefixes target spawn-capable routes and cannot be bypassed.",
        "GENERIC": "__MISSING__:Failed to update authz settings."
      }
    },
    "resilienceBaseCooldownLabel": "Podstawowy czas odnowienia",
    "scopeLabel": "Zakres",
    "triggerLabel": "Wyzwalacz",
    "effectLabel": "Efekt",
    "statusEnabled": "Włączone",
    "statusDisabled": "Niepełnosprawny",
    "resilienceRequestQueueScope": "Na kolejkę żądań",
    "resilienceRequestQueueTrigger": "Przed wysłaniem do upstream",
    "resilienceRequestQueueEffect": "Kolejkuje żądania, ogranicza współbieżność i rozdziela wywołania",
    "resilienceRequestQueueDesc": "Ta warstwa kontroluje tylko kolejkowanie i tempo. Nie przechowuje czasów odnowienia ani otwartych wyłączników.",
    "resilienceAutoEnableApiKeyProvidersDesc": "Domyślnie włącza ochronę kolejki dla aktywnych połączeń klucza API.",
    "resilienceMaxQueueWait": "Maksymalny czas oczekiwania w kolejce",
    "resilienceConnectionCooldownScope": "Indywidualne połączenie",
    "resilienceConnectionCooldownTrigger": "Gdy połączenie zwraca przejściową awarię przesyłania danych",
    "resilienceConnectionCooldownEffect": "Tymczasowo pomija to połączenie i zwiększa wycofywanie w przypadku powtarzających się błędów",
    "resilienceConnectionCooldownDesc": "Podstawowy czas odnowienia obejmuje przejściowe awarie połączenia. Gdy włączone są wskazówki dotyczące ponownych prób przesyłania danych, jawne okno dostawcy zastępuje lokalny czas odnowienia.",
    "resilienceUseUpstreamRetryHintsDesc": "Używa wartości ponownej próby/resetu od dostawcy nadrzędnego, jeśli są dostępne.",
    "resilienceUseUpstream429BreakerHints": "Użyj wskazówek 429, aby uzyskać czas odnowienia niszczyciela",
    "resilienceUseUpstream429BreakerHintsShort": "Skorzystaj z podpowiedzi 429",
    "resilienceUseUpstream429BreakerHintsDesc": "Zastosuj sygnały „Ponów próbę po” / wyczerpanie limitu z 429 odpowiedzi do czasu schładzania wyłącznika. Domyślnie stosowana jest polityka dotycząca poszczególnych dostawców: domyślnie włączona jest opcja bezpośrednich dostawców usług w chmurze; dostawcy odwrotnego proxy, dostawcy hostowani na własnym serwerze i dostawcy wspierani przez CLI są domyślnie wyłączeni. Niezależnie od opcji „Użyj wskazówek dotyczących ponownej próby”.",
    "resilienceProviderBreakerScope": "Cały dostawca",
    "resilienceProviderBreakerTrigger": "Ostateczne awarie transportu/serwera po wyczerpaniu rezerwowego połączenia",
    "resilienceProviderBreakerEffect": "Tymczasowo blokuje tego dostawcę do czasu upłynięcia czasu resetowania",
    "resilienceProviderBreakerDesc": "Stan wyłącznika na żywo pojawia się tylko na stronie Kondycja. Limity szybkości 429 w zakresie połączenia pozostają w czasie oczekiwania na połączenie i nie powodują wyłączenia wyłącznika dostawcy.",
    "resilienceResetTime": "Zresetuj czas",
    "resilienceWaitForCooldownTitle": "Poczekaj na ochłodzenie",
    "resilienceWaitForCooldownScope": "Aktualne żądanie klienta",
    "resilienceWaitForCooldownTrigger": "Kiedy wszystkie połączenia kandydatów już ostygną",
    "resilienceWaitForCooldownEffect": "Czeka na serwerze i ponawia próbę po upłynięciu pierwszego czasu odnowienia",
    "resilienceWaitForCooldownDesc": "Ma to wpływ tylko na bieżące żądanie. Nie przechowuje stanu połączenia ani dostawcy.",
    "resilienceEnableServerWait": "Włącz oczekiwanie po stronie serwera",
    "resilienceEnableServerWaitDesc": "Po włączeniu OmniRoute czeka na upłynięcie pierwszego czasu odnowienia i automatycznie ponawia próbę.",
    "resilienceMaxAttempts": "Maksymalne próby",
    "resilienceMaxWaitPerAttempt": "Maksymalny czas oczekiwania na próbę",
    "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
    "forcedFingerprintBadge": "Required",
    "codexSessionAffinityTitle": "Powinowactwo sesji Kodeksu",
    "codexSessionAffinityDesc": "Utrzymuje jedną rozmowę w Kodeksie na tym samym koncie przez tyle sekund. 0 wyłącza to.",
    "codexSessionAffinityTtl": "Powinowactwo TTL (sekundy)",
    "resetAwareQuotaCacheTitle": "Pamięć podręczna przydziałów z możliwością resetowania",
    "resetAwareQuotaCacheDesc": "Buforuje dane telemetryczne dotyczące przydziału tylko na potrzeby zamawiania z możliwością resetowania. Wstępna inspekcja przydziału nadal chroni żądania. 0/0 utrzymuje pobieranie na żywo.",
    "resetAwareQuotaCacheTtl": "Świeży TTL (sekundy)",
    "resetAwareQuotaCacheMaxStale": "Maksymalne przestarzałe (sekundy)",
    "qdrantCleanupSuccess": "OK: usunięto {count} punktów (przechowywanie: {days} dni)",
    "qdrantCleanupFailed": "Czyszczenie nie powiodło się",
    "qdrantCleanupError": "Błąd: {error}",
    "vercelRelaySuccess": "__MISSING__:Vercel Relay deployed successfully",
    "vercelRelayButton": "__MISSING__:Deploy Vercel Relay",
    "vercelRelayModalTitle": "__MISSING__:Deploy Vercel Relay",
    "vercelRelayWarning": "__MISSING__:Warning: A Vercel deployment token is required. This token will only be used to create the serverless relay and will never be stored by OmniRoute.",
    "vercelRelayTokenLabel": "__MISSING__:Vercel Access Token",
    "vercelRelayProjectNameLabel": "__MISSING__:Vercel Project Name",
    "vercelRelayFreeTierNote": "__MISSING__:Relays are lightweight proxy endpoints deployed on Vercel's free tier to bypass local network/region limitations.",
    "vercelRelayDeploying": "__MISSING__:Deploying...",
    "vercelRelayDeploy": "__MISSING__:Deploy",
    "homePinProviderQuotaToHome": "Pin Information to Home Page",
    "homeProviderQuotaLimits": "Provider Quota Limits",
    "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
    "homeQuickStart": "Quick Start",
    "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
    "homeProviderTopology": "Provider Topology",
    "homeProviderTopologyDesc": "Show the Provider Topology on the Home page."
  },
  "contextRtk": {
    "title": "RTK Engine",
    "description": "Command-aware compression for tool output, terminal logs and build results.",
    "enabled": "Enabled",
    "intensity": "Intensity",
    "intensityMinimal": "Minimal",
    "intensityStandard": "Standard",
    "intensityAggressive": "Aggressive",
    "toolResults": "Tool results",
    "assistantMessages": "Assistant messages",
    "codeBlocks": "Code blocks",
    "filterCatalog": "Katalog filtrów",
    "filterCatalogDesc": "Dostępne filtry wyjściowe według kategorii",
    "guidedConfig": "Konfiguracja",
    "guidedConfigDesc": "Dostosuj sposób, w jaki RTK filtruje wyjście terminala",
    "maxLines": "Max lines",
    "maxChars": "Max chars",
    "deduplicateThreshold": "Próg deduplikacji",
    "customFilters": "Filtry niestandardowe",
    "detectedType": "Wykryty typ",
    "confidence": "Zaufanie",
    "beforeAfter": "Przed / Po",
    "trustProjectFilters": "Zaufaj filtrom projektów",
    "rawOutputRetention": "Zachowanie surowego sygnału wyjściowego",
    "rawOutputNever": "Nigdy",
    "rawOutputFailures": "Awarie",
    "rawOutputAlways": "Zawsze",
    "rawOutputMaxBytes": "Maksymalna liczba bajtów na wyjściu surowym",
    "filterTesting": "Filter Testing",
    "pasteOutput": "Paste tool output to test filtering...",
    "presetHigh": "Agresywny",
    "presetLow": "Światło",
    "presetMaxChars": "Maksymalna liczba znaków wyjściowych",
    "presetMaxLines": "Maksymalne linie wyjściowe",
    "presetMedium": "Standardowe",
    "run": "Run",
    "result": "Result",
    "previewEmpty": "Run a sample to preview RTK output.",
    "detected": "Detected",
    "masterSwitchOffAlert": "__MISSING__:Token Saver master switch is OFF — these settings will not affect requests until you turn it on from the Endpoint page.",
    "tokensFiltered": "Tokens filtered",
    "filtersActive": "Filters active",
    "requests": "Requests",
    "avgSavings": "Avg savings",
    "simpleMode": "Proste",
    "advancedMode": "Zaawansowane",
    "searchFilters": "Filtry wyszukiwania...",
    "tooltipDedup": "Jak agresywnie usuwać powtarzające się linie.",
    "tooltipMaxChars": "Maksymalna liczba znaków na blok wyjściowy.",
    "tooltipMaxLines": "Maksymalna liczba wierszy, które należy zachować w wynikach poleceń. Nadmiar jest obcinany."
  },
  "contextCombos": {
    "title": "Compression Combos",
    "description": "Define how engines are combined for different routing scenarios.",
    "createCombo": "Create Compression Combo",
    "editCombo": "Edit",
    "deleteCombo": "Delete",
    "deleteConfirm": "Delete this compression combo?",
    "pipeline": "Pipeline",
    "addStep": "Add Step",
    "removeStep": "Remove",
    "name": "Name",
    "descriptionField": "Description",
    "languagePacks": "Language Packs",
    "outputMode": "Output Mode",
    "assignToRouting": "Assign to Routing Combos",
    "noAssignments": "No routing combos available",
    "default": "Default",
    "setAsDefault": "Set as Default",
    "save": "Save",
    "cancel": "Cancel",
    "enabled": "Enabled"
  },
  "contextCaveman": {
    "title": "Caveman Engine",
    "description": "Rule-based message compression, language packs, analytics and output mode controls.",
    "advancedConfig": "Zaawansowana konfiguracja",
    "advancedConfigDesc": "Dostosuj zachowanie kompresji",
    "aggressiveSettings": "Agresywne ustawienia",
    "aggressiveSettingsDesc": "Maksymalna kompresja z potencjalnymi kompromisami w zakresie jakości",
    "requests": "Requests",
    "tokensSaved": "Tokens saved",
    "savingsPercent": "Savings %",
    "avgLatency": "Avg latency",
    "languagePacks": "Language Packs",
    "languagePacksDesc": "Enable compression rules for specific languages.",
    "labelAutoTrigger": "Automatyczna kompresja, gdy kontekst przekracza",
    "labelCompressionRate": "Siła ściskania",
    "labelMaxTokens": "Tokeny docelowe na wiadomość",
    "labelMinLength": "Minimalna długość wiadomości",
    "labelMinSavings": "Minimalna liczba tokenów do zapisania",
    "enabled": "Enabled",
    "autoDetect": "Auto-detect language",
    "rulesCount": "{count} rules",
    "inputCompressionTitle": "__MISSING__:Input compression",
    "inputCompressionDesc": "__MISSING__:Rewrite chat history with shorter wording. Reduces input tokens by ~50%.",
    "analyticsTitle": "Compression Analytics",
    "noAnalytics": "No compression analytics yet.",
    "outputMode": "Tryb wyjściowy",
    "outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
    "outputModeTitle": "Output Mode",
    "quickSettings": "Szybkie ustawienia",
    "quickSettingsDesc": "Podstawowe ustawienia kompresji na początek",
    "autoClarity": "Auto-Clarity Bypass",
    "bypassConditions": "Bypass conditions",
    "bypassConditionsList": "bezpieczeństwo, nieodwracalne, wyjaśniające, wrażliwe na porządek",
    "simpleMode": "Proste",
    "advancedMode": "Zaawansowane",
    "tooltipAutoTrigger": "Automatycznie kompresuj, gdy kontekst przekracza ten rozmiar.",
    "tooltipCompressionRate": "0,0 = brak, 1,0 = maksimum. 0,5 = zrównoważone.",
    "tooltipMaxTokens": "Docelowa liczba tokenów po kompresji. Niższy = bardziej agresywny.",
    "tooltipMinLength": "Wiadomości krótsze niż ta nie są kompresowane. Niższy = większa kompresja.",
    "tooltipMinSavings": "Kompresuj tylko wtedy, gdy pozwala zaoszczędzić co najmniej tyle tokenów.",
    "ultraSettings": "Ustawienia Ultra",
    "ultraSettingsDesc": "Kompresja semantyczna oparta na technologii 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": "Tłumacz",
    "metaTitle": "Plac zabaw dla tłumaczy | OmniRoute",
    "metaDescription": "Debuguj, testuj i wizualizuj tłumaczenia formatów API między dostawcami",
    "playgroundTitle": "Plac zabaw dla tłumaczy",
    "playground": "Plac zabaw",
    "realtime": "Działalność tłumaczeniowa w czasie rzeczywistym",
    "chatTester": "Tester czatu",
    "testBench": "Stanowisko testowe",
    "liveMonitor": "Monitor na żywo",
    "modeDescriptionPlayground": "Wklej treść żądania API i zobacz, jak OmniRoute tłumaczy ją pomiędzy formatami dostawców (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
    "modeDescriptionChatTester": "Wysyłaj prawdziwe prośby o czat za pośrednictwem OmniRoute i sprawdzaj cały proces w obie strony: dane wejściowe, przetłumaczone żądanie, odpowiedź dostawcy i przetłumaczone dane wyjściowe.",
    "modeDescriptionTestBench": "Uruchamiaj predefiniowane scenariusze i porównuj kompatybilność między dostawcami i modelami.",
    "modeDescriptionLiveMonitor": "Oglądaj wydarzenia związane z tłumaczeniami w czasie rzeczywistym, gdy żądania przepływają przez OmniRoute.",
    "modeDescriptionFallback": "Debuguj, testuj i wizualizuj, jak OmniRoute tłumaczy żądania API między dostawcami.",
    "recentTranslations": "Najnowsze tłumaczenia",
    "noTranslations": "Nie ma jeszcze żadnych tłumaczeń",
    "source": "Źródło",
    "target": "Cel",
    "time": "Czas",
    "model": "Modelka",
    "status": "Stan",
    "latency": "Opóźnienie",
    "totalTranslations": "Całkowita liczba tłumaczeń",
    "successful": "Pomyślne",
    "errors": "Błędy",
    "avgLatency": "Średnie opóźnienie",
    "millisecondsShort": "{value}ms",
    "notAvailableSymbol": "—",
    "liveAutoRefreshing": "Na żywo — automatyczne odświeżanie",
    "paused": "Wstrzymano",
    "eventsAppearHint": "Zdarzenia związane z tłumaczeniem pojawiają się tutaj, gdy żądania przepływają przez OmniRoute. Aby wygenerować zdarzenia, użyj dowolnej z poniższych metod:",
    "chatTesterTab": "Zakładka Tester czatu",
    "testBenchTab": "Zakładka Stanowisko testowe",
    "externalApiCalls": "Zewnętrzne wywołania API",
    "ideCliIntegrations": "Integracje IDE/CLI",
    "inMemoryNote": "Uwaga: Zdarzenia są przechowywane w pamięci i resetowane po ponownym uruchomieniu serwera.",
    "ok": "OK",
    "errorShort": "BŁĄD",
    "formatConverter": "Konwerter formatów",
    "formatConverterDescription": "Wklej lub wpisz treść żądania JSON. Tłumacz automatycznie wykryje format źródłowy i przekonwertuje go na format docelowy. Użyj tego, aby debugować sposób, w jaki OmniRoute tłumaczy żądania między formatami (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
    "translationPathHubSpoke": "{source} → OpenAI (średniozaawansowany) → {target}",
    "translationPathDirect": "{source} → {target} (bezpośredni tłumacz)",
    "translationPathPassthrough": "Ten sam format – bez konieczności tłumaczenia",
    "openaiIntermediatePanel": "Średniozaawansowany OpenAI",
    "autoFeaturesTitle": "Co OmniRoute robi automatycznie",
    "autoFeaturesCount": "8 funkcji",
    "featureReasoningCache": "Pamięć podręczna rozumowania",
    "featureReasoningCacheDesc": "Ponownie wstawia buforowaną treść rozumowania dla modeli trybu myślenia (DeepSeek V4, Kimi K2, Qwen), gdy klienci pomijają ją w historii rozmów.",
    "featureSchemaCoercion": "Przymus schematu",
    "featureSchemaCoercionDesc": "Naprawia uszkodzone schematy narzędzi: dodaje brakujące dodatkowe właściwości, oczyszcza długie opisy, normalizuje zagnieżdżone obiekty.",
    "featureRoleNormalization": "Normalizacja ról",
    "featureRoleNormalizationDesc": "Twórca map → system dla celów innych niż OpenAI. Mapuje system → użytkownika dla modeli, które nie obsługują roli systemowej.",
    "featureToolCallIds": "Normalizacja identyfikatora wywołania narzędzia",
    "featureToolCallIdsDesc": "Generuje unikalne identyfikatory wywołań narzędzi, gdy ich brakuje. Normalizuje do formatu 9-znakowego dla dostawców takich jak Mistral.",
    "featureMissingToolResponse": "Wtrysk reakcji narzędzia",
    "featureMissingToolResponseDesc": "Wstrzykuje puste komunikaty o wynikach narzędzia, gdy klienci wysyłają wywołania narzędzi bez odpowiadających im odpowiedzi.",
    "featureThinkingBudget": "Myślący budżet",
    "featureThinkingBudgetDesc": "Automatycznie zarządza konfiguracją myślenia. Usuwa parametry myślenia, gdy ostatnia wiadomość nie pochodzi od użytkownika.",
    "featureDirectPaths": "Bezpośrednie ścieżki tłumaczeń",
    "featureDirectPathsDesc": "Niektóre pary formatów (Claude → Gemini) mają bezpośrednie tłumacze, które omijają centrum OpenAI, tworząc dokładniejsze dane wyjściowe.",
    "featureImageMapping": "Mapowanie rozmiaru obrazu",
    "featureImageMappingDesc": "Tłumaczy konwencje wymiarów obrazu pomiędzy formatami API (np. poziomy szczegółowości OpenAI → wymiary Gemini).",
    "input": "Wejście",
    "output": "Wyjście",
    "auto": "Automat",
    "swapFormats": "Zamień formaty",
    "translateAction": "Przetłumacz",
    "clear": "Jasne",
    "inputPlaceholder": "Wklej tutaj treść żądania lub wybierz szablon poniżej...",
    "exampleTemplates": "Przykładowe szablony",
    "exampleTemplatesHint": "— Kliknij, aby załadować",
    "templateLoadHint": "Szablon ładuje żądanie w formacie {format}. Zmień format źródłowy, aby załadować w innym formacie.",
    "compatibilityTester": "Tester kompatybilności",
    "compatibilityReport": "Raport zgodności",
    "testBenchDescription": "Uruchamiaj predefiniowane scenariusze (prosty czat, wywoływanie narzędzi itp.), aby zweryfikować tłumaczenie i zgodność dostawcy. Wybierz format źródłowy i dostawcę docelowego, a następnie uruchom wszystkie testy, aby sprawdzić procent zgodności. Użyj tego, aby dowiedzieć się, które funkcje działają u różnych dostawców.",
    "targetProvider": "Dostawca docelowy",
    "runAllTests": "Uruchom wszystkie testy",
    "runTest": "Uruchom test",
    "reRun": "Uruchom ponownie",
    "running": "Bieganie...",
    "passed": "minęło",
    "failed": "nie powiodło się",
    "passedIconLabel": "✅ Zdane",
    "chunks": "kawałki",
    "scenarioSimpleChat": "Prosty czat",
    "scenarioToolCalling": "Wywołanie narzędzia",
    "scenarioMultiTurn": "Wieloobrotowy",
    "scenarioThinking": "Myślenie",
    "scenarioSystemPrompt": "Monit systemowy",
    "scenarioStreaming": "Transmisja strumieniowa",
    "templateNames": {
      "simple-chat": "Prosty czat",
      "tool-calling": "Wywołanie narzędzia",
      "multi-turn": "Wieloobrotowy",
      "thinking": "Myślenie",
      "system-prompt": "Monit systemowy",
      "streaming": "Transmisja strumieniowa",
      "vision": "Wizja",
      "schema-coercion": "Przymus schematu"
    },
    "templateDescriptions": {
      "simple-chat": "Podstawowy SMS",
      "tool-calling": "Wywołanie funkcji/narzędzia",
      "multi-turn": "Rozmowa z historią",
      "thinking": "Rozszerzone myślenie/rozumowanie",
      "system-prompt": "Złożone instrukcje systemowe",
      "streaming": "Żądanie przesyłania strumieniowego SSE",
      "vision": "Żądanie multimodalne z wejściem obrazu",
      "schema-coercion": "Wymuszanie strukturalnych danych wyjściowych/JSON"
    },
    "templatePayloads": {
      "simpleChat": {
        "system": "Jesteś pomocnym asystentem.",
        "userGreeting": "Witam! Jak się dzisiaj masz?"
      },
      "toolCalling": {
        "userWeather": "Jaka jest pogoda w São Paulo?",
        "toolDescription": "Uzyskaj aktualną pogodę dla danej lokalizacji",
        "cityNameDescription": "Nazwa miasta"
      },
      "multiTurn": {
        "system": "Jesteś asystentem kodowania.",
        "userInitial": "Napisz funkcję sortującą tablicę w Pythonie.",
        "assistantExample": "Oto prosta funkcja sortowania:\n\n```pyton\ndef sort_array(arr):\n    zwróć posortowane (arr)\n```",
        "userFollowUp": "Teraz posortuj w kolejności malejącej."
      },
      "thinking": {
        "question": "Jaka jest suma pierwszych 100 liczb pierwszych?"
      },
      "systemPrompt": {
        "systemInstruction": "Jesteś starszym inżynierem oprogramowania specjalizującym się w systemach rozproszonych. Odpowiadaj na pytania zwięźle, korzystając z najlepszych praktyk branżowych. W stosownych przypadkach zawsze podawaj przykłady kodu. Sformatuj swoje odpowiedzi, korzystając z przecen.",
        "question": "Jak zaimplementować wzór wyłącznika?"
      },
      "streaming": {
        "prompt": "Opowiedz mi krótką historię o robocie uczącym się malować."
      },
      "vision": {
        "system": "Jesteś asystentem, który precyzyjnie opisuje obrazy.",
        "userPrompt": "Co jest pokazane na tym obrazku?",
        "imageUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/600px-PNG_transparency_demonstration_1.png"
      },
      "schemaCoercion": {
        "userPrompt": "Sprawdź pogodę dla Tokio, używając jednostek metrycznych i dołącz rozkład godzinowy.",
        "toolDescription": "Pobierz pogodę dla miasta za pomocą opcji strukturalnych.",
        "cityDescription": "Miasto, którego dotyczy zapytanie, np. „Tokio” lub „Nowy Jork”."
      }
    },
    "openaiCompatibleLabel": "Kompatybilny z OpenAI",
    "anthropicCompatibleLabel": "Kompatybilny z antropią",
    "noTemplateForFormat": "Brak szablonu dla tego formatu",
    "translationFailed": "Tłumaczenie nie powiodło się: {error}",
    "pipelineDebugger": "Debuger potoku",
    "translationPipeline": "Potok tłumaczeń",
    "pipelineVisualization": "Wizualizacja rurociągu",
    "pipelineVisualizationHint": "Wyślij wiadomość, aby zobaczyć, jak Twoje żądanie przechodzi przez wykrywanie → tłumaczenie → połączenie z dostawcą.",
    "chatTesterDescription": "Wysyłaj wiadomości w określonym formacie klienta i sprawdzaj każdy etap procesu tłumaczenia.",
    "chatTesterFlow": "Żądanie klienta → Wykrywanie formatu → Średniozaawansowany OpenAI → Format dostawcy → Odpowiedź",
    "clickStepToInspect": "Kliknij dowolny krok, aby sprawdzić dane na tym etapie.",
    "clientFormat": "Format klienta",
    "provider": "Dostawca",
    "modelPlaceholder": "Wybierz lub wpisz nazwę modelu...",
    "sendMessageToSeePipeline": "Wyślij wiadomość, aby zobaczyć proces tłumaczenia",
    "chatMessageHintPrefix": "Twoja wiadomość zostanie sformatowana jako",
    "chatMessageHintSuffix": "żądanie, przetłumaczone w potoku i wysłane do wybranego dostawcy.",
    "youWithFormat": "Ty ({format})",
    "assistant": "Asystent",
    "typeMessage": "Wpisz wiadomość...",
    "send": "Wyślij",
    "clientRequest": "Żądanie klienta",
    "clientRequestDescription": "Treść żądania, jaką wysłałby Twój klient",
    "formatDetected": "Wykryto format",
    "formatDetectedDescription": "OmniRoute automatycznie wykrywa format API na podstawie struktury żądania",
    "openaiIntermediate": "Średniozaawansowany OpenAI",
    "openaiIntermediateDescription": "Wszystkie formaty są najpierw normalizowane do formatu OpenAI (uniwersalny most)",
    "providerFormat": "Format dostawcy",
    "providerFormatDescription": "Format OpenAI jest tłumaczony na natywny format dostawcy",
    "providerResponse": "Odpowiedź dostawcy",
    "providerResponseRawDescription": "Surowa odpowiedź z interfejsu API dostawcy",
    "providerResponseSseDescription": "Surowy strumień SSE z interfejsu API dostawcy",
    "unexpectedError": "Wystąpił nieoczekiwany błąd",
    "error": "Błąd",
    "errorMessage": "Błąd: {message}",
    "requestFailed": "Żądanie nie powiodło się",
    "noTextExtracted": "(Nie wyodrębniono tekstu)",
    "liveMonitorMemoryNote": "Zdarzenia są zapisywane w pamięci i tracone po ponownym uruchomieniu.",
    "liveMonitorMemoryCapNote": "Zachowanych maksymalnie 200 zdarzeń.",
    "eventSourcesLabel": "Źródła zdarzeń:",
    "eventSourceTranslatorPage": "• Strona tłumacza (Tester czatu, Stanowisko testowe)",
    "eventSourceMainPipeline": "• Główny potok żądań (ruch CLI/IDE/API)",
    "liveMonitorDescriptionPrefix": "Pokazuje zdarzenia związane z tłumaczeniem podczas przepływu wywołań API przez OmniRoute. Zdarzenia pochodzą z bufora w pamięci (resetują się przy ponownym uruchomieniu). Użyj",
    "liveMonitorDescriptionSuffix": "lub zewnętrzne wywołania API w celu wygenerowania zdarzeń.",
    "streamTransformer": "Transformator strumieniowy",
    "modeDescriptionStreamTransformer": "Uruchamiaj strumienie SSE dotyczące uzupełniania czatu za pośrednictwem transformatora Odpowiedzi.",
    "streamTransformerTitle": "Transformator strumieniowy odpowiedzi",
    "streamTransformerDescription": "Wklej strumień SSE zakończenia czatu, przepuść go przez transformator Odpowiedzi OmniRoute i sprawdź wyemitowane zdarzenia odpowiedzi.* przed podłączeniem klienta.",
    "loadTextSample": "Załaduj próbkę tekstu",
    "loadToolSample": "Załaduj przykład wywołania narzędzia",
    "transformToResponses": "Przekształć w odpowiedzi",
    "rawChatSseInput": "Surowe zakończenia czatu SSE",
    "transformedResponsesSse": "Przekształcone odpowiedzi API SSE",
    "noResultsYet": "Jeszcze żadnych wyników",
    "transformedEvents": "Przekształcone wydarzenia",
    "uniqueEventTypes": "Unikalne typy wydarzeń",
    "inputLines": "Linie wejściowe",
    "outputLines": "Linie wyjściowe",
    "transformedEventTimeline": "Przekształcona oś czasu wydarzenia",
    "transformerTimelineHint": "Uruchom transformator, aby sprawdzić kolejność emitowanych zdarzeń respond.output_*.",
    "eventType": "Typ zdarzenia",
    "eventPreview": "Podgląd",
    "comboRouted": "Kombinacja kierowana",
    "uniqueEndpoints": "Unikalne punkty końcowe",
    "routeDetails": "Szczegóły trasy",
    "comboBadge": "Kombinacja",
    "routeEndpointLabel": "Punkt końcowy",
    "routeConnectionLabel": "Połączenie",
    "scenarioVision": "Wizja (rozumienie obrazu)",
    "scenarioSchemaCoercion": "Wymuszenie schematu (wyjście strukturalne)",
    "techniques": "Techniki:"
  },
  "usage": {
    "title": "Użycie",
    "loggerTab": "Rejestrator",
    "proxyTab": "Pełnomocnik",
    "budgetManagement": "Zarządzanie budżetem",
    "budgetSaved": "Limity budżetu zostały zapisane",
    "budgetSaveFailed": "Nie udało się zapisać budżetu",
    "loadingBudgetData": "Ładowanie danych budżetu...",
    "noApiKeysTitle": "Brak kluczy API",
    "noApiKeysDescription": "Najpierw dodaj klucze API, aby skonfigurować limity budżetu.",
    "apiKey": "Klucz API",
    "todaysSpend": "Dzisiejsze wydatki",
    "thisMonth": "W tym miesiącu",
    "setLimits": "Ustaw limity",
    "dailyLimitUsd": "Limit dzienny (USD)",
    "monthlyLimitUsd": "Limit miesięczny (USD)",
    "warningThresholdPercent": "Próg ostrzegawczy (%)",
    "dailyLimitPlaceholder": "np. 5.00",
    "monthlyLimitPlaceholder": "np. 50,00",
    "warningThresholdPlaceholder": "80",
    "saveLimits": "Zapisz limity",
    "budgetOk": "Budżet OK — pozostało {remaining}",
    "budgetExceeded": "Przekroczono budżet — żądania mogą zostać zablokowane",
    "totalRequests": "Łączna liczba żądań",
    "noDataYet": "Brak danych",
    "latency": "Opóźnienie",
    "latencyP50": "p50",
    "latencyP95": "s. 95",
    "latencyP99": "str. 99",
    "promptCache": "Natychmiastowa pamięć podręczna",
    "systemHealth": "Stan systemu",
    "entries": "Wpisy",
    "activeCount": "{count} aktywny",
    "openCircuitBreakersDetected": "Wykryto otwarte wyłączniki automatyczne",
    "hitRate": "Współczynnik trafień",
    "hitsMisses": "Trafienia/chybienia",
    "circuitBreakers": "Wyłączniki automatyczne",
    "lockedIPs": "Zablokowane adresy IP",
    "lockoutsAutoRefreshHint": "Blokady limitów prędkości dla poszczególnych modeli • Automatyczne odświeżanie 10 s",
    "lockedCount": "{count, plural, one {# locked} other {# locked}}",
    "timeLeft": "Pozostało {time}",
    "howItWorks": "Jak to działa",
    "howItWorksSubtitle": "Dowiedz się, jak oceny weryfikują Twoje odpowiedzi LLM",
    "define": "Zdefiniuj",
    "defineStepDescription": "Twórz przypadki testowe z podpowiedziami wejściowymi i oczekiwanymi kryteriami wyjściowymi, korzystając ze strategii takich jak zawiera, wyrażenie regularne lub dopasowanie dokładne.",
    "run": "Biegnij",
    "runStepDescription": "Wykonuj przypadki testowe na punktach końcowych LLM za pośrednictwem OmniRoute. Każdy przypadek wysyłany jest jako prawdziwe żądanie API.",
    "evaluate": "Oceń",
    "evaluateStepDescription": "Odpowiedzi porównuje się z oczekiwanymi kryteriami. Zobacz wynik pozytywny/nieudany dla każdego przypadku ze wskaźnikami opóźnień i szczegółowymi informacjami zwrotnymi.",
    "evalsStrategyContainsLabel": "__MISSING__:Contains",
    "evalsStrategyExactLabel": "__MISSING__:Exact Match",
    "evalsStrategyRegexLabel": "__MISSING__:Regex",
    "evalsStrategyCustomLabel": "__MISSING__:Custom Logic",
    "evalsStrategyContainsDescription": "__MISSING__:Checks if the LLM output contains the expected substring.",
    "evalsStrategyExactDescription": "__MISSING__:Checks if the LLM output exactly matches the expected value.",
    "evalsStrategyRegexDescription": "__MISSING__:Validates the LLM output against a regular expression pattern.",
    "evalsStrategyCustomDescription": "__MISSING__:Custom evaluation logic (configured via JSON).",
    "historyColumnSuiteName": "__MISSING__:Suite Name",
    "historyColumnTarget": "__MISSING__:Target",
    "historyColumnPassRate": "__MISSING__:Pass Rate",
    "historyColumnAvgLatencyMs": "__MISSING__:Avg Latency",
    "historyColumnCreatedAt": "__MISSING__:Executed",
    "evalSuites": "Zestawy ewaluacyjne",
    "evalSuitesHint": "Kliknij zestaw, aby wyświetlić przypadki testowe, a następnie uruchom, aby ocenić punkty końcowe LLM",
    "evalsLoading": "Ładowanie pakietów eval...",
    "noEvalSuitesFound": "Nie znaleziono apartamentów Eval",
    "noEvalSuitesDescription": "Zestawy Eval można definiować za pomocą interfejsu API lub w kodzie. Testują wyniki modelu pod kątem oczekiwanych wyników, korzystając ze strategii takich jak zawiera, wyrażenie regularne, dopasowanie dokładne i funkcje niestandardowe.",
    "columnCase": "Sprawa",
    "columnStatus": "Stan",
    "columnLatency": "Opóźnienie",
    "columnDetails": "Szczegóły",
    "columnModel": "Modelka",
    "columnStrategy": "Strategia",
    "columnExpected": "Oczekiwane",
    "statsSuites": "Apartamenty",
    "statsTestCases": "Przypadki testowe",
    "statsModels": "Modele",
    "statsCoverage": "Zasięg",
    "statsStrategiesCount": "{count} strategie",
    "evaluationStrategies": "Strategie ewaluacji",
    "modelsUnderTest": "Modele w fazie testów",
    "searchSuitesPlaceholder": "Wyszukaj apartamenty...",
    "passSuffix": "przejść",
    "casesCount": "{count, plural, one {# case} other {# cases}}",
    "runEval": "Uruchom Eval",
    "runAllSuites": "Uruchom wszystko",
    "runAllRunning": "Uruchamianie wszystkich...",
    "runAllProgress": "Uruchamianie {current}/{total}: {name}",
    "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
    "runAllCompleted": "Uruchomiono {suites} pakietów — {passed} przeszło, {failed} nie powiodło się",
    "runAllCompletedWithFailures": "Prowadził {completed} apartamentów; {failedSuites} nie udało się ukończyć",
    "runningProgress": "Uruchamiam {current}/{total}...",
    "passRate": "wskaźnik zdawalności",
    "summaryBreakdown": "{passed} zaliczony · {failed} nieudany · {total} łącznie",
    "passedIconLabel": "✅ Zdane",
    "failedIconLabel": "❌ Nie udało się",
    "resultPassed": "Minęło",
    "resultFailed": "Nie udało się",
    "expandResult": "Rozwiń szczegóły wyniku",
    "collapseResult": "Zwiń szczegóły wyniku",
    "detailsContains": "Zawiera: „{term}”",
    "detailsRegex": "Wyrażenie regularne: {pattern}",
    "detailsExpected": "Oczekiwano: „{expected}”",
    "expectedOutputLabel": "Oczekiwany wynik",
    "noResultsYet": "Jeszcze żadnych wyników",
    "testCasesCount": "Przypadki testowe ({count})",
    "noTestCasesDefined": "Nie zdefiniowano przypadków testowych",
    "runEvalHint": "Kliknij „Uruchom ocenę”, aby wykonać wszystkie przypadki w punkcie końcowym LLM. Każdy test wysyła prawdziwe żądanie poprzez OmniRoute.",
    "notifyNoTestCases": "Dla tego pakietu nie zdefiniowano żadnych przypadków testowych",
    "notifyAllCasesPassed": "Wszystkie {total} sprawy zaliczone ✅",
    "notifySomeCasesFailed": "{passed}/{total} zaliczone, {failed} nie powiodło się",
    "notifyEvalRunFailed": "Próba ewaluacyjna nie powiodła się",
    "notifyEvalTitle": "Wartość: {name}",
    "modelEvals": "Oceny modeli",
    "evalsHeroDescription": "Przetestuj i zweryfikuj punkty końcowe LLM, uruchamiając predefiniowane zestawy ewaluacyjne. Każdy pakiet zawiera przypadki testowe, które wysyłają rzeczywiste podpowiedzi za pośrednictwem OmniRoute i porównują odpowiedzi z oczekiwanymi kryteriami — pomagając wykrywać regresje, porównywać modele i zapewniać jakość odpowiedzi u różnych dostawców.",
    "qualityValidation": "Walidacja jakości",
    "modelComparison": "Porównanie modeli",
    "regressionDetection": "Wykrywanie regresji",
    "latencyBenchmarks": "Testy porównawcze opóźnień",
    "modelLockouts": "Blokady modeli",
    "noLockouts": "Żaden model nie jest obecnie zablokowany",
    "activeSessions": "Aktywne sesje",
    "noSessions": "Brak aktywnych sesji",
    "sessionsHint": "Sesje pojawiają się, gdy żądania przepływają przez serwer proxy",
    "sessionsTrackedHint": "Śledzone poprzez odcisk palca na żądanie • Automatyczne odświeżanie 5 s",
    "session": "Sesja",
    "age": "Wiek",
    "requests": "Żądania",
    "connection": "Połączenie",
    "durationMillisecondsShort": "{value}ms",
    "durationSecondsShort": "{value}s",
    "durationMinutesShort": "{value}m",
    "durationHoursShort": "{value}h",
    "reasonSeparator": " - ",
    "notAvailableSymbol": "-",
    "providerLimits": "Limity dostawcy",
    "noProviders": "Brak podłączonych dostawców",
    "connectProvidersForQuota": "Połącz się z dostawcami za pomocą protokołu OAuth, aby śledzić limity przydziału interfejsu API i wykorzystanie.",
    "accountsCount": "{count, plural, one {# account} other {# accounts}}",
    "filteredFromCount": "(odfiltrowano z {count})",
    "autoRefresh": "Automatyczne odświeżanie",
    "refreshAll": "Odśwież wszystko",
    "loadingQuotas": "Ładowanie...",
    "account": "Konto",
    "modelQuotas": "Kwoty modelowe",
    "lastUsed": "Last Refreshed",
    "actions": "Działania",
    "refreshQuota": "Odśwież limit",
    "today": "Dzisiaj",
    "tomorrow": "Jutro",
    "dayTimeFormat": "{day}, {time}",
    "inDuration": "w {duration}",
    "notApplicable": "Nie dotyczy",
    "rawPlanWithValue": "Surowy plan: {plan}",
    "noPlanFromProvider": "Brak planu od dostawcy",
    "noQuotaData": "Brak danych dotyczących kwot",
    "cardExpand": "__MISSING__:Expand",
    "cardCollapse": "__MISSING__:Collapse",
    "moreQuotas": "__MISSING__:+{count} more",
    "ungrouped": "Ungrouped",
    "viewFlat": "Flat",
    "viewByEnvironment": "By Environment",
    "noQuotaDataAvailable": "Brak dostępnych danych dotyczących kwot",
    "noAccountsForTierFilter": "Nie znaleziono kont dla filtra poziomów",
    "tierAll": "Wszystko",
    "tierEnterprise": "Przedsiębiorstwo",
    "tierTeam": "Zespół",
    "tierBusiness": "Biznes",
    "tierUltra": "Ultra",
    "tierPro": "Zawodowiec",
    "tierPlus": "Dodatkowo",
    "tierFree": "Bezpłatny",
    "tierLite": "__MISSING__:Lite",
    "tierUnknown": "Nieznany",
    "statTotal": "__MISSING__:Total",
    "statCritical": "__MISSING__:Critical",
    "statAlert": "__MISSING__:Alert",
    "statHealthy": "__MISSING__:Healthy",
    "filterPurchaseTypeLabel": "__MISSING__:Type",
    "filterTierLabel": "__MISSING__:Tier",
    "purchaseAll": "__MISSING__:All",
    "purchaseOauthSub": "__MISSING__:Subscription",
    "purchaseOauthFree": "__MISSING__:OAuth Free",
    "purchaseApiKey": "__MISSING__:API Key",
    "creditsLabel": "__MISSING__:Credits",
    "creditBalanceHint": "__MISSING__:Remaining balance",
    "unlimitedLabel": "__MISSING__:Unlimited",
    "refreshing": "__MISSING__:Refreshing",
    "resetsIn": "__MISSING__:Resets in",
    "editCutoffs": "Edytuj odcięcia",
    "forceRefresh": "Odśwież teraz",
    "suiteBuilderSaveFailed": "Failed to save suite",
    "clone": "Klon",
    "exportSuite": "Eksportuj",
    "importSuite": "Importuj",
    "suiteExported": "Pakiet wyeksportowany",
    "suiteExportFailed": "Nie udało się wyeksportować pakietu",
    "suiteImportReady": "Załadowano import pakietu do sprawdzenia",
    "suiteImportFailed": "Nie udało się zaimportować pakietu",
    "suiteImportInvalid": "Nieprawidłowy pakiet eval JSON",
    "suiteBuilderCloneSuffix": "kopia",
    "suiteBuilderImportedSuite": "Importowany pakiet",
    "scorecardTitle": "Scorecard",
    "evalApiKey": "API Key",
    "scorecardPassRate": "Pass Rate",
    "targetTypeModel": "Model",
    "actualOutputLabel": "Actual Output",
    "evalTargetHint": "Select a model or combo to evaluate.",
    "suiteBuilderDeleted": "Suite deleted successfully",
    "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
    "nextResetUtc": "Next reset (UTC)",
    "scorecardHint": "Aggregated pass rates across all evaluation suites.",
    "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
    "saving": "Saving",
    "suiteBuilderCaseModelLabel": "Model (optional)",
    "evalControlsTitle": "Evaluation Controls",
    "suiteBuilderEditTitle": "Edit Eval Suite",
    "suiteBuilderCaseStrategyLabel": "Validation Strategy",
    "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
    "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
    "evalCompareHint": "Optionally compare results against a second target.",
    "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
    "historyEmpty": "No evaluation history yet",
    "suiteBuilderUpdated": "Suite updated successfully",
    "resetInterval": "Reset Interval",
    "suiteBuilderCreateTitle": "Create Eval Suite",
    "activePeriodSpend": "Active Period Spend",
    "evalApiKeyHint": "Select which API key to use for evaluation requests.",
    "evalCompareOptional": "Compare (optional)",
    "suiteBuilderDeleteFailed": "Failed to delete suite",
    "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
    "scorecardCases": "Cases",
    "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
    "suiteBuilderCustomBadge": "Custom",
    "targetSuiteDefaults": "Suite defaults",
    "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
    "suiteBuilderNameLabel": "Suite Name",
    "scorecardSuites": "Suites",
    "evalCompareTarget": "Compare Target",
    "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
    "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
    "recentRunsTitle": "Recent Runs",
    "suiteBuilderCaseSystemPromptLabel": "System Prompt",
    "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
    "suiteBuilderCaseExpectedPlaceholderContains": "np. zdecydowanie Fibonacciego",
    "suiteBuilderCaseExpectedPlaceholderExact": "Wklej dokładnie oczekiwaną odpowiedź",
    "suiteBuilderCaseExpectedPlaceholderRegex": "np. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
    "suiteBuilderCaseExpectedHintRegex": "Użyj wyrażenia regularnego JavaScript bez zawijania ukośników.",
    "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": "Duplikat",
    "weeklyLimitPlaceholder": "e.g. 50.00",
    "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
    "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
    "weekly": "Weekly",
    "runEvalRunning": "Running evaluation...",
    "delete": "Delete",
    "resetTimeUtc": "Reset Time (UTC)",
    "evalApiKeyAuto": "Auto (use default)",
    "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
    "targetComparisonTitle": "Target Comparison",
    "save": "Save",
    "suiteBuilderCreated": "Suite created successfully",
    "suiteLatestRuns": "Latest Runs",
    "suiteBuilderCaseExpectedLabel": "Expected Value",
    "historyLatency": "Latency",
    "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
    "targetTypeCombo": "Combo",
    "scorecardPassed": "Passed",
    "suiteBuilderCaseTagsLabel": "Tags",
    "suiteBuilderNewSuite": "New Suite",
    "notifyEvalLoadFailed": "Failed to load evaluation data",
    "notConfigured": "Not Configured",
    "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
    "intervalLabel": "Interval",
    "suiteBuilderCreateAction": "Create Suite",
    "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
    "suiteBuilderUpdatedAt": "Updated",
    "errorBadge": "Error",
    "suiteBuilderCasesTitle": "Test Cases",
    "edit": "Edit",
    "monthly": "Monthly",
    "suiteBuilderCasesRequired": "At least one test case is required",
    "weeklyLimitSummary": "Weekly budget limit summary",
    "suiteBuilderDescriptionLabel": "Description",
    "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
    "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
    "staleQuotaTooltip": "Last refresh failed — showing cached data",
    "quotaThresholdLabel": "Został Min",
    "quotaCutoffsColumnHelp": "Zatrzymaj żądania, gdy pozostały przydział spadnie do tej wartości procentowej lub poniżej.",
    "quotaCutoffsButtonDefault": "Domyślne",
    "quotaCutoffsButtonHelp": "Edytuj minimalne pozostałe limity przydziału dla tego konta.",
    "quotaCutoffsButtonDisabled": "Dla tego konta nie są jeszcze dostępne żadne okna przydziału.",
    "quotaCutoffsTitle": "Ograniczenia przydziałów dla {name} ({provider})",
    "quotaCutoffsExplainer": "Zastąp minimalny pozostały procent przydziału, w którym to konto przestaje być wybierane w każdym oknie przydziału. Pozostaw puste, aby odziedziczyć domyślnego dostawcę.",
    "quotaCutoffsDefaultHint": "Domyślna pozostała min: {default}%",
    "quotaCutoffsResetAll": "Zresetuj wszystko",
    "quotaCutoffsNoWindows": "Dla tego konta nie są jeszcze dostępne żadne okna przydziału.",
    "quotaThresholdInvalid": "Wprowadź liczbę całkowitą od 0 do 100.",
    "budgetKpiToday": "Dzisiaj",
    "budgetKpiThisMonth": "W tym miesiącu",
    "budgetKpiProjEom": "Projekt EOM",
    "budgetKpiBlocked": "Zablokowano",
    "budgetKpiAtRisk": "Ryzykowne",
    "budgetKpiActiveKeys": "Aktywne klucze",
    "budgetSearchKeysPlaceholder": "Szukaj kluczy...",
    "budgetSortPctUsed": "Sortuj: % wykorzystanych ↓",
    "budgetSortTodayDollar": "Sortuj: Dzisiaj $ ↓",
    "budgetSortMonthDollar": "Sortuj: Miesiąc $ ↓",
    "budgetSortNameAZ": "Sortuj: Nazwa (A–Z)",
    "budgetColDailyLim": "Limit dzienny",
    "budgetColMonthlyLim": "Limit miesięczny",
    "budgetColUsedPct": "Zużyty%",
    "budgetLoading": "Ładowanie…",
    "budgetNoKeysMatch": "Żaden klucz nie pasuje do filtrów",
    "budgetLinearExtrapolation": "ekstrapolacja liniowa",
    "budgetThisMonthSoFar": "Jak na razie w tym miesiącu",
    "budgetProjectedEndOfMonth": "Przewidywany koniec miesiąca",
    "budgetByProvider": "przez dostawcę",
    "budgetDailyDollar": "Codziennie $",
    "budgetWeeklyDollar": "Co tydzień $",
    "budgetMonthlyDollar": "Miesięcznie $",
    "budgetWarnAtPct": "Ostrzegaj w %",
    "quotaAlerts": "Alerty dotyczące limitów",
    "quotaTableRefreshing": "⟳ Orzeźwiające...",
    "noSpendLast30Days": "Brak wydatków w ciągu ostatnich 30 dni",
    "updatedShort": "__MISSING__:Updated",
    "lastRefreshed": "__MISSING__:Last refreshed",
    "providerQuota": "__MISSING__:Provider Quota",
    "providerQuotaHomeHint": "__MISSING__:Live status across connected accounts"
  },
  "modals": {
    "waitingAuth": "Oczekiwanie na autoryzację",
    "verificationUrl": "Adres URL weryfikacji",
    "yourCode": "Twój kod",
    "remoteAccess": "Zdalny dostęp:",
    "connectedSuccess": "Połączono pomyślnie!",
    "connectionFailed": "Połączenie nie powiodło się",
    "chooseAuthMethod": "Wybierz metodę uwierzytelniania:",
    "awsBuilderId": "Identyfikator konstruktora AWS",
    "awsIamIdentity": "Centrum tożsamości AWS IAM",
    "googleAccount": "Konto Google",
    "githubAccount": "Konto GitHuba",
    "importToken": "Importuj token",
    "pasteToken": "Wklej token odświeżania z Kiro IDE.",
    "awsRegion": "Regionu AWS",
    "autoDetecting": "Automatyczne wykrywanie tokenów...",
    "readingFromCache": "Odczyt z pamięci podręcznej AWS SSO",
    "readingFromCursor": "Odczyt z bazy danych Cursor IDE",
    "initializing": "Inicjowanie...",
    "pricingConfig": "Konfiguracja cen",
    "loadingPricing": "Ładowanie danych cenowych...",
    "pricingRatesFormat": "Format stawek cenowych",
    "noPricingData": "Brak danych o cenach",
    "noModelsFound": "Nie znaleziono żadnych modeli"
  },
  "loggers": {
    "allProviders": "Wszyscy dostawcy",
    "allModels": "Wszystkie modele",
    "allAccounts": "Wszystkie konta",
    "allApiKeys": "Wszystkie klucze API",
    "allTypes": "Wszystkie typy",
    "allLevels": "Wszystkie poziomy",
    "modelAZ": "Model A-Z",
    "modelZA": "Model Z-A",
    "loadingLogs": "Ładowanie dzienników...",
    "loadingProxyLogs": "Ładowanie dzienników proxy...",
    "noLogEntries": "Nie znaleziono wpisów w dzienniku",
    "noPayloadData": "Brak danych ładunku dla tego wpisu dziennika.",
    "proxyEvent": "Wydarzenie proxy",
    "proxy": "Pełnomocnik",
    "level": "Poziom",
    "directNative": "Bezpośrednie (natywne)",
    "combo": "Kombinacja",
    "inputTokens": "ja:",
    "outputTokens": "O:"
  },
  "stats": {
    "usageOverview": "Przegląd użycia",
    "outputTokens": "Tokeny wyjściowe",
    "totalCost": "Całkowity koszt",
    "usageByModel": "Użycie według modelu",
    "usageByAccount": "Użycie według konta",
    "failedToLoad": "Nie udało się załadować statystyk użytkowania.",
    "tokenHealth": "Tokenowe zdrowie",
    "totalOAuth": "Całkowite uwierzytelnienie OAuth",
    "healthy": "Zdrowy",
    "warning": "Ostrzeżenie",
    "errored": "Błąd",
    "lastCheck": "Ostatnia kontrola",
    "noData": "Brak danych",
    "share": "Udostępnij",
    "unableToLoad": "Nie można załadować wskaźników systemowych",
    "product": "Produkt",
    "resources": "Zasoby",
    "company": "Firma"
  },
  "auth": {
    "welcome": "Witamy",
    "signIn": "Zaloguj się",
    "enterPassword": "Wprowadź hasło, aby kontynuować",
    "password": "Hasło",
    "unifiedProxy": "Ujednolicony serwer proxy API AI",
    "unifiedAiApiProxy": "Ujednolicony serwer proxy API AI",
    "unifiedAiApiProxyDesc": "Kieruj żądania do wielu dostawców AI za pośrednictwem jednego punktu końcowego. Wbudowane równoważenie obciążenia, przełączanie awaryjne i śledzenie użycia.",
    "passwordNotEnabled": "Ochrona hasłem nie jest włączona",
    "loading": "Ładowanie...",
    "invalidPassword": "Nieprawidłowe hasło",
    "errorOccurredRetry": "Wystąpił błąd. Spróbuj ponownie.",
    "configureInstance": "Skonfigurujmy Twoją instancję OmniRoute",
    "runOnboardingWizard": "Uruchom kreatora wdrażania, aby ustawić hasło i połączyć się z pierwszym dostawcą AI.",
    "startOnboarding": "Rozpocznij wdrażanie",
    "secureYourInstance": "Zabezpiecz swoją instancję",
    "setPasswordDescription": "Ustaw hasło, aby chronić swój pulpit nawigacyjny i zabezpieczyć punkty końcowe API przed nieautoryzowanym dostępem.",
    "configurePassword": "Skonfiguruj hasło",
    "continue": "Kontynuuj",
    "windowWillClose": "To okno zamknie się automatycznie...",
    "closeTabNow": "Możesz już zamknąć tę zakładkę.",
    "copyUrlManual": "Skopiuj adres URL z paska adresu i wklej go w aplikacji.",
    "accessDeniedDescription": "Nie masz uprawnień dostępu do tego zasobu. Sprawdź swój klucz API lub skontaktuj się z administratorem.",
    "goToDashboard": "Przejdź do Panelu",
    "featureMultiProviderTitle": "Wielu dostawców",
    "featureMultiProviderDesc": "OpenAI, Anthropic, Google i nie tylko",
    "featureLoadBalancingTitle": "Równoważenie obciążenia",
    "featureLoadBalancingDesc": "Rozpowszechniaj żądania inteligentnie",
    "featureUsageTrackingTitle": "Śledzenie użycia",
    "featureUsageTrackingDesc": "Monitoruj koszty i tokeny",
    "resetPassword": "Zresetuj hasło",
    "resetDescription": "Wybierz metodę odzyskania dostępu do pulpitu nawigacyjnego",
    "stopServer": "Zatrzymaj serwer OmniRoute",
    "processing": "Przetwarzanie...",
    "pleaseWait": "Poczekaj, aż zakończymy autoryzację.",
    "authSuccess": "Autoryzacja pomyślna!",
    "copyUrl": "Skopiuj ten adres URL",
    "accessDenied": "Odmowa dostępu",
    "methodCliTitle": "Metoda 1: Reset CLI",
    "methodCliDescription": "Uruchom następującą komendę na serwerze, na którym działa OmniRoute:",
    "methodCliHint": "Spowoduje to wyświetlenie monitu o ustawienie nowego hasła. Najpierw należy zatrzymać serwer.",
    "methodManualTitle": "Metoda 2: Reset ręczny",
    "methodManualDescription": "Usuń hasło z bazy danych i przy uruchomieniu ustaw nowe:",
    "setPasswordInYour": "Ustaw nowe hasło w swoim",
    "fileLabelSuffix": "plik:",
    "newPasswordPlaceholder": "twoje_nowe_hasło",
    "deleteSettingsFile": "Usuń",
    "orRemovePasswordHashField": "lub usuń pole hasłoHash",
    "restartServerWithNewPassword": "Zrestartuj serwer - będzie używał nowego hasła",
    "backToLogin": "Powrót do logowania",
    "forgotPassword": "Zapomniałeś hasła?",
    "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
    "Authorization": "Autoryzacja",
    "Content-Disposition": "Dyspozycja treści",
    "waitingForAuthorization": "Waiting for authorization...",
    "waitingForGoogleAuthorization": "Waiting for Google authorization...",
    "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
    "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
    "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
    "exchangingCodeForTokens": "Exchanging code for tokens...",
    "nodeIncompatibleTitle": "Incompatible Node.js Version",
    "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
    "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
    "nodeIncompatibleHint": "OmniRoute requires Node.js 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": "Przejdź do domu",
    "toggleMenu": "Przełącz menu",
    "featuresLink": "Funkcje",
    "docsLink": "Dokumenty",
    "github": "GitHub",
    "versionLive": "wersja 1.0 jest już dostępna",
    "oneEndpoint": "Jeden punkt końcowy dla",
    "allProviders": "Wszyscy dostawcy sztucznej inteligencji",
    "heroDescription": "Serwer proxy punktu końcowego AI z panelem WWW — port JavaScript CLIProxyAPI. Bezproblemowo współpracuje z Claude Code, OpenAI Codex, Cline, RooCode i innymi narzędziami CLI.",
    "getStarted": "Rozpocznij",
    "viewOnGithub": "Zobacz na GitHubie",
    "powerfulFeatures": "Potężne funkcje",
    "featuresSubtitle": "Wszystko, czego potrzebujesz do zarządzania infrastrukturą AI w jednym miejscu, stworzonym z myślą o skali.",
    "featureUnifiedEndpointTitle": "Ujednolicony punkt końcowy",
    "featureUnifiedEndpointDesc": "Uzyskaj dostęp do wszystkich dostawców za pośrednictwem jednego standardowego adresu URL interfejsu API.",
    "featureEasySetupTitle": "Łatwa konfiguracja",
    "featureEasySetupDesc": "Rozpocznij pracę w ciągu kilku minut za pomocą polecenia npx.",
    "featureModelFallbackTitle": "Model zastępczy",
    "featureModelFallbackDesc": "Automatycznie przełączaj dostawców w przypadku awarii lub dużych opóźnień.",
    "featureUsageTrackingTitle": "Śledzenie użycia",
    "featureUsageTrackingDesc": "Szczegółowa analiza i monitorowanie kosztów we wszystkich modelach.",
    "featureOAuthApiKeysTitle": "Klucze OAuth i API",
    "featureOAuthApiKeysDesc": "Bezpiecznie zarządzaj danymi uwierzytelniającymi w jednym skarbcu.",
    "featureCloudSyncTitle": "Synchronizacja w chmurze",
    "featureCloudSyncDesc": "Błyskawicznie synchronizuj konfiguracje na różnych urządzeniach.",
    "featureCliSupportTitle": "Wsparcie CLI",
    "featureCliSupportDesc": "Współpracuje z Claude Code, Codex, Cline, Cursor i nie tylko.",
    "featureDashboardTitle": "Pulpit nawigacyjny",
    "featureDashboardDesc": "Wizualny pulpit nawigacyjny do analizy ruchu w czasie rzeczywistym.",
    "howItWorks": "Jak działa OmniRoute",
    "howItWorksDescription": "Dane płynnie przepływają z Twojej aplikacji przez naszą inteligentną warstwę routingu do najlepszego dostawcy dla danego zadania.",
    "howItWorksStep1Title": "1. CLI i SDK",
    "howItWorksStep1Description": "Twoje żądania zaczynają się od ulubionych narzędzi lub naszego ujednoliconego pakietu SDK. Po prostu zmień podstawowy adres URL.",
    "howItWorksStep2Title": "2. Koncentrator OmniRoute",
    "howItWorksStep2Description": "Nasz silnik analizuje monity, sprawdza stan dostawcy i trasy pod kątem najniższych opóźnień lub kosztów.",
    "howItWorksStep3Title": "3. Dostawcy sztucznej inteligencji",
    "howItWorksStep3Description": "Żądanie jest natychmiast spełniane przez OpenAI, Anthropic, Gemini lub inne.",
    "getStartedIn30Seconds": "Rozpocznij w 30 sekund",
    "getStartedDescription": "Zainstaluj OmniRoute, skonfiguruj dostawców za pomocą panelu internetowego i rozpocznij przekierowywanie żądań AI.",
    "installOmniRoute": "Zainstaluj OmniRoute",
    "installStepDescription": "Uruchom polecenie npx, aby natychmiast uruchomić serwer",
    "openDashboard": "Otwórz Panel",
    "openDashboardStepDescription": "Skonfiguruj dostawców i klucze API za pośrednictwem interfejsu internetowego",
    "routeRequests": "Żądania dotyczące trasy",
    "routeRequestsStepDescription": "Skieruj swoje narzędzia CLI na {endpoint}",
    "terminal": "terminala",
    "copy": "Kopiuj",
    "copied": "✓ Skopiowano",
    "startingOmniRoute": "Uruchamiam OmniRoute...",
    "serverRunningOnLabel": "Serwer działa",
    "dashboardLabel": "Pulpit nawigacyjny",
    "readyToRoute": "Gotowy do trasy! ✓",
    "configureProvidersNote": "📝 Skonfiguruj dostawców w panelu kontrolnym lub użyj zmiennych środowiskowych",
    "dataLocation": "Lokalizacja danych:",
    "dataLocationMacLinux": " macOS/Linux:",
    "dataLocationWindows": " Okna:",
    "product": "Produkt",
    "dashboardLink": "Pulpit nawigacyjny",
    "changelog": "Dziennik zmian",
    "resources": "Zasoby",
    "documentation": "Dokumentacja",
    "npm": "NPM",
    "legal": "Legalne",
    "mitLicense": "Licencja MIT",
    "footerTagline": "Ujednolicony punkt końcowy do generowania sztucznej inteligencji. Z łatwością łącz się, kieruj i zarządzaj dostawcami sztucznej inteligencji.",
    "copyright": "© {year} OmniRoute. Wszelkie prawa zastrzeżone.",
    "flowToolClaudeCode": "Claude'a Koda",
    "flowToolOpenAICodex": "Kodeks OpenAI",
    "flowToolCline": "Cline",
    "flowToolCursor": "Kursor",
    "flowProviderOpenAI": "OpenAI",
    "flowProviderAnthropic": "Antropiczny",
    "flowProviderGemini": "Bliźnięta",
    "flowProviderGithubCopilot": "Drugi pilot GitHuba",
    "interactiveDiagram": "Interaktywny diagram widoczny na pulpicie",
    "ctaTitle": "Chcesz uprościć swoją infrastrukturę AI?",
    "ctaDescription": "Dołącz do programistów, którzy usprawniają integrację sztucznej inteligencji za pomocą OmniRoute. Oprogramowanie typu open source i na początek bezpłatne.",
    "startFree": "Zacznij za darmo",
    "readDocumentation": "Przeczytaj dokumentację"
  },
  "docs": {
    "title": "Dokumentacja",
    "quickStart": "Szybki start",
    "deploymentGuides": "Przewodniki wdrażania",
    "features": "Funkcje",
    "supportedProviders": "Obsługiwani dostawcy",
    "supportedProvidersToc": "Dostawcy",
    "commonUseCases": "Typowe przypadki użycia",
    "clientCompatibility": "Zgodność klienta",
    "protocolsToc": "Protocols",
    "apiReference": "Dokumentacja API",
    "managementApiReference": "Management API Reference",
    "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
    "method": "Metoda",
    "path": "Ścieżka",
    "notes": "Notatki",
    "modelPrefixes": "Przedrostki modeli",
    "prefix": "Przedrostek",
    "troubleshooting": "Rozwiązywanie problemów",
    "supportsChat": "Obsługuje punkty końcowe czatu i odpowiedzi.",
    "oauthAutoRefresh": "Połączenie OAuth z automatycznym odświeżaniem tokena.",
    "fullStreaming": "Pełna obsługa transmisji strumieniowej dla wszystkich modeli.",
    "docsLabel": "Dokumenty",
    "docsHeroDescription": "Brama AI dla LLM wielu dostawców. Jeden punkt końcowy dla OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor i ponad 20 innych dostawców.",
    "openDashboard": "Otwórz Panel",
    "endpointPage": "Strona punktu końcowego",
    "github": "GitHub",
    "reportIssue": "Zgłoś problem",
    "onThisPage": "Na tej stronie",
    "documentationVersion": "Dokumentacja - v{version}",
    "quickStartStep1Title": "1. Zainstaluj i uruchom",
    "quickStartStep1Prefix": "Biegnij",
    "quickStartStep1Middle": "lub sklonuj z GitHub i uruchom",
    "quickStartStep2Title": "2. Utwórz klucz API",
    "quickStartStep2Text": "Przejdź do Punkt końcowy -> Zarejestrowane klucze. Wygeneruj jeden klucz na środowisko.",
    "quickStartStep3Title": "3. Połącz dostawców",
    "quickStartStep3Text": "Dodaj konta dostawców za pomocą loginu OAuth, klucza API lub automatycznego łączenia w warstwie bezpłatnej.",
    "quickStartStep4Title": "4. Ustaw podstawowy adres URL klienta",
    "quickStartStep4Prefix": "Wskaż klienta IDE lub API",
    "quickStartStep4Suffix": "Użyj na przykład prefiksu dostawcy",
    "deploySetupTitle": "Przewodnik konfiguracji",
    "deploySetupText": "Instalacja krok po kroku, konfiguracja środowiska i instrukcja pierwszego uruchomienia OmniRoute.",
    "deployElectronTitle": "Pulpit elektronowy",
    "deployElectronText": "Uruchom OmniRoute jako natywną aplikację komputerową w systemach Windows, macOS i Linux.",
    "deployDockerTitle": "Doker",
    "deployDockerText": "Wdrożenie kontenerowe za pomocą Docker Compose; gotowy na stosy produkcyjne i Kubernetes.",
    "deployVmTitle": "Maszyna wirtualna",
    "deployVmText": "Samodzielny host na dowolnej maszynie wirtualnej z systemem Linux. Obejmuje jednostkę systemową, rotację dzienników i narzędzia do tworzenia kopii zapasowych.",
    "deployFlyTitle": "Fly.io",
    "deployFlyText": "Wdróż w środowisku wykonawczym brzegowym Fly.io za pomocą jednego pliku fly.toml i jednego polecenia wdrażania.",
    "deployPwaTitle": "PWA",
    "deployPwaText": "Zainstaluj OmniRoute jako progresywną aplikację internetową w przeglądarkach na Androidzie, iOS i na komputerze.",
    "deployTermuxTitle": "Termux (Android)",
    "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
    "featureRoutingTitle": "Routing wielu dostawców",
    "featureRoutingText": "Kieruj żądania do ponad 30 dostawców AI za pośrednictwem jednego punktu końcowego kompatybilnego z OpenAI. Obsługuje interfejsy API czatu, odpowiedzi, dźwięku i obrazu.",
    "featureCombosTitle": "Kombinacje i balansowanie",
    "featureCombosText": "Twórz kombinacje modeli z łańcuchami awaryjnymi i strategiami równoważenia: okrężne, priorytetowe, losowe, najrzadziej używane i zoptymalizowane pod względem kosztów.",
    "featureUsageTitle": "Śledzenie wykorzystania i kosztów",
    "featureUsageText": "Liczenie tokenów w czasie rzeczywistym, kalkulacja kosztów dla każdego dostawcy/modelu oraz szczegółowy podział wykorzystania według klucza API i konta.",
    "featureAnalyticsTitle": "Panel analityczny",
    "featureAnalyticsText": "Analityka wizualna z wykresami żądań, tokenów, błędów, opóźnień, kosztów i popularności modelu w czasie.",
    "featureHealthTitle": "Monitorowanie zdrowia",
    "featureHealthText": "Kontrole stanu na żywo, status dostawcy, stany wyłączników i automatyczne wykrywanie limitów szybkości z wykładniczym wycofywaniem.",
    "featureCliTitle": "Narzędzia interfejsu wiersza polecenia",
    "featureCliText": "Zarządzaj konfiguracjami IDE, eksportuj/importuj kopie zapasowe, odkrywaj profile Codexu i konfiguruj ustawienia z poziomu pulpitu nawigacyjnego.",
    "featureSecurityTitle": "Bezpieczeństwo i zasady",
    "featureSecurityText": "Uwierzytelnianie kluczem API, filtrowanie IP, ochrona przed wtryskiem, zasady domeny, zarządzanie sesjami i rejestrowanie audytu.",
    "featureCloudSyncTitle": "Synchronizacja w chmurze",
    "featureCloudSyncText": "Zsynchronizuj swoją konfigurację z Cloudflare Workers, aby uzyskać zdalny dostęp za pomocą szyfrowanych poświadczeń i automatycznego przełączania awaryjnego.",
    "providersAcrossConnectionTypes": "{count} dostawców dla trzech typów połączeń.",
    "manageProviders": "Zarządzaj dostawcami",
    "providersCount": "{count} dostawców",
    "providerTypeFree": "Poziom bezpłatny",
    "providerTypeOAuth": "OAuth",
    "providerTypeApiKey": "Klucz API",
    "useCaseSingleEndpointTitle": "Jeden punkt końcowy dla wielu dostawców",
    "useCaseSingleEndpointText": "Wskaż klientom jeden podstawowy adres URL i trasę według prefiksu modelu (na przykład: gh/, cc/, kr/, openai/).",
    "useCaseFallbackTitle": "Przełączanie awaryjne i modelowe za pomocą kombinacji",
    "useCaseFallbackText": "Twórz modele łączone w panelu kontrolnym i utrzymuj stabilną konfigurację klienta, podczas gdy dostawcy zmieniają się wewnętrznie.",
    "useCaseUsageVisibilityTitle": "Widoczność użycia, kosztów i debugowania",
    "useCaseUsageVisibilityText": "Śledź tokeny i koszty według dostawcy, konta i klucza API na kartach Użycie i Analityka.",
    "clientCherryStudioTitle": "Wiśniowe Studio",
    "baseUrlLabel": "Bazowy adres URL",
    "chatEndpointLabel": "Punkt końcowy czatu",
    "modelRecommendationLabel": "Rekomendacja modelu: wyraźny przedrostek",
    "clientCodexTitle": "Modele drugiego pilota w Kodeksie/GitHub",
    "clientCodexBullet1": "Użyj identyfikatorów modeli z",
    "clientCodexBullet2": "Modele z rodziny Codex automatycznie kierują się do",
    "clientCodexBullet3": "Modele inne niż Kodeks są kontynuowane",
    "clientCursorTitle": "Kursor IDE",
    "clientCursorBullet1": "Użyj",
    "clientCursorBullet1Suffix": "przedrostek dla modeli kursora.",
    "clientCursorBullet2": "Połączenie OAuth - zaloguj się ze strony Dostawcy.",
    "clientClaudeTitle": "Kod Claude'a / Antygrawitacja",
    "clientClaudeBullet1Prefix": "Użyj",
    "clientClaudeBullet1Middle": "(Claude) lub",
    "clientClaudeBullet1Suffix": "Przedrostek (Antygrawitacja).",
    "clientWindsurfTitle": "Windsurfing",
    "clientWindsurfBullet1": "Użyj OmniRoute jako podstawowego adresu URL zgodnego z OpenAI i zachowaj jawne przedrostki dostawców dla routingu deterministycznego.",
    "clientWindsurfBullet2": "Wskaż modele na `/v1/chat/completions` dla ogólnego ruchu i zachowaj `/v1/responses` dla przepływów w stylu Codexu.",
    "clientWindsurfBullet3": "Użyj Dashboard -> CLI Tools, aby uzyskać gotowy przewodnik konfiguracji Windsurfingu.",
    "clientClineTitle": "Cline",
    "clientClineBullet1": "Cline działa najlepiej z wyraźnymi prefiksami dostawcy/modelu, więc router nigdy nie musi zgadywać backendu.",
    "clientClineBullet2": "Użyj `/v1/chat/completions` dla modeli ogólnych i ponownie użyj tego samego podstawowego adresu URL OmniRoute na różnych kontach.",
    "clientClineBullet3": "Użyj panelu dostawców, aby sprawdzić poprawność klucza OAuth/API przed debugowaniem problemów ze środowiskiem wykonawczym Cline.",
    "clientKimiTitle": "Kodowanie Kimi",
    "clientKimiBullet1": "Używaj OmniRoute jako stabilnego podstawowego adresu URL podczas rotacji kont lub kombinacji dostawców pod spodem.",
    "clientKimiBullet2": "Preferuj modele z prefiksami w przepływach kodowania, aby rezerwa i ścieżka audytu pozostały wyraźne.",
    "clientKimiBullet3": "Użyj `/v1/responses`, jeśli chcesz natywnego routingu w stylu Responses dla klientów korzystających z narzędzi.",
    "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": "Punkt końcowy czatu zgodny z OpenAI (domyślnie).",
    "endpointResponsesNote": "Punkt końcowy interfejsu API odpowiedzi (Kodeks, seria o).",
    "endpointModelsNote": "Katalog modeli dla wszystkich podłączonych dostawców.",
    "endpointAudioNote": "Transkrypcja audio (Deepgram, AssemblyAI).",
    "endpointSpeechNote": "Generowanie mowy tekstowej (ElevenLabs, OpenAI TTS).",
    "endpointEmbeddingsNote": "Generowanie osadzeń tekstu (OpenAI, Cohere, Voyage).",
    "endpointImagesNote": "Generowanie obrazu (NanoBanana).",
    "endpointRewriteChatNote": "Przepisz pomocnika dla klientów bez /v1.",
    "endpointRewriteResponsesNote": "Przepisz pomocnika dla odpowiedzi bez /v1.",
    "endpointRewriteModelsNote": "Przepisz pomocnika do wykrywania modelu bez /v1.",
    "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
    "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
    "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
    "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
    "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
    "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
    "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
    "modelPrefixesDescriptionStart": "Użyj prefiksu dostawcy przed nazwą modelu, aby przekierować do określonego dostawcy. Przykład:",
    "modelPrefixesDescriptionEnd": "trasy do GitHub Copilot.",
    "provider": "Dostawca",
    "type": "Wpisz",
    "troubleshootingModelRouting": "Jeśli klientowi nie powiedzie się routing modelu, użyj jawnego dostawcy/modelu (na przykład: gh/gpt-5.1-codex).",
    "troubleshootingAmbiguousModels": "Jeśli otrzymujesz niejednoznaczne błędy modelu, wybierz prefiks dostawcy zamiast samego identyfikatora modelu.",
    "troubleshootingCodexFamily": "W przypadku modeli z rodziny GitHub Codex zachowaj model jako gh/codex-model; router wybiera opcję /odpowiada automatycznie.",
    "troubleshootingTestConnection": "Użyj Panelu sterowania > Dostawcy > Testuj połączenie przed testowaniem z IDE lub klientów zewnętrznych.",
    "troubleshootingCircuitBreaker": "Jeśli dostawca pokazuje, że wyłącznik jest otwarty, poczekaj na ochłodzenie lub sprawdź stronę Zdrowie, aby uzyskać szczegółowe informacje.",
    "troubleshootingOAuth": "W przypadku dostawców OAuth należy ponownie uwierzytelnić, jeśli tokeny wygasną. Sprawdź wskaźnik stanu karty dostawcy.",
    "endpointCompletionsNote": "Starszy punkt końcowy uzupełnień do generowania tekstu.",
    "endpointModerationsNote": "Moderowanie treści i klasyfikacja bezpieczeństwa.",
    "endpointRerankNote": "Ponowna klasyfikacja dokumentów w celu generowania wspomaganego wyszukiwaniem (Cohere, Jina).",
    "endpointSearchNote": "Wyszukiwarka internetowa u 5 dostawców (Serper, Brave, Exa, Tavily, Perplexity).",
    "endpointSearchAnalyticsNote": "Analityka i metryki dotyczące żądań wyszukiwania.",
    "endpointVideoNote": "Generowanie wideo (przepływy pracy ComfyUI, SD WebUI).",
    "endpointMusicNote": "Generowanie muzyki za pomocą przepływów pracy ComfyUI.",
    "endpointMessagesNote": "Punkt końcowy wiadomości antropicznych.",
    "endpointCountTokensNote": "Zlicz tokeny dla danego ładunku komunikatu.",
    "endpointFilesNote": "Przesyłanie plików dla wejść multimodalnych.",
    "endpointBatchesNote": "Przetwarzanie wsadowe dla zbiorczych żądań API.",
    "endpointWsNote": "Punkt końcowy WebSocket do przesyłania strumieniowego w czasie rzeczywistym.",
    "mgmtProvidersListNote": "Lista wszystkich zarejestrowanych połączeń dostawców.",
    "mgmtProvidersCreateNote": "Utwórz nowe połączenie dostawcy.",
    "mgmtProvidersUpdateNote": "Zaktualizuj istniejące połączenie dostawcy.",
    "mgmtProvidersDeleteNote": "Usuń połączenie dostawcy.",
    "mgmtProvidersTestNote": "Przetestuj łączność i uwierzytelnianie u dostawcy.",
    "mgmtProvidersModelsNote": "Lista dostępnych modeli dla konkretnego dostawcy.",
    "mgmtSettingsGetNote": "Pobierz bieżące ustawienia aplikacji.",
    "mgmtSettingsUpdateNote": "Zaktualizuj ustawienia aplikacji.",
    "mgmtPayloadRulesGetNote": "Pobierz reguły transformacji ładunku.",
    "mgmtPayloadRulesUpdateNote": "Zaktualizuj reguły transformacji ładunku.",
    "mcpToolsTitle": "Narzędzia MCP",
    "mcpToolsDescription": "OmniRoute udostępnia narzędzia {count} za pośrednictwem protokołu Model Context Protocol w celu orkiestracji agentów.",
    "mcpToolsCount": "{count} narzędzia",
    "mcpToolsToc": "Narzędzia MCP",
    "mcpToolsRoutingTitle": "Trasowanie i wykrywanie",
    "mcpToolsRoutingDesc": "Kontrole stanu, zarządzanie kombinacjami, monitorowanie przydziałów, raportowanie kosztów i dostęp do katalogu modeli.",
    "mcpToolsOperationsTitle": "Operacje i strategia",
    "mcpToolsOperationsDesc": "Symulacja trasy, straże budżetowe, zmiana strategii, profile odporności i wskaźniki dostawców.",
    "mcpToolsCacheTitle": "Zarządzanie pamięcią podręczną",
    "mcpToolsCacheDesc": "Przeglądaj statystyki pamięci podręcznej i opróżniaj pamięci podręczne semantyczne lub sygnaturowe.",
    "mcpToolsCompressionTitle": "Silniki kompresyjne",
    "mcpToolsCompressionDesc": "Skonfiguruj kompresję RTK/Brotli, zamień silniki i sprawdź analizę kompresji według kombinacji.",
    "mcpToolsOneProxyTitle": "1Proxy / Tunele",
    "mcpToolsOneProxyDesc": "Zarządzaj wychodzącymi serwerami proxy, zmieniaj domowe adresy IP i sprawdzaj stan serwerów proxy.",
    "mcpToolsMemoryTitle": "Pamięć",
    "mcpToolsMemoryDesc": "Wyszukuj, dodawaj i usuwaj trwałe wpisy w pamięci konwersacyjnej.",
    "mcpToolsSkillsTitle": "Umiejętności",
    "mcpToolsSkillsDesc": "Wyświetlaj, włączaj, wykonuj i monitoruj niestandardowe wykonania umiejętności.",
    "featureAutoComboTitle": "Automatyczne kombi",
    "featureAutoComboText": "Automatycznie twórz zoptymalizowane kombinacje w oparciu o podłączonych dostawców, wzorce użytkowania i możliwości modelu.",
    "featureSearchTitle": "Wyszukiwanie w Internecie",
    "featureSearchText": "Zintegrowana wyszukiwarka internetowa z 5 dostawcami (Serper, Brave, Exa, Tavily, Perplexity), w tym analityka i śledzenie kosztów.",
    "featureMemoryTitle": "System pamięci",
    "featureMemoryText": "Trwała pamięć konwersacyjna z ekstrakcją, wstrzykiwaniem, odzyskiwaniem i podsumowywaniem podczas sesji.",
    "featureSkillsTitle": "Ramy umiejętności",
    "featureSkillsText": "Rozszerzalny system umiejętności z wbudowanymi i niestandardowymi umiejętnościami, wykonywaniem w piaskownicy, przechwytywaniem żądań i wstrzykiwaniem kontekstu.",
    "featureAcpTitle": "Komunikacja agenta",
    "featureAcpText": "Rejestr protokołu komunikacji agenta (ACP) do zarządzania przepływami pracy między agentami i orkiestracją narzędzi.",
    "protocolAcpTitle": "ACP (komunikacja z agentem)",
    "protocolAcpDesc": "Rejestruj agentów i zarządzaj nimi za pośrednictwem rejestru ACP w celu komunikacji między agentami i udostępniania narzędzi.",
    "protocolAcpStep1": "Przejdź do Panelu → Agenci, aby wyświetlić zarejestrowanych agentów ACP.",
    "protocolAcpStep2": "Zarejestruj nowych agentów z możliwościami i konfiguracją punktu końcowego.",
    "protocolAcpStep3": "Użyj narzędzi CLI, aby skonfigurować kanały komunikacji agenta."
  },
  "legal": {
    "privacyPolicy": "Polityka prywatności",
    "termsOfService": "Warunki świadczenia usług",
    "providerConfigurations": "Konfiguracje dostawców",
    "apiKeys": "Klucze API",
    "usageLogs": "Dzienniki użytkowania",
    "applicationSettings": "Ustawienia aplikacji",
    "viewExportAnalytics": "Przeglądaj i eksportuj analizy użytkowania",
    "clearHistory": "Wyczyść historię użytkowania w dowolnym momencie",
    "configureRetention": "Skonfiguruj zasady przechowywania dzienników",
    "backupRestore": "Utwórz kopię zapasową i przywróć bazę danych",
    "privacyMetadataTitle": "Polityka prywatności | OmniRoute",
    "privacyMetadataDescription": "Polityka prywatności routera proxy OmniRoute AI API.",
    "termsMetadataTitle": "Warunki świadczenia usług | OmniRoute",
    "termsMetadataDescription": "Warunki korzystania z routera proxy OmniRoute AI API.",
    "backToHome": "Powrót do domu",
    "lastUpdated": "Ostatnia aktualizacja: {date}",
    "policyLastUpdatedDate": "13 lutego 2026 r",
    "listSeparator": "-",
    "questionsVisit": "Pytania? Odwiedź nasze",
    "githubRepository": "Repozytorium GitHuba",
    "privacySection1Title": "1. Architektura lokalna",
    "privacySection1Text": "OmniRoute zaprojektowano jako aplikację działającą lokalnie. Całe przetwarzanie i przechowywanie danych odbywa się wyłącznie na Twoim komputerze. Nie ma scentralizowanego serwera gromadzącego Twoje dane.",
    "privacySection2Title": "2. Dane, które przechowujemy",
    "privacyDataStoredIn": "Następujące dane są przechowywane lokalnie w",
    "privacyDataProviderConfigurationsDesc": "adresy URL połączeń, typy dostawców i ustawienia priorytetów",
    "privacyDataApiKeysDesc": "szyfrowane i przechowywane lokalnie w celu uwierzytelniania u dostawców sztucznej inteligencji",
    "privacyDataUsageLogsDesc": "liczba żądań, użycie tokena, nazwy modeli, znaczniki czasu i czasy odpowiedzi",
    "privacyDataApplicationSettingsDesc": "preferencje tematyczne, strategia routingu i konfiguracje kombinacji",
    "privacySection3Title": "3. Brak telemetrii",
    "privacySection3Text": "OmniRoute nie zbiera danych telemetrycznych, analiz ani raportów o awariach. Żadne dane nie są przesyłane do nas ani do osób trzecich. Twoje wzorce użytkowania, wywołania API i konfiguracje pozostają całkowicie prywatne.",
    "privacySection4Title": "4. Zewnętrzni dostawcy AI",
    "privacySection4Text": "Gdy wykonujesz wywołania API za pośrednictwem OmniRoute, Twoje żądania są przekazywane do skonfigurowanych dostawców AI (na przykład: OpenAI, Anthropic, Google). Dostawcy ci mają własne zasady ochrony prywatności, które regulują sposób postępowania z Twoimi danymi. Proszę przejrzeć:",
    "privacyOpenAiPolicy": "Polityka prywatności OpenAI",
    "privacyAnthropicPolicy": "Antropiczna polityka prywatności",
    "privacyGooglePolicy": "Polityka prywatności Google",
    "privacySection5Title": "5. Synchronizacja z chmurą (opcjonalnie)",
    "privacySection5Text": "Jeśli włączysz opcjonalną funkcję synchronizacji z chmurą, konfiguracje dostawców i klucze API mogą zostać przesłane do skonfigurowanego punktu końcowego chmury. Ta funkcja jest domyślnie wyłączona i wymaga wyraźnej zgody.",
    "privacySection6Title": "6. Rejestrowanie",
    "privacyLoggingIntro": "Dzienniki żądań można skonfigurować w ustawieniach panelu kontrolnego. Możesz:",
    "privacySection7Title": "7. Twoje prawa",
    "privacySection7TextStart": "Ponieważ wszystkie dane są przechowywane lokalnie, masz pełną kontrolę. W każdej chwili możesz usunąć swoje dane usuwając plik",
    "privacySection7TextEnd": "katalogu lub korzystając z funkcji tworzenia kopii zapasowych i przywracania bazy danych na pulpicie nawigacyjnym.",
    "termsSection1Title": "1. Przegląd",
    "termsSection1Text": "OmniRoute to lokalny router proxy AI API, który działa całkowicie na Twoim komputerze. Kieruje żądania do wielu dostawców AI z równoważeniem obciążenia, przełączaniem awaryjnym i śledzeniem użycia.",
    "termsSection2Title": "2. Obowiązki użytkownika",
    "termsResponsibilityApiKeys": "Ponosisz wyłączną odpowiedzialność za zarządzanie własnymi kluczami API i danymi uwierzytelniającymi dla zewnętrznych dostawców sztucznej inteligencji (OpenAI, Anthropic, Google itp.).",
    "termsResponsibilityCompliance": "Musisz przestrzegać warunków świadczenia usług każdego dostawcy AI, do którego API uzyskujesz dostęp za pośrednictwem OmniRoute.",
    "termsResponsibilitySecurity": "Jesteś odpowiedzialny za bezpieczeństwo swojej lokalnej instalacji OmniRoute, w tym za ustawienie hasła i ograniczenie dostępu do sieci.",
    "termsSection3Title": "3. Jak to działa",
    "termsSection3Text": "OmniRoute działa jako pośrednik proxy. Wywołania API wysyłane do OmniRoute są tłumaczone i przekazywane do skonfigurowanych dostawców AI. OmniRoute nie modyfikuje treści Twoich żądań ani odpowiedzi poza niezbędnym tłumaczeniem protokołu.",
    "termsSection4Title": "4. Przetwarzanie danych",
    "termsDataStoredLocally": "Wszystkie dane są przechowywane lokalnie na Twoim komputerze w bazie danych SQLite.",
    "termsNoTransmission": "OmniRoute nie przesyła żadnych danych do serwerów zewnętrznych, chyba że wyraźnie włączysz funkcje synchronizacji w chmurze.",
    "termsDataLocationText": "Dzienniki użytkowania, klucze API i konfiguracja są przechowywane w",
    "termsSection5Title": "5. Zastrzeżenie",
    "termsSection5Text": "Usługa OmniRoute jest dostarczana w stanie takim, w jakim jest, bez jakiejkolwiek gwarancji. Nie ponosimy odpowiedzialności za jakiekolwiek koszty powstałe w wyniku korzystania z API, zakłóceń w świadczeniu usług lub utraty danych. Zawsze twórz kopie zapasowe swojej konfiguracji.",
    "termsSection6Title": "6. Otwarte źródło",
    "termsSection6Text": "OmniRoute jest oprogramowaniem typu open source. Możesz go przeglądać, modyfikować i rozpowszechniać zgodnie z warunkami licencji."
  },
  "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": "Narzędzia CLI a cele agentów — jaka jest różnica?",
    "comparisonCliToolsLabel": "Strona narzędzi CLI",
    "comparisonCliToolsTitle": "Twoje IDE wysyła żądania poprzez OmniRoute",
    "comparisonCliToolsDesc": "Skonfiguruj Claude Code, Codex, Cursor i inne IDE, aby używać OmniRoute jako podstawowego adresu URL interfejsu API. OmniRoute działa jako serwer proxy, kierując żądania do skonfigurowanych dostawców.",
    "comparisonAgentsLabel": "Ta strona (Cele agenta)",
    "comparisonAgentsTitle": "OmniRoute wysyła żądania do lokalnych narzędzi CLI",
    "comparisonAgentsDesc": "OmniRoute może tworzyć lokalne pliki binarne CLI (claude, codex, goose) jako backendy wykonawcze. Narzędzie CLI przetwarza żądanie przy użyciu własnego uwierzytelnienia i zwraca wynik.",
    "comparisonSummary": "W skrócie: Narzędzia CLI = konfigurujesz narzędzia tak, aby wskazywały na OmniRoute. Cele agentów = OmniRoute używa narzędzi jako punktów końcowych.",
    "agentUseCaseHint": "Może być używany jako cel wykonania poprzez protokół ACP",
    "flowDiagramClient": "Aplikacja kliencka",
    "flowDiagramClientDesc": "SDK, API lub usługa nadrzędna",
    "flowDiagramOmniRoute": "OmniRoute",
    "flowDiagramOmniRouteDesc": "Odbiera żądanie i wybiera cel",
    "flowDiagramSpawn": "Proces spawnowania",
    "flowDiagramSpawnDesc": "Uruchamia plik binarny CLI przez stdio",
    "flowDiagramCli": "Agent CLI",
    "flowDiagramCliDesc": "Procesy z własnym autoryzacją/modelem",
    "fingerprintSettingsHint": "Dopasowanie odcisków palców CLI (ukrywanie żądań jako określonych narzędzi CLI) można skonfigurować w",
    "settingsRoutingLink": "Ustawienia/Trasowanie",
    "openSettings": "Ustawienia",
    "copyRawUrlTitle": "Skopiuj surowy adres URL do schowka",
    "copied": "Skopiowano!",
    "copyUrl": "Skopiuj adres URL",
    "startHere": "Zacznij tutaj",
    "badgeNew": "Nowy",
    "viewOnGithub": "Zobacz na GitHubie",
    "howToUse": "Jak używać",
    "browseAllSkillsOnGithub": "Przeglądaj wszystkie umiejętności w GitHub",
    "apiSkills": "Umiejętności API",
    "cliSkills": "Umiejętności CLI",
    "apiSkillsSubtitle": "__MISSING__:{count} skills — control OmniRoute via REST / HTTP",
    "cliSkillsSubtitle": "__MISSING__:{count} skills — control OmniRoute via the omniroute terminal binary",
    "howToUseStep1": "__MISSING__:Click <bold>{copyUrl}</bold> on the skill you want your agent to know about.",
    "howToUseStep2": "__MISSING__:In your AI agent (Claude, Cursor, Cline…), say:",
    "howToUseStep2Code": "__MISSING__:Use the skill at [pasted-url]",
    "howToUseStep3": "__MISSING__:The agent fetches the SKILL.md and learns OmniRoute's API or CLI — no manual docs needed."
  },
  "cloudAgents": {
    "title": "Agenci w chmurze",
    "description": "Zarządzaj autonomicznymi agentami kodującymi (Jules, Devin, Codex Cloud)",
    "loading": "Ładuję zadania...",
    "aboutTitle": "Informacje o agentach w chmurze",
    "aboutDescription": "Agenci w chmurze to zdalni asystenci kodowania AI, którzy mogą wykonywać zadania autonomicznie. Działają inaczej niż lokalni agenci CLI — wchodzisz z nimi w interakcję poprzez API OmniRoute.",
    "howItWorksTitle": "Jak to działa:",
    "howItWorksDesc": "Utwórz zadanie → Agent analizuje i proponuje plan → Ty zatwierdzasz → Agent wykonuje → Zwracane są wyniki",
    "newTaskTitle": "Utwórz nowe zadanie",
    "newTaskDescription": "Rozpocznij nowe zadanie z agentem w chmurze",
    "selectAgent": "Wybierz Agenta",
    "taskDescription": "Opis zadania",
    "taskDescriptionPlaceholder": "Opisz, co chcesz, aby agent zrobił...",
    "startTask": "Rozpocznij zadanie",
    "tasks": "Zadania",
    "taskDetail": "Szczegóły zadania",
    "noTasks": "Nie ma jeszcze żadnych zadań. Utwórz go, aby rozpocząć.",
    "noTasksTitle": "__MISSING__:No tasks yet",
    "noTasksDesc": "__MISSING__:Create your first task to get started.",
    "tasksTab": "__MISSING__:Tasks",
    "agentsTab": "__MISSING__:Agents",
    "settingsTab": "__MISSING__:Settings",
    "agentsEnabled": "__MISSING__:Enabled",
    "agentsDisabled": "__MISSING__:Disabled",
    "filterAllProviders": "__MISSING__:All Providers",
    "filterAll": "__MISSING__:All",
    "autoRefreshing": "__MISSING__:Auto-refreshing",
    "viewPR": "__MISSING__:View Pull Request",
    "connected": "__MISSING__:Connected",
    "notConnected": "__MISSING__:Not connected",
    "configure": "__MISSING__:Configure",
    "settingsTitle": "__MISSING__:Cloud Agent Settings",
    "settingsDesc": "__MISSING__:Configure local preferences for cloud agents.",
    "settingEnableAgents": "__MISSING__:Enable cloud agents",
    "settingEnableAgentsDesc": "__MISSING__:Allow OmniRoute to orchestrate autonomous coding agents.",
    "settingAutoPR": "__MISSING__:Auto-create PR",
    "settingAutoPRDesc": "__MISSING__:When a task is completed, automatically create a Pull Request with the changes.",
    "settingRequireApproval": "__MISSING__:Require plan approval",
    "settingRequireApprovalDesc": "__MISSING__:Always wait for manual approval before an agent executes a proposed plan.",
    "untitledTask": "Zadanie bez tytułu",
    "created": "Utworzono",
    "conversation": "Rozmowa",
    "result": "Wynik",
    "error": "Błąd",
    "planReady": "Plan gotowy do zatwierdzenia",
    "approvePlan": "Zatwierdź plan",
    "rejectPlan": "Odrzuć i anuluj",
    "sendMessagePlaceholder": "Wyślij wiadomość do agenta...",
    "cancel": "Anuluj",
    "delete": "Usuń",
    "selectTaskPrompt": "Wybierz zadanie, aby wyświetlić szczegóły",
    "statusPending": "Oczekujące",
    "statusRunning": "Bieganie",
    "statusWaitingApproval": "Oczekiwanie na zatwierdzenie",
    "statusCompleted": "Ukończono",
    "statusFailed": "Nie udało się",
    "statusCancelled": "Anulowano",
    "repositoryName": "Nazwa repozytorium",
    "repositoryUrl": "Adres URL repozytorium",
    "branch": "Oddział"
  },
  "templateNames": {
    "simple-chat": "Simple Chat",
    "streaming": "Streaming",
    "system-prompt": "System Prompt",
    "thinking": "Thinking",
    "tool-calling": "Tool Calling",
    "multi-turn": "Multi-turn",
    "vision": "Wizja",
    "schema-coercion": "Przymus schematu"
  },
  "templateDescriptions": {
    "simple-chat": "Basic chat template",
    "streaming": "Streaming template",
    "system-prompt": "System prompt template",
    "thinking": "Thinking template",
    "tool-calling": "Tool calling template",
    "multi-turn": "Multi-turn template",
    "vision": "Szablon multimodalny z wejściem obrazu",
    "schema-coercion": "Wymuszanie strukturalnych danych wyjściowych/JSON"
  },
  "templatePayloads": {
    "simpleChat": {
      "system": "Jesteś pomocnym asystentem AI.",
      "userGreeting": "Witam! Jak mogę Ci dzisiaj pomóc?"
    },
    "streaming": {
      "prompt": "Napisz opowiadanie o"
    },
    "systemPrompt": {
      "question": "Jaki jest sens życia?",
      "systemInstruction": "Podaj przemyślaną, filozoficzną odpowiedź."
    },
    "thinking": {
      "question": "Wyjaśnij obliczenia kwantowe"
    },
    "toolCalling": {
      "cityNameDescription": "Nazwa miasta, dla którego chcesz uzyskać pogodę",
      "toolDescription": "Uzyskaj aktualną pogodę dla danej lokalizacji",
      "userWeather": "Jaka jest pogoda w Tokio?"
    },
    "multiTurn": {
      "system": "Jesteś pomocnym asystentem.",
      "assistantExample": "Chętnie Ci w tym pomogę.",
      "userInitial": "Potrzebuję pomocy",
      "userFollowUp": "Możesz to rozwinąć?"
    }
  },
  "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": "__MISSING__:Loading cache",
    "promptCache": "Prompt Cache (Provider-Side)",
    "semanticCache": "Semantic Cache",
    "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
    "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
    "cachedRequests": "Cached Requests",
    "cachedRequests24h": "Cached Requests (24h)",
    "cacheHitRate": "Cache Hit Rate",
    "cacheRate": "Cache Rate",
    "cacheRateDesc": "of total requests",
    "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": "__MISSING__:Provider",
    "tableModel": "__MISSING__:Model",
    "performanceTitle": "__MISSING__:Performance",
    "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
    "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
    "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
    "searchEntries": "Search entries...",
    "search": "Search",
    "loading": "Loading...",
    "entriesLoadError": "Failed to load semantic cache entries.",
    "noEntries": "No cache entries found",
    "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
    "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
    "signature": "Signature",
    "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": "Powtórka rozumowania",
    "reasoningCacheDesc": "Zachowuje myślenie modelowe dla wieloobrotowych przepływów wywoływania narzędzi",
    "reasoningEntries": "Aktywne wpisy",
    "reasoningReplayRate": "Częstotliwość powtórzeń",
    "reasoningReplays": "Suma powtórek",
    "reasoningCharsCached": "Znaki zapisane w pamięci podręcznej",
    "reasoningMisses": "Brak pamięci podręcznej",
    "reasoningByProvider": "Przez Dostawcę",
    "reasoningByModel": "Według modelu",
    "reasoningRecentEntries": "Najnowsze wpisy",
    "reasoningToolCallId": "Identyfikator wywołania narzędzia",
    "reasoningChars": "Postacie",
    "reasoningAge": "Wiek",
    "reasoningView": "Zobacz",
    "reasoningDetail": "Treść uzasadnienia",
    "reasoningBehavior": "Zachowanie",
    "reasoningBehaviorCapture": "Przechwytuje treść uzasadnienia z odpowiedzi przesyłanych strumieniowo",
    "reasoningBehaviorReplay": "Ponowny zastrzyk w następnej turze, gdy klient go pominie",
    "reasoningBehaviorFallback": "Na pierwszym miejscu pamięć z rezerwowym SQLite do odzyskiwania po awarii",
    "reasoningBehaviorTtl": "TTL: 2 godziny | Maksymalna liczba wpisów: 2000 (pamięć)",
    "reasoningBehaviorModels": "Obsługiwane: DeepSeek, Kimi, Qwen-Thinking, GLM",
    "reasoningClearAll": "Wyczyść pamięć podręczną rozumowania",
    "reasoningClearSuccess": "Wyczyszczono {count} wpisy pamięci podręcznej wnioskowania",
    "reasoningClearError": "Nie udało się wyczyścić pamięci podręcznej rozumowania",
    "reasoningNoData": "Nie zapisano jeszcze żadnych wpisów uzasadniających. Wpisy pojawiają się, gdy myślące modele korzystają z wywoływania narzędzi.",
    "cachePerformanceRetry": "Spróbuj ponownie",
    "cachePerformanceHitRate": "Współczynnik trafień",
    "cachePerformanceAvgLatency": "Średnie opóźnienie (ms)",
    "cachePerformanceP95Latency": "p95 Opóźnienie (ms)",
    "retry": "Spróbuj ponownie",
    "reasoningAvgChars": "Średnie znaki",
    "tableShare": "__MISSING__:Share",
    "justNow": "__MISSING__:just now",
    "minutesAgo": "__MISSING__:{minutes}m ago",
    "hoursAgo": "__MISSING__:{hours}h ago",
    "daysAgo": "__MISSING__:{days}d ago",
    "entries": "Entries"
  },
  "proxyConfigModal": {
    "levelGlobal": "Globalny",
    "levelProvider": "Dostawca",
    "levelCombo": "Kombinacja",
    "levelKey": "Klucz",
    "levelDirect": "Bezpośrednio (bez proxy)",
    "titleGlobal": "Globalna konfiguracja serwera proxy",
    "titleLevel": "{level} Serwer proxy — {label}",
    "loading": "Ładowanie konfiguracji proxy...",
    "inheritingFrom": "Dziedziczenie od",
    "source": "Źródło",
    "savedProxy": "Zapisany serwer proxy",
    "custom": "Niestandardowe",
    "selectSavedProxyPlaceholder": "Wybierz zapisany serwer proxy...",
    "proxyType": "Typ proxy",
    "host": "Gospodarz",
    "hostPlaceholder": "1.2.3.4 lub proxy.example.com",
    "port": "Portu",
    "authOptional": "Uwierzytelnianie (opcjonalnie)",
    "username": "Nazwa użytkownika",
    "usernamePlaceholder": "Nazwa użytkownika",
    "password": "Hasło",
    "passwordPlaceholder": "Hasło",
    "connected": "Połączono",
    "ip": "Adres IP:",
    "connectionFailed": "Połączenie nie powiodło się",
    "testConnection": "Połączenie testowe",
    "clear": "Jasne",
    "cancel": "Anuluj",
    "save": "Zapisz",
    "errorSelectSavedProxy": "Najpierw wybierz zapisany serwer proxy.",
    "errorSelectProxyFirst": "Najpierw wybierz serwer proxy.",
    "errorProxyNotFound": "Nie znaleziono wybranego serwera proxy.",
    "errorClearSavedProxy": "Nie udało się wyczyścić zapisanego serwera proxy",
    "errorSaveProxy": "Nie udało się zapisać konfiguracji proxy",
    "errorClearProxy": "Nie udało się wyczyścić konfiguracji proxy",
    "errorSocks5Hidden": "SOCKS5 jest skonfigurowany, ale ukryty, ponieważ NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
  },
  "oauthModal": {
    "title": "Połącz {providerName}",
    "waiting": "Oczekiwanie na autoryzację",
    "completeAuthInPopup": "Pełna autoryzacja w wyskakującym okienku.",
    "popupClosedHint": "Jeśli wyskakujące okienko zostanie zamknięte bez przekierowania z powrotem (np. Qoder), to okno dialogowe automatycznie przełączy się w tryb ręcznego wprowadzania adresu URL.",
    "popupBlocked": "Wyskakujące okienko zablokowane? Wprowadź adres URL ręcznie",
    "deviceCodeVisitUrl": "Odwiedź poniższy adres URL i wprowadź kod:",
    "deviceCodeVerificationUrl": "Adres URL weryfikacji",
    "deviceCodeYourCode": "Twój kod",
    "deviceCodeWaiting": "Oczekiwanie na autoryzację...",
    "googleOAuthWarning": "Dostęp zdalny + Google OAuth: domyślne dane uwierzytelniające akceptują tylko przekierowania do <code>localhost</code>. Po autoryzacji Twoja przeglądarka spróbuje otworzyć <code>localhost</code> — skopiuj cały adres URL i wklej go poniżej. Aby móc korzystać w pełni zdalnie bez tej czynności ręcznej, <a>skonfiguruj własne poświadczenia OAuth</a>.",
    "remoteAccessInfo": "Dostęp zdalny: Ponieważ uzyskujesz zdalny dostęp do OmniRoute, po autoryzacji zobaczysz stronę błędu (nie znaleziono hosta lokalnego). Jest to normalne — po prostu skopiuj pełny adres URL z paska adresu przeglądarki i wklej go poniżej.",
    "step1OpenUrl": "Krok 1: Otwórz ten adres URL w swojej przeglądarce",
    "copy": "Kopiuj",
    "step2PasteCallback": "Krok 2: Wklej tutaj adres URL wywołania zwrotnego lub kod autoryzacyjny",
    "step2Hint": "Po autoryzacji wklej pełny adres URL wywołania zwrotnego. W przypadku Claude Code i Cline możesz także wkleić kod uwierzytelniający bezpośrednio, np. <code>kod#stan</code>.",
    "connect": "Połącz",
    "cancel": "Anuluj",
    "success": "Połączenie pomyślne!",
    "successMessage": "Twoje konto {providerName} zostało połączone.",
    "done": "Gotowe",
    "error": "Połączenie nie powiodło się",
    "tryAgain": "Spróbuj ponownie"
  },
  "cursorAuthModal": {
    "title": "Podłącz kursor IDE",
    "autoDetecting": "Automatyczne wykrywanie tokenów...",
    "readingFromCursor": "Czytanie z Cursor IDE lub kursora-agenta",
    "tokensAutoDetected": "Tokeny pomyślnie wykryte automatycznie w Cursor IDE!",
    "cursorNotDetected": "Nie wykryto IDE kursora. Proszę ręcznie wkleić swój token.",
    "accessToken": "Token dostępu",
    "required": "*",
    "accessTokenPlaceholder": "Token dostępu zostanie automatycznie uzupełniony...",
    "machineId": "Identyfikator maszyny",
    "optional": "(opcjonalnie)",
    "machineIdPlaceholder": "Identyfikator maszyny zostanie automatycznie uzupełniony...",
    "importing": "Importowanie...",
    "importToken": "Importuj token",
    "cancel": "Anuluj",
    "errorAutoDetect": "Nie można automatycznie wykryć tokenów",
    "errorAutoDetectFailed": "Nie udało się automatycznie wykryć tokenów",
    "errorEnterToken": "Proszę wprowadzić token dostępu",
    "errorImportFailed": "Import nie powiódł się"
  },
  "pricingModal": {
    "title": "Konfiguracja cen",
    "loading": "Ładowanie danych cenowych...",
    "pricingRatesFormat": "Format stawek cenowych",
    "ratesDescription": "Wszystkie stawki podane są w <strong>dolarach za milion tokenów</strong> ($/1 milion tokenów). Przykład: Stawka wejściowa wynosząca 2,50 oznacza 2,50 USD za 1 000 000 tokenów wejściowych.",
    "model": "Modelka",
    "input": "Wejście",
    "output": "Wyjście",
    "cached": "Buforowane",
    "reasoning": "Rozumowanie",
    "cacheCreation": "Tworzenie pamięci podręcznej",
    "noPricingData": "Brak danych o cenach",
    "resetToDefaults": "Przywróć ustawienia domyślne",
    "cancel": "Anuluj",
    "saving": "Zapisywanie...",
    "saveChanges": "Zapisz zmiany",
    "resetConfirm": "Przywrócić wszystkie ceny do wartości domyślnych? Tego nie można cofnąć.",
    "errorSaveFailed": "Nie udało się zapisać cen",
    "errorResetFailed": "Nie udało się zresetować cen"
  },
  "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": "Wpisz",
    "labelHost": "Gospodarz",
    "labelPort": "Portu",
    "labelUsername": "Nazwa użytkownika",
    "labelPassword": "Hasło",
    "labelRegion": "Region",
    "labelStatus": "Stan",
    "labelNotes": "Notatki",
    "usernamePlaceholderEdit": "Pozostaw puste, aby zachować bieżącą nazwę użytkownika",
    "passwordPlaceholderEdit": "Pozostaw puste, aby zachować aktualne hasło",
    "statusActive": "Aktywny",
    "statusInactive": "Nieaktywny",
    "cancel": "Anuluj",
    "save": "Zapisz",
    "bulkModalTitle": "Zbiorcze przypisanie serwera proxy",
    "bulkLabelScope": "Zakres",
    "bulkLabelProxy": "Pełnomocnik",
    "bulkClearAssignment": "(Wyczyść przypisanie)",
    "bulkLabelScopeIds": "Identyfikatory zakresów (oddzielone przecinkami lub znakami nowej linii)",
    "bulkScopeIdsPlaceholder": "dostawca-openai, dostawca-antropiczny",
    "bulkApply": "Zastosuj",
    "labelScope": "__MISSING__:Scope",
    "labelProxy": "__MISSING__:Proxy",
    "scopeGlobal": "__MISSING__:global",
    "scopeProvider": "__MISSING__:provider",
    "scopeAccount": "__MISSING__:account",
    "scopeCombo": "__MISSING__:combo",
    "bulkImportErrorMissingName": "Brak NAZWY",
    "bulkImportErrorMissingHost": "Brakuje HOSTA",
    "bulkImportErrorInvalidPort": "Nieprawidłowy PORT (musi to być 1-65535)",
    "bulkImportErrorInvalidType": "Nieprawidłowy TYP (użyj http, https lub skarpetki5)",
    "bulkImportErrorInvalidStatus": "Nieprawidłowy STATUS (użyj aktywnego lub nieaktywnego)",
    "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}% sukcesu",
    "avgLatency": "Średnia {latency}ms",
    "assignmentsCount": "Przydziały: {count}",
    "noData": "No Data",
    "testSuccess": "✓ {ip}",
    "testLatency": "{latency}ms",
    "testFailure": "✗ {error}",
    "bulkImport": "Import zbiorczy",
    "bulkImportTitle": "Masowy import proxy",
    "bulkImportDescription": "Wklej profile proxy w formacie rozdzielanym pionową kreską. Jeden serwer proxy na linię. Istniejące serwery proxy (ten sam host + port) zostaną zaktualizowane.",
    "bulkImportParse": "Przeanalizuj",
    "bulkImportImport": "Importuj {count} proxy",
    "bulkImportImporting": "Importowanie...",
    "bulkImportParsed": "Przeanalizowano serwery proxy {count}",
    "bulkImportSkipped": "{count} wiersze zostały pominięte",
    "bulkImportParseErrors": "{count} błędy",
    "bulkImportNoValidEntries": "Nie znaleziono prawidłowych wpisów. Sprawdź format i spróbuj ponownie.",
    "bulkImportSuccess": "Import zakończony: {created} utworzono, {updated} zaktualizowano, {failed} nie powiodło się",
    "bulkImportErrorLine": "Linia {line}: {reason}",
    "bulkImportMaxExceeded": "Maksymalnie 100 serwerów proxy na import",
    "bulkImportPreview": "Podgląd",
    "clearAssignment": "(jasne przypisanie)",
    "bulkProxyAssignment": "Zbiorcze przypisanie serwera proxy"
  },
  "playground": {
    "title": "Title",
    "description": "Description",
    "endpoint": "Endpoint",
    "provider": "Provider",
    "model": "Model",
    "accountKey": "Account Key",
    "autoAccounts": "Automatycznie ({count} kont)",
    "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": "Wygenerowano {count} obrazów",
    "generatedImage": "Wygenerowany obraz {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": "Czat konwersacyjny",
    "clearChat": "Wyczyść czat",
    "typeMessagePlaceholder": "Wpisz wiadomość... (Shift+Enter, aby wprowadzić nową linię)",
    "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": "__MISSING__:Endpoint",
    "apiKey": "__MISSING__:API Key",
    "model": "__MISSING__:Model",
    "voice": "__MISSING__:Voice",
    "speed": "__MISSING__:Speed",
    "input": "__MISSING__:Input",
    "url": "__MISSING__:URL",
    "format": "__MISSING__:Format",
    "depth": "__MISSING__:Depth",
    "copyCurl": "__MISSING__:Copy cURL",
    "copied": "__MISSING__:Copied!",
    "run": "__MISSING__:Run",
    "running": "__MISSING__:Running...",
    "response": "__MISSING__:Response",
    "tunnel": "__MISSING__:Tunnel",
    "send": "__MISSING__:Send",
    "selectKey": "__MISSING__:Select key",
    "testLabel": "__MISSING__:Test",
    "expandTest": "__MISSING__:Expand test",
    "collapseTest": "__MISSING__:Collapse test",
    "revealKey": "__MISSING__:Reveal key",
    "hideKey": "__MISSING__:Hide key",
    "download": "__MISSING__:Download",
    "play": "__MISSING__:Play",
    "query": "__MISSING__:Query",
    "numResults": "__MISSING__:Max results",
    "prompt": "__MISSING__:Prompt",
    "size": "__MISSING__:Size",
    "duration": "__MISSING__:Duration",
    "question": "__MISSING__:Question",
    "audioFile": "__MISSING__:Audio file",
    "noKeysFound": "__MISSING__:No API keys found. Add one in the Keys section.",
    "exampleLabel": "__MISSING__:Example",
    "latency": "__MISSING__:{ms}ms",
    "statsLine": "__MISSING__:{ms}ms · {tokensIn} in / {tokensOut} out tokens"
  },
  "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": "Kompresja",
      "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": "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": "Beta — podgląd interfejsu użytkownika.",
    "betaConfigSavedPrefix": "Konfiguracja została zapisana w",
    "betaConfigSavedSuffix": "(jeszcze nie utrwalony na serwerze). Egzekwowanie limitu na żądanie nie jest jeszcze podłączone do potoku proxy. Na tym ekranie możesz zaprojektować i wizualizować podział kwot; rzeczywiste egzekwowanie nastąpi w przyszłej iteracji z trwałością DB i przechwytywaniem połączeń wychodzących.",
    "policyLabel": "Polityka:",
    "resetIn": "zresetuj w",
    "quotaTotal": "łącznie"
  },
  "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"
  }
}
