{
  "common": {
    "save": "Spara",
    "cancel": "Avbryt",
    "delete": "Ta bort",
    "loading": "Laddar...",
    "error": "Ett fel uppstod",
    "success": "Framgång",
    "confirm": "Är du säker?",
    "refresh": "Uppdatera",
    "close": "Stäng",
    "add": "Lägg till",
    "edit": "Redigera",
    "search": "Sök",
    "back": "Tillbaka",
    "next": "Nästa",
    "submit": "Skicka in",
    "reset": "Återställ",
    "copy": "Kopiera",
    "copied": "Kopierade!",
    "enabled": "Aktiverad",
    "disabled": "Inaktiverad",
    "active": "Aktiv",
    "inactive": "Inaktiv",
    "noData": "Inga data tillgängliga",
    "nothingHere": "Nothing here yet",
    "configure": "Konfigurera",
    "manage": "Hantera",
    "name": "Namn",
    "actions": "Åtgärder",
    "status": "Status",
    "type": "Typ",
    "model": "Modell",
    "models": "modeller",
    "provider": "Leverantör",
    "account": "konto",
    "time": "Tid",
    "details": "Detaljer",
    "created": "Skapad",
    "lastUsed": "Last Refreshed",
    "loadMore": "Ladda mer",
    "noResults": "Inga resultat hittades",
    "reloadPage": "Ladda om sidan",
    "connected": "Ansluten",
    "disconnected": "Frånkopplad",
    "notConfigured": "Ej konfigurerad",
    "testConnection": "Testa anslutningen",
    "enable": "Aktivera",
    "disable": "Inaktivera",
    "columns": "Kolumner",
    "newest": "Nyaste",
    "oldest": "Äldst",
    "all": "Alla",
    "none": "Inga",
    "yes": "Ja",
    "no": "Nej",
    "on": "__MISSING__:ON",
    "off": "__MISSING__:OFF",
    "warning": "Varning",
    "note": "Obs",
    "free": "Gratis",
    "skipToContent": "Hoppa till innehållet",
    "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
    "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
    "accept": "Acceptera",
    "accountId": "Konto-ID",
    "alias": "Alias",
    "apiKeyId": "API-nyckel-ID",
    "apiKeyName": "API-nyckelnamn",
    "apiKeySecret": "API-nyckelhemlighet",
    "authorization": "Auktorisation",
    "content-type": "Innehållstyp",
    "content-length": "Innehållslängd",
    "cookie": "Cookie",
    "file": "Arkiv",
    "host": "Värd",
    "id": "ID",
    "import": "Importera",
    "limit": "Begränsa",
    "offset": "Offset",
    "open": "Öppna",
    "origin": "Ursprung",
    "promptTokens": "Fråga tokens",
    "completionTokens": "Kompletteringstokens",
    "totalTokens": "Totala tokens",
    "rawModel": "Rå modell",
    "scope": "Omfattning",
    "skill": "Skicklighet",
    "sortBy": "Sortera efter",
    "sortOrder": "Sorteringsordning",
    "tab": "Tab",
    "text": "Text",
    "textarea": "Textområde",
    "tool": "Verktyg",
    "toolId": "Verktygs-ID",
    "web": "Webb",
    "whereUsed": "Där den används",
    "whitelist": "Vitlista",
    "blacklist": "Svartlista",
    "resolve": "Lös",
    "force": "Force",
    "base64url": "Base64 URL",
    "hex": "Hex",
    "range": "Räckvidd",
    "component": "Komponent",
    "redirect_uri": "Omdirigera URI",
    "idempotency-key": "Idempotensnyckel",
    "error_description": "Felbeskrivning",
    "code": "Kod",
    "compatible": "Kompatibel",
    "chat-completions": "Chattavslut",
    "oauth": "OAuth",
    "auth_token": "Auth Token",
    "crypto": "Krypto",
    "hours": "Timmar",
    "selfsigned": "Självsignerad",
    "proxy_id": "Proxy-ID",
    "proxyId": "Proxy-ID",
    "connectionId": "Anslutnings-ID",
    "resolveConnectionId": "Lös anslutnings-ID",
    "resolve_connection_id": "Lös anslutnings-ID",
    "scope_id": "Omfattning ID",
    "scopeId": "Omfattning ID",
    "jwtSecret": "JWT hemlighet",
    "keytar": "Keytar",
    "better-sqlite3": "bättre-sqlite3",
    "undici": "undici",
    "builder-id": "Byggar-ID",
    "musicDesc": "Musikbeskrivning",
    "musicGeneration": "Musikgeneration",
    "idc": "IDC",
    "cloud-status-changed": "Molnstatus ändrad",
    "where_used": "Där den används",
    "windowMs": "Fönster (ms)",
    "social-github": "GitHub",
    "social-google": "Google",
    "TOOL_ALLOWLIST": "Tillståndslista för verktyg",
    "TOOL_DENYLIST": "Verktyg Denylist",
    "Failed to save pricing": "Det gick inte att spara pris",
    "Failed to reset pricing": "Det gick inte att återställa prissättningen",
    "apikey": "API-nyckel",
    "http": "HTTP",
    "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": "Molnagentleverantörer",
    "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": "Endast gratis",
    "addFirstProvider": "Lägg till din första leverantör",
    "addFirstProviderDesc": "Anslut en AI-leverantör för att börja dirigera förfrågningar via OmniRoute. Du kan använda kostnadsfria leverantörer, API-nycklar eller OAuth-konton.",
    "learnMore": "Läs mer",
    "includeDomains": "Include Domains",
    "promptCache": "Prompt Cache",
    "cloudConnected": "Cloud Connected",
    "deleteChain": "Delete Chain",
    "chatPathPlaceholder": "Chat Path Placeholder",
    "databasePath": "Database Path",
    "usingLocalServer": "Using Local Server",
    "globalComboConfig": "Global Combo Config",
    "backupFailed": "Backup Failed",
    "tabProtocols": "Tab Protocols",
    "continue": "Continue",
    "categorySearch": "Category Search",
    "rateLimitStatus": "Rate Limit Status",
    "repairEnvSuccess": "Repair Env Success",
    "nameRequired": "Name Required",
    "country": "Country",
    "trackMetricsDesc": "Track Metrics Desc",
    "durationSecondsShort": "Duration Seconds Short",
    "formatConverterDescription": "Format Converter Description",
    "cloudBenefitAccess": "Cloud Benefit Access",
    "maxRetries": "Max Retries",
    "queueTimeout": "Queue Timeout",
    "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": "Gratis leverantörer",
    "freeTierLabel": "Gratis nivå tillgänglig",
    "freeTierProvidersDesc": "Leverantörer med gratis nivåer - vissa kräver en API-nyckelregistrering, andra behöver inga referenser alls.",
    "clearCache": "Clear Cache",
    "reqs": "Reqs",
    "addAnthropicCompatible": "Add Anthropic Compatible",
    "apiKeyProviders": "Api Key Providers",
    "tabsAria": "Tabs Aria",
    "resetting": "Resetting",
    "millisecondsAbbr": "Milliseconds Abbr",
    "backupReasonPreRestore": "Backup Reason Pre Restore",
    "disableCloud": "Disable Cloud",
    "newProviderNameAria": "New Provider Name Aria",
    "passwordsMismatch": "Passwords Mismatch",
    "a2aQuickStartStep3": "A2A Quick Start Step3",
    "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
    "failedAddProvider": "Failed Add Provider",
    "addAtLeastOneProvider": "Add At Least One Provider",
    "reasonSeparator": "Reason Separator",
    "zedImporting": "Zed Importing",
    "confirmPasswordPlaceholder": "Confirm Password Placeholder",
    "whatYouGet": "What You Get",
    "signatureSession": "Signature Session",
    "errorCountNoCode": "Error Count No Code",
    "testing": "Testing",
    "providersCommaSeparated": "Providers Comma Separated",
    "exportDatabase": "Export Database",
    "hitRate": "Hit Rate",
    "completionsLegacy": "Completions Legacy",
    "removeModel": "Remove Model",
    "timeRangeDay": "Time Range Day",
    "cloudRequestFailed": "Cloud Request Failed",
    "updatedAt": "Updated At",
    "monitoredProvidersHint": "Monitored Providers Hint",
    "connectionSuccessful": "Connection Successful",
    "latencyP50": "Latency P50",
    "logsDeleted": "Logs Deleted",
    "chatTester": "Chat Tester",
    "safeSearchOff": "Safe Search Off",
    "nameHint": "Name Hint",
    "debugToggle": "Debug Toggle",
    "embedding": "Embedding",
    "issuesLabel": "Issues Label",
    "optionAny": "Option Any",
    "maxNestingDepth": "Max Nesting Depth",
    "rerank": "Rerank",
    "checking": "Checking",
    "getStarted": "Get Started",
    "restoreSuccess": "Restore Success",
    "issuesDetected": "Issues Detected",
    "signatureCache": "Signature Cache",
    "modelLockouts": "Model Lockouts",
    "usingCloudProxy": "Using Cloud Proxy",
    "loadingHealth": "Loading Health",
    "providerOverrides": "Provider Overrides",
    "audioTranscriptionDesc": "Audio Transcription Desc",
    "learnedFromHeaders": "Learned From Headers",
    "totalRequests": "Total Requests",
    "cloudUnstableNote": "Cloud Unstable Note",
    "gamificationAdmin": "Gamification Admin",
    "monitorAnomaliesAndHealth": "Övervaka anomalier och systemtillstånd",
    "flaggedAnomalies": "Flaggade anomalier",
    "noAnomaliesDetected": "Inga anomalier upptäcktes",
    "apiKey": "API-nyckel",
    "xpLastHour": "XP (1h)",
    "zScore": "Z-poäng",
    "tokensCommunityServers": "Community-servrar",
    "tokensServerNamePlaceholder": "Servernamn",
    "tokensApiKeyPlaceholder": "API-nyckel",
    "tokensTokenBalance": "Tokensaldo",
    "tokensSendTokens": "Skicka tokens",
    "tokensRecipientApiKeyId": "Recipient API Key ID",
    "tokensRecipientApiKeyIdPlaceholder": "Ange mottagarens API-nyckel-ID",
    "tokensReasonOptional": "Orsak (valfritt)",
    "tokensReasonPlaceholder": "t.ex. bonus, belöning",
    "tokensTransactionHistory": "Transaktionshistorik",
    "tokensNoTransactionsYet": "Inga transaktioner ännu",
    "tokensInviteCodes": "Inbjudningskoder",
    "tokensMaxUses": "Max användningsområden",
    "tokensRedeemCode": "Lös in kod",
    "tokensRedeemCodePlaceholder": "Ange inbjudningskoden",
    "tokensYourActiveInvites": "Dina aktiva inbjudningar",
    "tierCoverageTitle": "Tier täckning",
    "tierCoverageSubtitle": "Leverantörer konfigurerade per reservnivå",
    "batchDetailCopyId": "Kopiera ID",
    "batchDetailClose": "Stäng",
    "batchDetailEndpoint": "Slutpunkt",
    "batchDetailModel": "Modell",
    "batchDetailWindow": "Fönster",
    "batchDetailCreated": "Skapad",
    "providerTopologyEmpty": "Inga leverantörer anslutna än",
    "badgeToastUnlocked": "Märket upplåst!",
    "batchListSearchPlaceholder": "Sök efter ID, slutpunkt, modell...",
    "batchListDeleteAllCompletedTitle": "Ta bort alla slutförda batcher",
    "batchListBatchesTable": "Partier",
    "changelogViewerLoading": "Laddar ändringslogg från GitHub...",
    "profileLoading": "Laddar profil...",
    "profileHowToEarn": "Hur man tjänar",
    "bootstrapBannerDismiss": "Avvisa",
    "batchListDeleteBatchTitle": "Ta bort batch och dess filer",
    "leaderboardYourRank": "Din rang",
    "leaderboardLoading": "Laddar leaderboard...",
    "batchFileDetailCopyId": "Kopiera ID",
    "batchFileDetailClose": "Stäng",
    "batchFileDetailFailedToLoad": "Det gick inte att ladda filinnehållet",
    "batchFilesListSearchPlaceholder": "Sök med ID eller filnamn...",
    "batchFilesListFilesTable": "Filer",
    "batchPageLoadingMore": "Läser in mer...",
    "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": "Hem",
    "dashboard": "Instrumentpanel",
    "providers": "Leverantörer",
    "combos": "Combos",
    "usage": "Användning",
    "analytics": "Analytics",
    "costs": "Kostnader",
    "health": "Hälsa",
    "proxy": "Proxy",
    "limits": "Gränser och kvoter",
    "cliTools": "CLI-verktyg",
    "media": "Media",
    "settings": "Inställningar",
    "translator": "Översättare",
    "playground": "Lekplats",
    "searchTools": "Search Tools",
    "agents": "Agenter",
    "cloudAgents": "Molnagenter",
    "memory": "Memory",
    "skills": "Skills",
    "omniSkills": "OmniSkills",
    "agentSkills": "AgentSkills",
    "docs": "Dokument",
    "issues": "frågor",
    "endpoints": "Ändpunkter",
    "endpointsSubtitle": "Dina AI-anslutningsadresser",
    "apiManager": "API-hanterare",
    "apiManagerSubtitle": "Hantera API-nycklar och åtkomst",
    "embeddedServices": "__MISSING__:Embedded Services",
    "embeddedServicesSubtitle": "__MISSING__:Manage local proxy services",
    "logs": "Loggar",
    "webhooks": "Webhooks",
    "webhooksSubtitle": "Få besked om händelser",
    "combosSubtitle": "Gruppleverantörer för failover",
    "batchSubtitle": "Behandla flera förfrågningar",
    "contextCavemanSubtitle": "Snabb komprimering",
    "contextRtkSubtitle": "Utgångsfiltrering",
    "auditLog": "Revisionslogg",
    "shutdown": "Avstängning",
    "restart": "Starta om",
    "shutdownConfirm": "Stänga av OmniRoute?",
    "restartConfirm": "Starta om OmniRoute?",
    "version": "v{version}",
    "debug": "Felsök",
    "system": "System",
    "help": "Hjälp",
    "primarySection": "Main",
    "cliSection": "CLI",
    "debugSection": "Debug",
    "systemSection": "System",
    "helpSection": "Help",
    "serverDisconnected": "Server frånkopplad",
    "serverDisconnectedMsg": "Proxyservern har stoppats eller startar om.",
    "expandSidebar": "Expandera sidofältet",
    "collapseSidebar": "Dölj sidofältet",
    "themes": "Themes",
    "presetColors": "Popular colors",
    "createTheme": "Create theme",
    "chooseColor": "Pick one color",
    "themeCoral": "Coral",
    "themeBlue": "Blue",
    "themeRed": "Red",
    "themeGreen": "Green",
    "themeViolet": "Violet",
    "themeOrange": "Orange",
    "themeCyan": "Cyan",
    "cliToolsShort": "Verktyg",
    "cache": "Cache",
    "cacheShort": "Cache",
    "batch": "Batch Jobs",
    "themeSystem": "Theme System",
    "whitelabelingDesc": "Whitelabeling Desc",
    "switchThemes": "Switch Themes",
    "themeAccentDesc": "Theme Accent Desc",
    "uploadFavicon": "Upload Favicon",
    "themeDark": "Theme Dark",
    "customLogoDesc": "Custom Logo Desc",
    "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
    "themeAccent": "Theme Accent",
    "resetFavicon": "Reset Favicon",
    "whitelabeling": "Whitelabeling",
    "darkMode": "Dark Mode",
    "uploadLogo": "Upload Logo",
    "themeLight": "Theme Light",
    "appName": "App Name",
    "appNameDesc": "App Name Desc",
    "resetLogo": "Reset Logo",
    "customFavicon": "Custom Favicon",
    "hideHealthLogs": "Hide Health Logs",
    "customLogo": "Custom Logo",
    "appearance": "Appearance",
    "themeSelectionAria": "Theme Selection Aria",
    "themeCreate": "Theme Create",
    "customFaviconDesc": "Custom Favicon Desc",
    "logoPreview": "Logo Preview",
    "themeCustom": "Theme Custom",
    "hideHealthLogsDesc": "Hide Health Logs Desc",
    "faviconPreview": "Favicon Preview",
    "changelog": "Changelog",
    "contextSection": "Context & Cache",
    "contextCaveman": "Caveman",
    "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": "A2A-revision",
    "settingsGeneral": "General",
    "settingsAppearance": "Appearance",
    "settingsAi": "AI Settings",
    "settingsSecurity": "Security",
    "settingsFeatureFlags": "Funktionsflaggor",
    "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": "Växla systemfunktioner",
    "settingsSidebar": "Sidebar",
    "settingsSidebarSubtitle": "Customize sidebar layout",
    "settingsAuthzSubtitle": "__MISSING__:Route inventory and bypass policy",
    "docsSubtitle": "Documentation",
    "issuesSubtitle": "Report a bug",
    "changelogSubtitle": "Release notes"
  },
  "webhooks": {
    "title": "Webhooks",
    "description": "Konfigurera HTTP-återuppringningar för systemhändelser.",
    "configuredWebhooks": "Konfigurerade Webhooks",
    "configuredWebhooksDesc": "Hantera leveransslutpunkter, prenumererade händelser, status och testsändningar.",
    "addWebhook": "Lägg till Webhook",
    "editWebhook": "Redigera Webhook",
    "name": "Namn",
    "namePlaceholder": "Produktionsövervakning",
    "unnamedWebhook": "Namnlös webhook",
    "url": "Endpoint URL",
    "events": "Händelser",
    "allEvents": "Alla evenemang",
    "secret": "Hemligt",
    "secretPlaceholder": "Lämna tomt för att automatiskt generera en hemlighet",
    "secretEditPlaceholder": "Lämna tomt för att behålla den aktuella hemligheten",
    "status": "Status",
    "active": "Aktiv",
    "inactive": "Inaktiv",
    "errored": "Fel",
    "total": "Totalt",
    "lastTriggered": "Senast utlöst",
    "actions": "Åtgärder",
    "enabled": "Aktiverad",
    "enabledDesc": "Inaktiverade webhooks förblir sparade men tar inte emot leveranser.",
    "refresh": "Uppdatera",
    "loading": "Laddar webhooks...",
    "never": "Aldrig",
    "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
    "testWebhook": "Skicka test",
    "testSuccess": "Testwebhook skickades.",
    "testFailed": "Testa webhook misslyckades.",
    "saveSuccess": "Webhook har sparats.",
    "saveFailed": "Det gick inte att spara webhook.",
    "loadFailed": "Det gick inte att läsa in webhooks.",
    "delete": "Ta bort",
    "deleteConfirm": "Är du säker på att du vill ta bort denna webhook?",
    "deleteSuccess": "Webhook har tagits bort.",
    "deleteFailed": "Det gick inte att ta bort webhook.",
    "edit": "Redigera",
    "enable": "Aktivera",
    "disable": "Inaktivera",
    "noWebhooks": "Inga webhooks har konfigurerats ännu.",
    "signatureTitle": "Webhook signaturer",
    "signatureDescription": "Varje leverans inkluderar en X-Webhook-Signature-header signerad med HMAC-SHA256 med webhook-hemligheten. Verifiera signaturen innan du litar på nyttolasten.",
    "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": "Revision",
    "auditDescription": "Granska efterlevnadshändelser och MCP-verktygsanrop från en operativ vy.",
    "complianceTab": "Efterlevnad",
    "mcpTab": "MCP-revision",
    "title": "Efterlevnadsrevision",
    "description": "Policy-, åtkomst-, leverantörs- och säkerhetshändelser som registreras av granskningsloggen för efterlevnad.",
    "eventType": "Händelsetyp",
    "eventTypePlaceholder": "Filtrera efter åtgärd eller händelsetyp",
    "severity": "Allvarlighet",
    "allSeverities": "Alla svårighetsgrader",
    "info": "Info",
    "warning": "Varning",
    "critical": "Kritisk",
    "sourceIp": "Källa IP",
    "userOrKey": "Användare / nyckel",
    "action": "Åtgärd",
    "result": "Resultat",
    "details": "Detaljer",
    "timestamp": "Tidsstämpel",
    "from": "Från",
    "to": "Till",
    "refresh": "Uppdatera",
    "export": "Exportera",
    "clearFilters": "Rensa filter",
    "loading": "Läser in granskningshändelser...",
    "showing": "Visar {count} av {total} händelser",
    "policyViolation": "Policyöverträdelse",
    "accessDenied": "Åtkomst nekad",
    "injectionBlocked": "Injektion blockerad",
    "noEvents": "Inga efterlevnadshändelser registrerade.",
    "failedFetch": "Det gick inte att hämta granskningsloggen för efterlevnad.",
    "viewDetails": "Visa detaljer",
    "closeDetails": "Stäng detaljer",
    "notAvailable": "—",
    "system": "systemet",
    "previous": "Föregående",
    "next": "Nästa",
    "mcpAudit": "MCP-revision",
    "mcpAuditDesc": "Verktygsanropsrevisionsposter registrerade av MCP-servern.",
    "failedFetchMcpAudit": "Det gick inte att hämta MCP-granskningsloggen.",
    "tool": "Verktyg",
    "toolPlaceholder": "Filtrera efter verktygsnamn",
    "duration": "Varaktighet",
    "apiKey": "API-nyckel",
    "output": "Utgång",
    "allResults": "Alla resultat",
    "success": "Framgång",
    "failure": "Misslyckande",
    "noMcpEvents": "Inga MCP-revisionshändelser registrerade.",
    "a2aAudit": "A2A-revision",
    "a2aAuditDesc": "Granskningsspår för uppgiftsexekvering registrerats av A2A-servern.",
    "a2aShowingTasks": "Visar {count} av {total} uppgifter",
    "a2aSkill": "Skicklighet",
    "a2aSkillPlaceholder": "Filtrera efter kompetensnamn",
    "a2aState": "staten",
    "a2aAllStates": "Alla stater",
    "a2aStateSubmitted": "Inlämnad",
    "a2aStateWorking": "Arbetar",
    "a2aStateCompleted": "Avslutad",
    "a2aStateFailed": "Misslyckades",
    "a2aStateCancelled": "Avbruten",
    "a2aTaskId": "Uppgifts-ID",
    "a2aEvents": "Händelser",
    "a2aArtifacts": "Artefakter",
    "a2aNoTasks": "Inga A2A-uppgifter registrerade.",
    "a2aLoadingTasks": "Laddar A2A-uppgifter..."
  },
  "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": "Logga ut",
    "language": "Språk",
    "providers": "Leverantörer",
    "providerDescription": "Hantera dina AI-leverantörsanslutningar",
    "combos": "Combos",
    "comboDescription": "Modellkombo med reserv",
    "usage": "Användning & analys",
    "usageDescription": "Övervaka din API-användning, tokenförbrukning och förfrågningsloggar",
    "analytics": "Analytics",
    "analyticsDescription": "Diagram, trender och utvärderingsinsikter",
    "cliTools": "CLI-verktyg",
    "cliToolsDescription": "Konfigurera CLI-verktyg",
    "home": "Hem",
    "homeDescription": "Välkommen till OmniRoute",
    "endpoint": "Endpoints",
    "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
    "mcp": "MCP",
    "mcpDescription": "Model Context Protocol server management and tools",
    "a2a": "A2A",
    "a2aDescription": "Agent-to-Agent protocol tasks and observability",
    "settings": "Inställningar",
    "settingsDescription": "Hantera dina preferenser",
    "openaiCompatible": "OpenAI-kompatibel",
    "anthropicCompatible": "Antropisk kompatibel",
    "media": "Media",
    "mediaDescription": "Generate images, videos, and music",
    "themes": "Themes",
    "themesDescription": "Choose a color theme for the whole dashboard panel",
    "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
    "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
    "limitsDescription": "Configure rate limits and quotas per API key and provider",
    "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
    "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
    "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
    "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
    "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
    "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
    "changelogDescription": "Stay up to date with the latest platform features and announcements.",
    "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
    "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
    "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
    "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
    "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
    "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
    "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
    "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
    "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
    "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
    "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
    "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
    "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
    "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
    "batchFilesDescription": "Browse and manage batch job output files and results",
    "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
    "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
    "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
    "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
    "analyticsCompressionDescription": "Context compression analytics and token savings",
    "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
    "costsPricingDescription": "Custom pricing configuration for token cost calculations",
    "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
    "logsConsoleDescription": "Application console output and debug logs",
    "logsActivityDescription": "Audit trail of user actions and system events",
    "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
    "auditA2a": "A2A-revision",
    "auditA2aDescription": "A2A-uppgiftsutförande revisionsspår, tillståndsövergångar och skicklighetsanrop",
    "settingsGeneralDescription": "Storage, database, and general instance configuration",
    "settingsAppearanceDescription": "Theme, branding, and visual customization",
    "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
    "settingsSecurityDescription": "Authentication, authorization, and access control settings",
    "featureFlags": "Funktionsflaggor",
    "featureFlagsDescription": "Styrsystems kapacitet och experimentella funktioner",
    "featureFlagsActive": "{count} aktiv",
    "featureFlagsInactive": "{count} inaktiv",
    "featureFlagsOverrides": "{count} DB åsidosätter",
    "featureFlagsSearch": "Sök flaggor...",
    "featureFlagsCategoryAll": "Alla",
    "featureFlagsCategorySecurity": "Säkerhet",
    "featureFlagsCategoryNetwork": "Nätverk",
    "featureFlagsCategoryPolicies": "Policyer",
    "featureFlagsCategoryRuntime": "Körtid",
    "featureFlagsCategoryCli": "CLI",
    "featureFlagsCategoryHealth": "Hälsa",
    "featureFlagsSourceDb": "DB",
    "featureFlagsSourceEnv": "ENV",
    "featureFlagsSourceDefault": "DEF",
    "featureFlagsReset": "Återställ",
    "featureFlagsResetAll": "Återställ alla åsidosättanden",
    "featureFlagsResetAllConfirm": "Är du säker på att du vill återställa alla åsidosättningar av funktionsflaggor? Detta kommer att återställa alla flaggor till deras ENV- eller standardvärden.",
    "featureFlagsRestartRequired": "Omstart krävs för att ansöka",
    "featureFlagsNoResults": "Inga flaggor matchar din sökning",
    "featureFlagsSaved": "Flaggan uppdaterad",
    "featureFlagsError": "Det gick inte att uppdatera flaggan",
    "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
    "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
    "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
    "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
    "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining"
  },
  "home": {
    "quickStart": "Snabbstart",
    "quickStartDesc": "Kom igång i 4 steg. Anslut leverantörer, ruttmodeller, övervaka allt.",
    "fullDocs": "Fullständiga dokument",
    "step1Title": "1. Skapa API-nyckel",
    "step1Desc": "Gå till <endpoint>Endpoint</endpoint> -> Registrerade nycklar. Generera en nyckel per miljö.",
    "step2Title": "2. Anslut leverantörer",
    "step2Desc": "Lägg till konton i <providers>Providers</providers>. Stöder OAuth, API Key och gratis nivåer.",
    "step3Title": "3. Peka din klient",
    "step3Desc": "Ställ in bas-URL till {url} i din IDE- eller API-klient.",
    "step4Title": "4. Övervaka och optimera",
    "step4Desc": "Spåra tokens, kostnader och fel i <logs>Request Logs</logs> och <analytics>Analytics</analytics>.",
    "providersOverview": "Leverantörsöversikt",
    "configuredOf": "{configured} konfigurerad av {total} tillgängliga leverantörer",
    "noModelsAvailable": "Inga modeller tillgängliga för denna leverantör.",
    "noProvidersConfigured": "Inga leverantörer har konfigurerats ännu",
    "addProvider": "Lägg till en leverantör",
    "configureFirst": "Konfigurera en anslutning först i {providers}",
    "configureProvider": "Konfigurera leverantör",
    "modelAvailable": "{count} modell tillgänglig",
    "modelsAvailable": "{count} modeller tillgängliga",
    "connectionsActive": "{count} anslutning aktiv",
    "connectionsActivePlural": "{count} anslutningar aktiva",
    "copyModelName": "Kopiera modellnamn",
    "documentation": "Dokumentation",
    "healthMonitor": "Hälsoövervakare",
    "reportIssue": "Rapportera problem",
    "activeError": "{active} aktiv · {errors} fel",
    "oauthLabel": "OAuth",
    "apiKeyLabel": "API-nyckel",
    "requestsShort": "{count} krav",
    "providerModelsTitle": "{provider} - Modeller",
    "copiedModel": "Kopierat: {model}",
    "aliasLabel": "alias",
    "updateNow": "Uppdatera nu",
    "updating": "Uppdaterar...",
    "updateAvailableDesc": "En ny version finns tillgänglig. Klicka för att uppdatera.",
    "updateStarted": "Uppdatering startade...",
    "reloadingPageAutomatically": "Laddar om sidan automatiskt...",
    "providerTopology": "Leverantörstopologi"
  },
  "analytics": {
    "title": "Analytics",
    "usageAnalyticsTitle": "__MISSING__:Usage Analytics",
    "diversityScoreTitle": "Leverantörs mångfald",
    "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": "Övervaka dina API-användningsmönster, tokenförbrukning, kostnader och aktivitetstrender för alla leverantörer och modeller.",
    "evalsDescription": "Kör utvärderingssviter för att testa och validera dina LLM-slutpunkter. Jämför modellkvalitet, upptäck regressioner och benchmark latens.",
    "overview": "Översikt",
    "evals": "Evals",
    "utilization": "Användning",
    "utilizationDescription": "Leverantörskvotanvändningstrender och hastighetsgränsuppföljning",
    "modelStatus": "Modellstatus",
    "modelStatusCooldown": "Nedkylning",
    "modelStatusUnavailable": "Ej tillgänglig",
    "modelStatusError": "Fel",
    "comboHealth": "Kombohälsa",
    "comboHealthDescription": "Kombonivåkvot, användningsfördelning och prestandamått",
    "compressionAnalyticsTitle": "Compression Analytics",
    "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
    "autoRoutingTotalAutoRequests": "Totalt antal automatiska förfrågningar",
    "autoRoutingAvgSelectionScore": "Genomsnittligt urvalsresultat",
    "autoRoutingExplorationRate": "Utforskningshastighet",
    "autoRoutingLkgpHitRate": "LKGP träffar",
    "autoRoutingRequestsByVariant": "Förfrågningar av variant",
    "autoRoutingTopRoutedProviders": "Bästa routerade leverantörer",
    "comboHealthWorstQuotaLeft": "Sämsta kvot kvar",
    "comboHealthUsageSkew": "Användning skev",
    "comboHealthSuccessRate": "Framgångsfrekvens",
    "comboHealthQuotaHealth": "Kvothälsa",
    "comboHealthRequests": "Förfrågningar",
    "comboHealthTokens": "Polletter",
    "comboHealthAvgLatency": "Genomsnittlig latens",
    "comboHealthTotalRequests": "Totalt antal förfrågningar",
    "comboHealthExecutionTargets": "Utförandemål",
    "comboHealthSuccess": "Framgång",
    "comboHealthLatency": "Latens",
    "comboHealthQuota": "Kvot",
    "comboHealthTitle": "Kombinerad hälsa",
    "comboHealthUnableToLoad": "Det går inte att läsa in kombinationshälsa",
    "comboHealthGettingStarted": "Komma igång",
    "compressionAnalyticsTotalRequests": "Totalt antal förfrågningar",
    "compressionAnalyticsTokensSaved": "Tokens sparade",
    "compressionAnalyticsAvgSavings": "Genomsnittliga besparingar",
    "compressionAnalyticsAvgDuration": "Genomsnittlig varaktighet",
    "compressionAnalyticsReceipts": "Kvitton",
    "compressionAnalyticsFallbacks": "Fallbacks",
    "compressionAnalyticsPromptTokens": "Fråga tokens",
    "compressionAnalyticsCompletionTokens": "Färdigställande tokens",
    "compressionAnalyticsTotalTokens": "Totalt tokens",
    "compressionAnalyticsCacheTokens": "Cache-tokens",
    "compressionAnalyticsNoDataYet": "Inga komprimeringsdata ännu",
    "searchAnalyticsTotalSearches": "Totalt antal sökningar",
    "searchAnalyticsCacheHitRate": "Cache träfffrekvens",
    "searchAnalyticsTotalCost": "Total kostnad",
    "searchAnalyticsAvgResponse": "Genomsnittligt svar",
    "searchAnalyticsNoSearchesYet": "Inga sökningar än",
    "providerUtilizationTitle": "Utnyttjande av leverantör",
    "providerUtilizationFailedToLoad": "Det gick inte att läsa in användningsdata",
    "providerUtilizationNoData": "Ingen användningsdata tillgänglig",
    "providerUtilizationGettingStarted": "Komma igång",
    "providerUtilizationLatestSnapshot": "Senaste kvotbilden",
    "providerUtilizationRemainingCapacity": "Återstående kapacitet"
  },
  "apiManager": {
    "title": "API-nycklar",
    "createKey": "Skapa API-nyckel",
    "key": "Nyckel",
    "revokeKey": "Återkalla nyckel",
    "revokeConfirm": "Är du säker på att du vill återkalla denna API-nyckel?",
    "noKeys": "Inga API-nycklar ännu",
    "noKeysDesc": "Skapa din första API-nyckel för att autentisera förfrågningar till din slutpunkt",
    "keyLabel": "Nyckeletikett",
    "permissions": "Behörigheter",
    "expiresAt": "Upphör att gälla",
    "never": "Aldrig",
    "revoke": "Återkalla",
    "showKey": "Visa nyckel",
    "hideKey": "Dölj nyckel",
    "copyKey": "Kopiera API-nyckel",
    "allModels": "Alla modeller",
    "selectedModels": "Utvalda modeller",
    "readOnly": "Endast läs",
    "fullAccess": "Full tillgång",
    "keyManagement": "API-nyckelhantering",
    "keyManagementDesc": "Skapa och hantera API-nycklar för autentisering av förfrågningar till din slutpunkt",
    "totalKeys": "Totalt nycklar",
    "restricted": "Begränsad",
    "totalRequests": "Totalt antal förfrågningar",
    "modelsAvailable": "Tillgängliga modeller",
    "registeredKeys": "Registrerade nycklar",
    "keysRegistered": "{count} nycklar registrerade",
    "keyRegistered": "{count} nyckel registrerad",
    "keysSecurityNote": "Varje nyckel isolerar användningsspårning och kan återkallas oberoende. Nycklar är maskerade efter skapande för säkerhet.",
    "createFirstKey": "Skapa din första nyckel",
    "name": "Namn",
    "usage": "Användning",
    "created": "Skapad",
    "actions": "Åtgärder",
    "reqs": "reqs",
    "neverUsed": "Aldrig använd",
    "deleteConfirm": "Vill du ta bort denna API-nyckel?",
    "usageTips": "Användningstips",
    "tipAuth": "Använd API-nycklar i auktoriseringshuvudet som Bärare YOUR_KEY",
    "tipSecure": "Nycklar visas bara en gång under skapandet – förvara dem säkert",
    "tipSeparate": "Skapa separata nycklar för olika klienter eller miljöer",
    "tipRestrict": "Begränsa nycklar till specifika modeller för bättre säkerhet och kostnadskontroll",
    "keyName": "Nyckelnamn",
    "keyNamePlaceholder": "t.ex. produktionsnyckel, utvecklingsnyckel",
    "keyNameDesc": "Välj ett beskrivande namn för att identifiera denna nyckels syfte",
    "managementAccessDesc": "Tillåt denna API-nyckel att hantera OmniRoute-konfigurationen.",
    "selfServiceVisibility": "Självbetjäningssynlighet",
    "selfServiceVisibilityDesc": "Styr vad denna nyckel kan se om egen användning och delad upstream-kvot.",
    "ownUsageVisibility": "Egen kostnad och tokenanvändning",
    "ownUsageVisibilityDesc": "Tillåt denna nyckel att anropa sin status-endpoint för egen USD-användning, budgetprocent och tokensummor.",
    "sharedAccountQuotaVisibility": "Delad kontokvot",
    "sharedAccountQuotaVisibilityDesc": "Tillåt denna nyckel att se delad upstream-kontokvot när en explicit anslutning är konfigurerad.",
    "keyCreated": "API-nyckel skapad",
    "keyCreatedSuccess": "Nyckel skapad framgångsrikt!",
    "keyCreatedNote": "Kopiera och lagra den här nyckeln nu – den kommer inte att visas igen.",
    "done": "Klart",
    "savePermissions": "Spara behörigheter",
    "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": "Tillåt alla",
    "restrict": "Begränsa",
    "allowAllInfo": "Denna nyckel kan komma åt alla tillgängliga modeller.",
    "restrictInfo": "Denna nyckel kan komma åt {selected} av {total} modeller.",
    "selected": "{count} har valts",
    "all": "Alla",
    "clear": "Rensa",
    "searchModels": "Sök modeller efter namn eller leverantör...",
    "noModelsFound": "Inga modeller hittades",
    "keyNameRequired": "Nyckelnamn krävs",
    "keyNameTooLong": "Nyckelnamnet måste vara högst {max} tecken",
    "keyNameInvalid": "Nyckelnamn kan bara innehålla bokstäver, siffror, mellanslag, bindestreck och understreck",
    "invalidKeyName": "Ogiltigt nyckelnamn",
    "failedCreateKey": "Det gick inte att skapa nyckel",
    "failedCreateKeyRetry": "Det gick inte att skapa nyckel. Försök igen.",
    "invalidKeyId": "Ogiltigt nyckel-ID",
    "failedDeleteKey": "Det gick inte att radera nyckel",
    "failedDeleteKeyRetry": "Det gick inte att radera nyckel. Försök igen.",
    "invalidModelsSelection": "Ogiltigt modellval",
    "cannotSelectMoreThanModels": "Kan inte välja fler än {max} modeller",
    "failedUpdatePermissions": "Det gick inte att uppdatera behörigheter",
    "failedUpdatePermissionsRetry": "Det gick inte att uppdatera behörigheter. Försök igen.",
    "unknownProvider": "okänt",
    "copyMaskedKey": "Kopiera maskerad nyckel",
    "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "lastUsedOn": "Senaste: {date}",
    "editPermissions": "Redigera behörigheter",
    "deleteKey": "Ta bort nyckel",
    "regenerateKey": "Återskapa nyckel",
    "regenerateConfirm": "Är du säker på att du vill återskapa denna API-nyckel? Den gamla nyckeln blir omedelbart ogiltig.",
    "failedRegenerateKey": "Det gick inte att återskapa API-nyckeln",
    "failedRegenerateKeyRetry": "Det gick inte att återskapa API-nyckeln. Försök igen.",
    "model": "{count} modell",
    "models": "{count} modeller",
    "permissionsTitle": "Behörigheter: {name}",
    "allowAllDesc": "Denna nyckel kan komma åt alla tillgängliga modeller.",
    "restrictDesc": "Denna nyckel kan komma åt {selectedCount} av {totalModels} modeller.",
    "selectedCount": "{count} har valts",
    "maxActiveSessions": "Max aktiva sessioner",
    "apiManagerCustomRateLimits": "Anpassade prisgränser",
    "apiManagerCustomRateLimitsDesc": "Åsidosätt globala standardgränser. Lämna tomt om du vill använda standardinställningarna.",
    "apiManagerRateLimitRequestsPlaceholder": "Förfrågningar",
    "apiManagerRateLimitReqPer": "req /",
    "apiManagerRateLimitSecondsPlaceholder": "Sekunder",
    "apiManagerRemoveLimitTitle": "Ta bort gränsen",
    "apiManagerTimezonePlaceholder": "Amerika/Sao_Paulo",
    "noLogPayloadPrivacy": "No-Log Payload Sekretess",
    "bannedStatus": "Förbjuden status",
    "managementApiAccess": "Management API Access",
    "expirationDate": "Utgångsdatum",
    "managementAccess": "Management Access",
    "allowedConnections": "Tillåtna anslutningar",
    "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": "Revisionslogg",
    "searchPlaceholder": "Sökåtgärder...",
    "action": "Åtgärd",
    "actor": "Skådespelare",
    "target": "Mål",
    "ipAddress": "IP-adress",
    "timestamp": "Tidsstämpel",
    "noEntries": "Inga revisionsposter hittades",
    "filterByAction": "Filtrera efter åtgärd...",
    "filterByActor": "Filtrera efter skådespelare...",
    "filterEntriesAria": "Filtrera granskningsloggposter",
    "filterByActionTypeAria": "Filtrera efter åtgärdstyp",
    "filterByActorAria": "Filtrera efter skådespelare",
    "refreshAuditLogAria": "Uppdatera granskningsloggen",
    "tableAria": "Granskningsloggposter",
    "failedFetchAuditLog": "Det gick inte att hämta granskningsloggen",
    "notAvailable": "—",
    "description": "Administrativa åtgärder och säkerhetshändelser",
    "showing": "Visar {count} poster (offset {offset})",
    "previous": "Föregående"
  },
  "media": {
    "title": "Medialabb",
    "subtitle": "Generera bilder, videor och musik",
    "model": "Model",
    "prompt": "Prompt",
    "generate": "Generera",
    "generating": "Generating...",
    "loadingModels": "Loading available models...",
    "noModels": "No models available. Configure providers with media capabilities first.",
    "error": "Generation Failed",
    "result": "Result",
    "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
    "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
    "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
    "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": "Kopiera",
    "resetToDefault": "Återställ till standard",
    "tabSearch": "Search",
    "tabScrape": "Scrape",
    "tabCompare": "Compare",
    "modalitiesGuide": "Modalities guide",
    "searchConceptTitle": "Search",
    "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
    "scrapeConceptTitle": "Scrape",
    "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
    "compareConceptTitle": "Compare",
    "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
    "rerankConceptTitle": "Rerank",
    "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
    "autoConceptTitle": "Auto (cheapest)",
    "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
    "providerCatalogTitle": "Provider Catalog",
    "kindSearch": "Search",
    "kindFetch": "Fetch/Scrape",
    "statusConfigured": "Configured",
    "statusMissing": "No credential",
    "statusRateLimited": "Rate limited",
    "configureProvider": "Configure in Providers",
    "loadingProviders": "Loading providers…",
    "failedToLoadProviders": "Failed to load providers",
    "costPerQuery": "Cost/query",
    "freeQuota": "Free quota/mo",
    "scrapeUrl": "URL to scrape",
    "scrapeUrlPlaceholder": "https://example.com",
    "scrapeExtract": "Extract",
    "scrapeExtracting": "Extracting…",
    "scrapeFullPage": "Full page",
    "scrapeFormat": "Format",
    "formatMarkdown": "Markdown",
    "formatHtml": "HTML",
    "formatText": "Text",
    "scrapePreview": "Preview",
    "scrapeRaw": "Raw",
    "scrapeContentTruncated": "(truncated, view raw)",
    "scrapeMetadata": "Metadata",
    "scrapeProvider": "Provider",
    "scrapeSize": "Size",
    "compareRun": "Compare",
    "compareRunning": "Comparing…",
    "autoProvider": "Auto (cheapest)",
    "configuredStatus": "Configured",
    "rateLimitedStatus": "Rate limited",
    "noCredential": "No credential",
    "searchTypeLabel": "Type",
    "rerankModelLabel": "Rerank model",
    "noneOption": "None",
    "size": "Size"
  },
  "cliTools": {
    "title": "CLI-verktyg",
    "noActiveProviders": "Inga aktiva leverantörer",
    "noActiveProvidersDesc": "Lägg till och anslut först leverantörer för att konfigurera CLI-verktyg.",
    "mapModels": "Kartmodeller",
    "testConnection": "Testa anslutningen",
    "connectionStatus": "Anslutningsstatus",
    "configureEndpoint": "Konfigurera slutpunkt",
    "instructions": "Instruktioner",
    "modelMapping": "Modellkartläggning",
    "baseUrl": "Bas-URL",
    "apiKey": "API-nyckel",
    "configured": "Konfigurerad",
    "notConfigured": "Ej konfigurerad",
    "notInstalled": "Ej installerad",
    "custom": "Anpassad",
    "unknown": "Okänd",
    "lastSavedAt": "Senast sparad: {date}",
    "never": "Aldrig",
    "justNow": "just nu",
    "minutesAgoShort": "{count}m sedan",
    "hoursAgoShort": "{count}h sedan",
    "daysAgoShort": "{count}d sedan",
    "monthsAgoShort": "{count}mån sedan",
    "yearsAgoShort": "{count}y sedan",
    "runtimeCheckFailed": "Körtidskontroll misslyckades",
    "yourApiKeyPlaceholder": "din-api-nyckel",
    "modelPlaceholder": "leverantör/modell-id",
    "configurationSaved": "Konfigurationen har sparats.",
    "failedToSave": "Det gick inte att spara konfigurationen.",
    "noApiKeysCreateOne": "Inga API-nycklar - Skapa en på sidan Nycklar",
    "defaultOmnirouteKey": "sk_omniroute (standard)",
    "selectModel": "Välj modell",
    "selectModelForAlias": "Välj modell för {alias}",
    "selectModelForTool": "Välj modell för {tool}",
    "select": "Välj",
    "clear": "Rensa",
    "comingSoon": "Kommer snart",
    "checkingRuntime": "Kontrollerar körtidsstatus...",
    "guideOnlyIntegration": "Integrering endast guide (ingen lokal körtid krävs)",
    "cliRuntimeDetected": "CLI-körtid upptäckt och klar",
    "cliFoundNotRunnable": "CLI hittades men inte körbar{reason}",
    "cliRuntimeNotDetected": "CLI-körtid har inte upptäckts",
    "binary": "Binär",
    "configPath": "Konfigurationsväg",
    "configPathShort": "Konfig",
    "failedCheckRuntimeStatus": "Det gick inte att kontrollera körtidsstatus.",
    "copy": "Kopiera",
    "copied": "Kopierade",
    "copyConfig": "Kopiera Config",
    "saveConfig": "Spara konfiguration",
    "selectionSaved": "Valet har sparats",
    "guide": "Guide",
    "detected": "Upptäckt",
    "notReady": "Inte redo",
    "active": "Aktiv",
    "inactive": "Inaktiv",
    "startMitm": "Starta MITM",
    "stopMitm": "Stoppa MITM",
    "mitmStarted": "MITM startade framgångsrikt!",
    "mitmStopped": "MITM stoppade framgångsrikt!",
    "failedStart": "Det gick inte att starta MITM",
    "failedStop": "Det gick inte att stoppa MITM",
    "saveMappings": "Spara mappningar",
    "mappingsSaved": "Mappningar sparade!",
    "failedSaveMappings": "Det gick inte att spara mappningar",
    "howItWorks": "Hur det fungerar:",
    "antigravityHowWorksDesc": "Antigravity skickar förfrågningar till Googles slutpunkt. MITM fångar upp och omdirigerar dem till OmniRoute.",
    "antigravityStep1": "1. Starta MITM för att dirigera förfrågningar genom OmniRoute.",
    "antigravityStep2Prefix": "2. Lägg till",
    "antigravityStep2Suffix": "till din hosts-fil som 127.0.0.1.",
    "antigravityStep3": "3. Öppna Antigravity och förfrågningar kommer att skickas som proxy.",
    "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
    "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
    "mitmStep2Prefix": "2. Add",
    "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
    "mitmStep3": "3. Open {toolName} and requests will be proxied.",
    "sudoPasswordRequiredTitle": "Sudo-lösenord krävs",
    "sudoPasswordHint": "Administratörslösenord krävs för att ändra värdens fil- och systemproxyinställningar.",
    "enterSudoPassword": "Ange sudo lösenord",
    "sudoPasswordRequiredError": "Sudo-lösenord krävs.",
    "cancel": "Avbryt",
    "confirm": "Bekräfta",
    "settingsApplied": "Inställningarna har tillämpats!",
    "failedApplySettings": "Det gick inte att tillämpa inställningarna",
    "settingsReset": "Inställningarna har återställts!",
    "failedResetSettings": "Det gick inte att återställa inställningarna",
    "backupRestored": "Säkerhetskopieringen återställd!",
    "failedRestore": "Det gick inte att återställa",
    "checkingCli": "Kontrollerar {tool} CLI...",
    "cliNotRunnable": "{tool} CLI installerat men inte körbart",
    "cliNotInstalled": "{tool} CLI inte installerat",
    "cliNotDetected": "{tool} CLI inte upptäckt",
    "cliDetectedReady": "{tool} CLI upptäckt och redo",
    "cliFoundFailedHealthcheck": "{tool} CLI hittades men misslyckades med runtime healthcheck{reason}.",
    "installCliPrompt": "Installera {tool} CLI för att använda den här funktionen.",
    "installCodexPrompt": "Installera Codex CLI för att använda funktionen för automatisk applicering.",
    "hide": "Göm",
    "howToInstall": "Hur man installerar",
    "installationGuide": "Installationsguide",
    "platforms": "macOS / Linux / Windows:",
    "afterInstallationRun": "Efter installationen, kör",
    "toVerify": "att verifiera.",
    "current": "Aktuell",
    "baseUrlPlaceholder": "https://.../v1",
    "resetToDefault": "Återställ till standard",
    "providerModelPlaceholder": "leverantör/modell-id",
    "apply": "Ansök",
    "reset": "Återställ",
    "manualConfig": "Manuell konfiguration",
    "backups": "Säkerhetskopieringar",
    "configBackups": "Konfigurera säkerhetskopior",
    "noBackupsYet": "Inga säkerhetskopior ännu. Säkerhetskopieringar skapas automatiskt före varje applicering eller återställning.",
    "restore": "Återställ",
    "backupRestoredReloading": "Säkerhetskopieringen återställd! Laddar om status...",
    "failedRestoreBackup": "Det gick inte att återställa säkerhetskopian",
    "applied": "Ansökt!",
    "failed": "Misslyckades",
    "resetDone": "Återställ!",
    "omnirouteConfiguredOpenAiCompatible": "OmniRoute är konfigurerad som OpenAI-kompatibel leverantör",
    "provider": "Leverantör",
    "model": "Modell",
    "providers": "Leverantörer",
    "auth": "Auth",
    "noApiKeysAvailable": "Inga API-nycklar tillgängliga",
    "usingDefaultOmniroute": "Använder standard: sk_omniroute",
    "updateConfig": "Uppdatera Config",
    "applyConfig": "Använd Config",
    "noBackupsAvailable": "Inga säkerhetskopior tillgängliga.",
    "profileSaved": "Profilen \"{name}\" har sparats!",
    "failedSaveProfile": "Det gick inte att spara profilen",
    "profileActivated": "Profilen aktiverad!",
    "failedActivateProfile": "Det gick inte att aktivera profilen",
    "profiles": "Profiler",
    "savedProfiles": "Sparade profiler",
    "noProfilesYet": "Inga profiler sparade ännu. Spara aktuell konfiguration som en profil nedan.",
    "activate": "Aktivera",
    "deleteProfile": "Ta bort profil",
    "profileNamePlaceholder": "Profilnamn (t.ex. personligt konto)",
    "saveCurrent": "Spara aktuell",
    "codexAuthNotePrefix": "Codex använder",
    "codexAuthNoteMiddle": "med",
    "codexAuthNoteSuffix": "Klicka på \"Apply\" för att automatiskt konfigurera.",
    "claudeManualConfiguration": "Claude CLI - Manuell konfiguration",
    "codexManualConfiguration": "Codex CLI - Manuell konfiguration",
    "droidManualConfiguration": "Factory Droid - Manuell konfiguration",
    "openClawManualConfiguration": "Öppna Claw - Manuell konfiguration",
    "clineManualConfiguration": "Cline manuell konfiguration",
    "kiloManualConfiguration": "Kilokod manuell konfiguration",
    "whenToUseLabel": "När du ska använda",
    "openToolDocs": "Öppna verktygsdokument",
    "toolUseCases": {
      "claude": "Använd när du vill ha starka planeringsarbetsflöden och långa flerfilsrefaktorer med Claude Code.",
      "codex": "Använd när ditt team är standardiserat på OpenAI Codex CLI-flöden och profilbaserad autentisering.",
      "droid": "Använd när du behöver en lätt terminalagent fokuserad på snabb kodning och kommandokörningsloopar.",
      "openclaw": "Använd när du vill ha en Open Claw-kodningsagent men dirigerad genom OmniRoute-policyer.",
      "cline": "Använd när du konfigurerar kodningsagenter i redigerare och vill ha guidad installation med OmniRoute-modeller.",
      "kilo": "Använd när ditt arbetsflöde beror på Kilo Code-kommandon och snabba iterativa redigeringar.",
      "cursor": "Använd när du kodar i Cursor och du behöver anpassade OpenAI-kompatibla modeller genom OmniRoute.",
      "continue": "Använd när du kör Continue i IDE och du behöver portabel JSON-baserad leverantörskonfiguration.",
      "opencode": "Använd när du föredrar terminalbaserade agentkörningar och skriptautomation via OpenCode.",
      "kiro": "Använd när du integrerar Kiro och styr modelldirigering centralt från OmniRoute.",
      "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
      "antigravity": "Använd när Antigravity/Kiro-trafik måste avlyssnas genom MITM och dirigeras till OmniRoute.",
      "copilot": "Använd när du vill ha Copilot chattstil UX samtidigt som du upprätthåller OmniRoute-nycklar och routingregler.",
      "amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
      "qwen": "Use when you want Qwen Code CLI with OmniRoute-managed provider settings and multi-provider model access.",
      "hermes": "Använd när du behöver en lätt terminalbaserad AI-assistent för snabba uppgifter.",
      "hermes-agent": "__MISSING__:Use when you need Hermes Agent (by Nousresearch) with default, delegation, vision and auxiliary models routed through OmniRoute.",
      "custom": "Använd för anpassade verktygsimplementeringar eller generiska OpenAI-kompatibla konfigurationer."
    },
    "toolDescriptions": {
      "antigravity": "Google Antigravity IDE med MITM",
      "claude": "Antropisk Claude Code CLI",
      "codex": "OpenAI Codex CLI",
      "droid": "Factory Droid AI Assistant",
      "openclaw": "Öppna Claw AI Assistant",
      "cline": "Cline AI Coding Assistant CLI",
      "kilo": "Kilokod AI Assistant CLI",
      "cursor": "Cursor AI Code Editor",
      "continue": "Fortsätt AI Assistant",
      "opencode": "OpenCode AI coding agent (Terminal)",
      "kiro": "Amazon Kiro — AI-powered IDE",
      "windsurf": "Windsurf AI Code Editor",
      "copilot": "GitHub Copilot AI Assistant",
      "qwen": "Alibaba Qwen Code CLI",
      "amp": "Sourcegraph Amp coding assistant CLI",
      "hermes": "Hermes AI terminalassistent",
      "hermes-agent": "__MISSING__:Hermes Agent (by Nousresearch) - Advanced terminal AI with multi-model support (delegation, vision, compression, etc.)",
      "custom": "Generisk OpenAI-kompatibel CLI- eller SDK-konfigurationsgenerator"
    },
    "guides": {
      "cursor": {
        "notes": {
          "0": "Kräver ett Cursor Pro-konto för att använda den här funktionen.",
          "1": "Markören dirigerar förfrågningar genom sin egen server, så lokal slutpunkt stöds inte. Vänligen aktivera Cloud Endpoint i Inställningar."
        },
        "steps": {
          "1": {
            "title": "Öppna Inställningar",
            "desc": "Gå till Inställningar -> Modeller"
          },
          "2": {
            "title": "Aktivera OpenAI API",
            "desc": "Aktivera alternativet \"OpenAI API-nyckel\"."
          },
          "3": {
            "title": "Bas-URL"
          },
          "4": {
            "title": "API-nyckel"
          },
          "5": {
            "title": "Lägg till anpassad modell",
            "desc": "Klicka på \"Visa alla modeller\" -> \"Lägg till anpassad modell\""
          },
          "6": {
            "title": "Välj modell"
          }
        }
      },
      "continue": {
        "steps": {
          "1": {
            "title": "Öppna Config",
            "desc": "Öppna Fortsätt konfigurationsfil"
          },
          "2": {
            "title": "API-nyckel"
          },
          "3": {
            "title": "Välj modell"
          },
          "4": {
            "title": "Lägg till Model Config",
            "desc": "Lägg till följande konfiguration till din modellarray:"
          }
        },
        "notes": {
          "0": "Continue använder JSON-konfigurationsfilen."
        }
      },
      "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 kräver API-nyckelkonfiguration.",
          "1": "Ställ in basadressen till din OmniRoute-slutpunkt."
        }
      },
      "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 kräver Amazon-konto."
        }
      },
      "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": "Anpassad CLI",
    "toolCategories": "Tool Categories",
    "visibleToolsCount": "{count} tillgängliga verktyg",
    "customCliBuilderTitle": "OpenAI-kompatibel CLI-byggare",
    "customCliBuilderDescription": "Generera env vars och JSON-kodavsnitt för alla CLI eller SDK som accepterar en OpenAI-kompatibel bas-URL, API-nyckel och modell-ID.",
    "customCliNoModels": "Anslut minst en leverantör för att fylla i modellväljarna.",
    "customCliNameLabel": "CLI namn",
    "customCliNamePlaceholder": "t.ex. Mitt team CLI",
    "customCliDefaultModelLabel": "Standardmodell",
    "customCliDefaultModelHelp": "Använd valfritt OmniRoute-modell-ID eller kombination. De flesta OpenAI-kompatibla CLI:er behöver bara /v1-basadressen plus en modellsträng.",
    "customCliKeyHelper": "För lokala installationer kan OmniRoute använda sk_omniroute. I molnläge väljer du en av dina hanterings-API-nycklar.",
    "customCliAliasMappingsLabel": "Alias mappningar",
    "customCliAliasMappingsHelp": "Valfria hjälpalias för omslagsskript eller konfigurationsfiler som vill ha stabila förkortningsnamn.",
    "customCliAddAlias": "Lägg till alias",
    "customCliNoMappings": "Inga aliasmappingar ännu. Lägg till ett om dina omslags- eller teamskript använder stabila korta namn.",
    "customCliAliasPlaceholder": "t.ex. granska",
    "customCliTargetModelLabel": "Målmodell",
    "customCliEndpointHintLabel": "Hur man kopplar ändpunkten",
    "customCliEndpointHint": "Peka en OpenAI-kompatibel klient till OmniRoute /v1-basadressen. Slutpunkten för att slutföra obearbetade chattar är {endpoint}. Använd JSON-blocket när verktyget vill ha ett leverantörsobjekt, eller env-skriptet när det läser OPENAI_*-variabler.",
    "customCliEnvBlockTitle": "Env / skal-snutt",
    "customCliJsonBlockTitle": "Provider JSON-block",
    "copilotConfigGenerator": "GitHub Copilot Config Generator",
    "copilotApiKey": "API-nyckel",
    "copilotFilterModelsPlaceholder": "Filtermodeller...",
    "copilotMaxInputTokens": "Max Input Tokens",
    "copilotMaxOutputTokens": "Max Output Tokens",
    "copilotToolCalling": "Verktygsanrop",
    "copilotPasteInto": "Klistra in i: ",
    "wireApiChatCompletions": "Chattavslut (/chat/kompletteringar)",
    "wireApiResponses": "Responses API (/responses)"
  },
  "combos": {
    "title": "Combos",
    "description": "Skapa modellkombinationer med viktad routing och reservstöd",
    "autoCatalogTitle": "Katalog för automatisk routing",
    "autoCatalogTemplateCount": "{count} mallar",
    "autoCatalogDescription": "Inbyggda auto/*-kombinationer lösts dynamiskt från anslutna leverantörer. Använd något av dessa ID:n som modellfält – ingen installation behövs.",
    "autoCatalogExpand": "Utöka katalogen för automatisk routing",
    "autoCatalogCollapse": "Komprimera katalogen för automatisk routing",
    "createCombo": "Skapa Combo",
    "editCombo": "Redigera kombination",
    "deleteCombo": "Ta bort Combo",
    "noModels": "Inga modeller",
    "noModelsYet": "Inga modeller har lagts till ännu",
    "addModel": "Lägg till modell",
    "addModelToCombo": "Lägg till modell till Combo",
    "routingStrategy": "Routingstrategi",
    "maxRetries": "Max försöker igen",
    "timeout": "Timeout (ms)",
    "healthcheck": "Hälsokontroll",
    "priority": "Prioritet",
    "fallback": "Fallback",
    "roundRobin": "Round Robin",
    "random": "Slumpmässigt",
    "leastLatency": "Minsta latens",
    "comboName": "Kombinationsnamn",
    "comboNamePlaceholder": "min-kombo",
    "deleteConfirm": "Vill du ta bort den här kombinationen?",
    "noCombosYet": "Inga kombinationer än",
    "comboCreated": "Kombinationen skapades framgångsrikt",
    "comboUpdated": "Kombinationen har uppdaterats",
    "comboDeleted": "Combo raderad",
    "failedCreate": "Det gick inte att skapa en kombination",
    "failedUpdate": "Det gick inte att uppdatera kombinationen",
    "errorCreating": "Det gick inte att skapa kombination",
    "errorUpdating": "Fel vid uppdatering av kombination",
    "errorDeleting": "Fel vid borttagning av kombination",
    "testFailed": "Testbegäran misslyckades",
    "failedToggle": "Det gick inte att växla kombination",
    "testResults": "Testresultat — {name}",
    "resolvedBy": "Löst av:",
    "more": "+{count} till",
    "reqs": "reqs",
    "success": "framgång",
    "proxyConfigured": "Proxy konfigurerad",
    "copyComboName": "Kopiera kombinationsnamn",
    "enableCombo": "Aktivera kombination",
    "disableCombo": "Inaktivera kombination",
    "testCombo": "Testkombo",
    "duplicate": "Duplicera",
    "proxyConfig": "Proxykonfiguration",
    "nameRequired": "Namn krävs",
    "nameInvalid": "Endast bokstäver, siffror, -, _, / och . tillåtet",
    "nameHint": "Bokstäver, siffror, -, _, / och . tillåtet",
    "priorityDesc": "Sekventiell reserv: provar modell 1 först, sedan 2 osv.",
    "weightedDesc": "Fördelar trafik efter viktprocent med reserv",
    "roundRobinDesc": "Cirkulär distribution: varje begäran går till nästa modell i rotation",
    "contextRelay": "Context Relay",
    "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
    "randomDesc": "Enhetligt slumpmässigt urval, sedan fallback till återstående modeller",
    "leastUsedDesc": "Väljer modellen med minst förfrågningar, balanserar belastningen över tiden",
    "costOptimizedDesc": "Rutter till den billigaste modellen först baserat på prissättning",
    "resetAware": "Reset-Aware RR",
    "resetAwareDesc": "Balanserar återstående kvot mot 5 timmars och veckovisa återställningar och slår sedan runt liknande resultat",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
    "models": "Modeller",
    "autoBalance": "Automatisk balansering",
    "advancedSettings": "Avancerade inställningar",
    "retryDelay": "Försök igen fördröjning (ms)",
    "concurrencyPerModel": "Samtidighet / Modell",
    "queueTimeout": "Timeout för kö (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": "Lämna tomt om du vill använda globala standardinställningar. Dessa åsidosätter inställningarna per leverantör.",
    "failoverBeforeRetry": "Failover innan du försöker igen",
    "maxSetRetries": "Max antal försök igen",
    "setRetryDelayMs": "Ställ in försöksfördröjning (ms)",
    "moveUp": "Flytta uppåt",
    "moveDown": "Flytta ner",
    "removeModel": "Ta bort",
    "saving": "Sparar...",
    "weighted": "Viktad",
    "leastUsed": "Minst använda",
    "costOpt": "Cost-Opt",
    "strategyGuideTitle": "How to use this strategy",
    "strategyGuideWhen": "When to use",
    "strategyGuideAvoid": "Avoid when",
    "strategyGuideExample": "Example",
    "strategyGuide": {
      "priority": {
        "when": "You have one preferred model and only want fallback on failure.",
        "avoid": "You need request distribution across models.",
        "example": "Primary coding model with cheaper backup for outages."
      },
      "weighted": {
        "when": "You need controlled traffic split across models.",
        "avoid": "You cannot maintain accurate weights over time.",
        "example": "80% stable model + 20% canary model rollout."
      },
      "round-robin": {
        "when": "You want predictable and even distribution.",
        "avoid": "Models differ too much in latency or cost.",
        "example": "Same model on multiple accounts to spread throughput."
      },
      "random": {
        "when": "You want simple distribution with minimal setup.",
        "avoid": "You need strict traffic guarantees.",
        "example": "Quick prototyping with equivalent models."
      },
      "least-used": {
        "when": "You want adaptive balancing based on live demand.",
        "avoid": "Traffic is too low to benefit from usage balancing.",
        "example": "Mixed workloads where one model often gets overloaded."
      },
      "cost-optimized": {
        "when": "Cost reduction is your top priority.",
        "avoid": "Pricing data is missing or outdated.",
        "example": "Background or batch jobs where lower cost is preferred."
      },
      "reset-aware": {
        "when": "Du ruttar över flera konton med kvottelemetri och olika återställningsfönster.",
        "avoid": "Kvottelemetri är inte tillgängligt för de flesta konton.",
        "example": "Föredrar en kontoåterställning på 60 % per vecka i morgon framför en återställning på 80 % senare."
      },
      "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": "Använd när du vill utnyttja en leverantörs kvot helt innan du går vidare till nästa.",
        "avoid": "Undvik när du behöver lastbalansering på begäran-nivå mellan leverantörer.",
        "example": "Exempel: Använd alla $200 Deepgram-krediter innan du faller tillbaka till Groq."
      },
      "auto": {
        "when": "Använd när du behöver flerfaktors poängdirigering baserat på kostnad, latens och kvalitet.",
        "avoid": "Undvik när du behöver strikt prioriteringsordning eller historisk uthållighet.",
        "example": "Exempel: Balansera förfrågningar mellan modeller med olika styrkor."
      },
      "lkgp": {
        "when": "Använd när du vill rutta baserat på historiska framgångar och prestanda.",
        "avoid": "Undvik när historiska data är begränsade eller opålitliga.",
        "example": "Exempel: Väg till modeller med bra meritlista för specifika uppgifter."
      },
      "context-optimized": {
        "when": "Använd när du behöver optimera användningen av sammanhangsfönster mellan modeller.",
        "avoid": "Undvik när modeller har liknande sammanhangslängder eller uppgifter är enkla.",
        "example": "Exempel: Fördela långa konversationer över modeller med större sammanhangsfönster."
      }
    },
    "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": "När det är aktiverat utlöser alla uppströmsfel omedelbar failover till nästa kombinationsmål, och hoppar över alla återförsök och reserv-URL:er.",
      "maxSetRetries": "Antal gånger för att försöka igen med hela måluppsättningen när varje mål misslyckas. 0 = inget nytt försök på inställd nivå.",
      "setRetryDelayMs": "Fördröjning mellan återförsök på inställd nivå, vilket ger övergående problem tid att lösa."
    },
    "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": "inget pris",
    "warningRoundRobinSingleModel": "Round-robin är mest användbar med minst 2 modeller.",
    "warningCostOptimizedPartialPricing": "Endast {priced} av {total} modeller har prissättning. Rutning kan vara delvis kostnadsmedveten.",
    "warningCostOptimizedNoPricing": "Inga prisuppgifter hittades för denna kombination. Kostnadsoptimerad kan väga oväntat.",
    "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": "Redo att spara?",
    "readinessDescription": "Granska checklistan innan du skapar eller uppdaterar den här kombinationen.",
    "readinessCheckName": "Kombinationsnamnet är giltigt",
    "readinessCheckModels": "Minst en modell är vald",
    "readinessCheckWeights": "Den viktade summan är 100 %",
    "readinessCheckWeightsOptional": "Viktregel krävs inte",
    "readinessCheckPricing": "Prisuppgifter finns tillgängliga",
    "readinessCheckPricingOptional": "Prissättningsregel krävs inte",
    "saveBlockedTitle": "Spara är blockerad tills följande saker är åtgärdade:",
    "saveBlockName": "Definiera ett kombinationsnamn.",
    "saveBlockModels": "Lägg till minst en modell.",
    "saveBlockWeighted": "Ställ in vikter på 100 % (nuvarande: {total}%).",
    "saveBlockPricing": "Lägg till prissättning för minst en modell eller välj en annan 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": "Återställningsmedveten kontorotation",
        "description": "Balanserar återstående leverantörskvot mot återställningstidpunkt.",
        "tip1": "Använd explicita kontosteg eller routing för kontotaggar för leverantörer med kvottelemetri.",
        "tip2": "Justera sessionen kontra veckovikter när kortvarig utmattning är mer riskabel.",
        "tip3": "Håll bandet litet så att motsvarande konton fortfarande roterar rättvist."
      },
      "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": "Avgasleverantörskvoter sekventiellt innan de faller tillbaka.",
        "tip1": "Använd för kvotbaserad routing med tydliga reservkedjor.",
        "tip2": "Ställ in kvoter korrekt för att undvika för tidig fallback.",
        "tip3": "Fungerar bäst med leverantörer som erbjuder gratis nivåer eller krediter.",
        "title": "Kvotutmattning"
      },
      "auto": {
        "description": "Rutt baserad på realtidspoäng för kostnad, latens, kvalitet och hälsa.",
        "tip1": "Låt motorn balansera flera faktorer automatiskt.",
        "tip2": "Övervaka vilka faktorer som driver routingbeslut i loggar.",
        "tip3": "Använd för komplexa arbetsbelastningar där ingen enskild faktor dominerar.",
        "title": "Multi-faktor optimering"
      },
      "lkgp": {
        "description": "Rutt baserad på historiska prestationer och framgångsmönster.",
        "tip1": "Kräver tillräcklig förfrågningshistorik för korrekta förutsägelser.",
        "tip2": "Bra för arbetsbelastningar med konsekventa modellprestandamönster.",
        "tip3": "Övervaka prediktionsnoggrannheten och justera vikter efter behov.",
        "title": "Historikbaserad routing"
      },
      "context-optimized": {
        "description": "Optimera routing baserat på kontextfönsteranvändning och tokeneffektivitet.",
        "tip1": "Dirigera långa samtal till modeller med större sammanhangsfönster.",
        "tip2": "Övervaka användningen av sammanhang för att undvika tokenslöseri.",
        "tip3": "Bäst för konversations-AI som kräver omfattande sammanhangsbevarande.",
        "title": "Kontextoptimering"
      },
      "context-relay": {
        "description": "Bäst när kontorotation förväntas och nästa konto måste ärva en förenklad uppgiftssammanfattning.",
        "tip1": "Använd med leverantörer roterande konton för samma modellfamilj.",
        "tip2": "Ställ in handoff-tröskeln under hårda kvotgränser för sammanfattningsgenereringstid.",
        "tip3": "Ställ bara in en dedikerad sammanfattningsmodell om den primära är för dyr eller instabil.",
        "title": "Sessionskontinuitetsprioritet"
      },
      "p2c": {
        "description": "Väg till leverantören med den lägsta aktuella belastningen baserat på realtidsmått.",
        "tip1": "Övervaka leverantörshälsostatistik för korrekt belastningsbedömning.",
        "tip2": "Fungerar bäst med homogena leverantörspooler.",
        "tip3": "Justera känsligheten för att undvika svängningar under trafiktoppar.",
        "title": "Två vals kraft"
      }
    },
    "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": "Detta exakta steg för leverantör/modell/konto finns redan i kombinationen.",
    "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": "Slutför varje steg för att definiera kombinationer, bygga steg, välja routingstrategi och granska resultat.",
    "builderStepsDescription": "Bygg varje kombinationssteg i ordning: leverantör, modell och sedan konto. Detta gör det möjligt att återanvända samma leverantör och modell över olika konton.",
    "selectProvider": "Välj leverantör",
    "selectProviderPlaceholder": "Välj en leverantör",
    "selectModel": "Välj modell",
    "selectModelPlaceholder": "Välj en leverantör först",
    "selectAccount": "Välj Konto",
    "selectComboToReference": "Välj kombination att referera till",
    "comboReference": "Combo referens",
    "addComboReference": "Lägg till Combo Reference",
    "addStepBeforeContinue": "Lägg till minst ett steg innan du fortsätter till nästa steg.",
    "previewNextStep": "Förhandsgranska nästa steg",
    "autoSelectAccount": "Välj konto automatiskt vid körning",
    "modePackBalanced": "Balanserad",
    "modePackBudget": "Budget",
    "modePackPerformance": "Prestanda",
    "modePackCustom": "Anpassad",
    "browseLegacyCatalog": "Bläddra i den äldre kombinationskatalogen",
    "agentFeaturesTitle": "Agentfunktioner",
    "agentFeaturesDescription": "Aktivera avancerade funktioner för agenter som använder den här kombinationen",
    "agentFeaturesSystemMessageOverride": "Åsidosätt systemmeddelande",
    "agentFeaturesSystemMessagePlaceholder": "Du är en sakkunnig assistent...",
    "agentFeaturesSystemMessageHint": "Systemmeddelande åsidosättande för agenter",
    "agentFeaturesToolFilterRegex": "/regex-mönster/",
    "agentFeaturesToolFilterHint": "Verktygsfilter regex för agenter",
    "agentFeaturesContextCacheHint": "Aktivera in-context cache för agentverktyg",
    "agentFeaturesContextCacheProtection": "Skydda cachen från agentverktygsmutationer",
    "agentFeaturesContextLength": "Kontextlängd",
    "agentFeaturesContextLengthPlaceholder": "t.ex. 128 000",
    "agentFeaturesContextLengthHint": "Definierar sammanhangsfönstret för denna kombination i /v1/modeller.",
    "agentFeaturesContextLengthErrorInteger": "Kontextlängden måste vara ett giltigt heltal",
    "agentFeaturesContextLengthErrorRange": "Kontextlängden måste vara mellan 1 000 och 2 000 000",
    "compressionOverride": "Kompressionsöverstyrning",
    "modePack": "Mode Pack"
  },
  "costs": {
    "title": "Kostnader",
    "pageDescription": "Spåra utgifter, analysera trender och hantera din AI-budget hos alla leverantörer",
    "overview": "Översikt",
    "budget": "Budget",
    "totalCost": "Total kostnad",
    "breakdown": "Kostnadsfördelning",
    "noData": "Inga kostnadsdata",
    "byModel": "Efter modell",
    "byProvider": "Av leverantör",
    "range7d": "7 dagar",
    "range30d": "30 dagar",
    "range90d": "90 dagar",
    "rangeAll": "Hela tiden",
    "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": "Tokenanvändning",
    "totalTokens": "Totala tokens",
    "inputTokens": "Mata in tokens",
    "outputTokens": "Output Tokens",
    "inputOutputRatio": "Ingångs/utgångsförhållande",
    "tokens": "polletter",
    "routingEfficiency": "Routing effektivitet",
    "fallbackCount": "Reservförfrågningar",
    "fallbackRate": "Reservfrekvens",
    "modelCoverage": "Modell täckning",
    "modelCoverageDesc": "% av förfrågningarna med explicit modell",
    "outOfRequests": "av {total} förfrågningar",
    "costByApiKey": "Kostnad per API-nyckel",
    "costByAccount": "Kostnad per konto",
    "apiKeyName": "API-nyckel",
    "account": "konto",
    "requests": "Förfrågningar",
    "cost": "Kostnad",
    "dayStreak": "dags svit",
    "weeklyUsagePattern": "Veckans användningsmönster",
    "activityHeatmap": "Aktivitet (365 dagar)",
    "less": "Mindre",
    "more": "Mer",
    "monthlyForecast": "Månadsprognos",
    "forecastBasis": "Baserat på de senaste {days} dagarna",
    "avgDailyCost": "Genomsnittlig daglig kostnad",
    "daysRemaining": "{days} dagar kvar",
    "periodComparison": "Periodjämförelse",
    "previousPeriod": "Föregående hälft",
    "currentPeriod": "Nuvarande halva",
    "exportCSV": "Exportera som CSV",
    "exportJSON": "Exportera som JSON",
    "legacyFreeLabel": "__MISSING__:Legacy / Free",
    "costExplorerTitle": "Kostnadsutforskare",
    "costExplorerDescription": "Utforska utgifter efter leverantör, modell, API-nyckel, konto eller tjänstenivå.",
    "groupProvider": "Leverantör",
    "groupModel": "Modell",
    "groupApiKey": "API-nyckel",
    "groupAccount": "Konto",
    "groupServiceTier": "Tjänstenivå",
    "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": "Analysfält",
    "share": "Andel",
    "legacyOrFree": "Äldre / gratis",
    "filterRows": "Filtrera rader…",
    "filterCostExplorerRows": "Filtrera rader i kostnadsutforskaren",
    "noMatchingCostRows": "Inga matchande kostnadsrader",
    "noMatchingCostRowsDescription": "Justera söktexten, grupperingen eller det valda tidsfönstret.",
    "showingCostRows": "Visar {shown} av {total} matchande rader.",
    "showingTopCostRows": "Visar {shown} av {total} matchande rader (topp 50)."
  },
  "endpoint": {
    "title": "API-slutpunkt",
    "available": "Tillgängliga slutpunkter",
    "cloudProxy": "Molnproxy",
    "disableConfirm": "Är du säker på att du vill inaktivera molnproxy?",
    "baseUrl": "Bas-URL",
    "apiKeyLabel": "API-nyckel",
    "registeredKeys": "Registrerade nycklar",
    "chatCompletions": "Chattavslut",
    "responses": "Svar",
    "listModels": "Lista modeller",
    "usingCloudProxy": "Använder Cloud Proxy",
    "usingLocalServer": "Använder lokal server",
    "machineId": "Maskin-ID: {id}...",
    "disableCloud": "Inaktivera Cloud",
    "enableCloud": "Aktivera Cloud",
    "modelsAcrossEndpoints": "{models} modeller över {endpoints} slutpunkter",
    "loadingModels": "Loading available models...",
    "chatDesc": "Strömmande och icke-strömmande chatt med alla leverantörer",
    "embeddings": "Inbäddningar",
    "embeddingsDesc": "Textinbäddningar för sök- och RAG-pipelines",
    "imageGeneration": "Bildgenerering",
    "imageDesc": "Generera bilder från textmeddelanden",
    "rerank": "Rangordna om",
    "rerankDesc": "Rangordna om dokument efter relevans för en fråga",
    "audioTranscription": "Ljudtranskription",
    "audioTranscriptionDesc": "Transkribera ljudfiler till text (Viska)",
    "textToSpeech": "Text till tal",
    "textToSpeechDesc": "Konvertera text till naturligt klingande tal",
    "musicGeneration": "Music Generation",
    "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
    "moderations": "Moderationer",
    "moderationsDesc": "Innehållsmoderering och säkerhetsklassificering",
    "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": "Kärn-API:er",
    "categoryMedia": "Media & Multimodal",
    "categorySearch": "Search & Discovery",
    "categoryUtility": "Verktyg & Hantering",
    "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": "Aktivera Cloud Proxy",
    "whatYouGet": "Vad du kommer att få",
    "cloudBenefitAccess": "Få åtkomst till ditt API från var som helst i världen",
    "cloudBenefitShare": "Dela enkelt slutpunkten med ditt team",
    "cloudBenefitPorts": "Inget behov av att öppna portar eller konfigurera brandvägg",
    "cloudBenefitEdge": "Snabbt globalt kantnätverk",
    "cloudSessionNote": "Cloud kommer att behålla din autentiseringssession i 1 dag. Om den inte används kommer den att raderas automatiskt.",
    "cloudUnstableNote": "Cloud är för närvarande instabilt med Claude Code OAuth i vissa fall.",
    "cloudConnected": "Cloud Proxy ansluten!",
    "connectingToCloud": "Ansluter till molnet...",
    "verifyingConnection": "Verifierar anslutning...",
    "connecting": "Ansluter...",
    "verifying": "Verifierar...",
    "connected": "Ansluten!",
    "disableCloudTitle": "Inaktivera molnproxy",
    "disableWarning": "Alla autentiseringssessioner kommer att raderas från molnet.",
    "syncingData": "Synkroniserar senaste data...",
    "disablingCloud": "Inaktiverar molnet...",
    "syncing": "Synkroniseras...",
    "disabling": "Inaktiverar...",
    "cloudConnectedVerified": "Cloud Proxy ansluten och verifierad!",
    "connectedVerificationPending": "Ansluten — verifiering väntar",
    "connectedVerificationPendingWithError": "Ansluten — verifiering väntar: {error}",
    "cloudDisabledSuccess": "Molnet har inaktiverats",
    "syncedSuccess": "Synkroniserad framgångsrikt",
    "failedDisable": "Det gick inte att inaktivera molnet",
    "failedEnable": "Det gick inte att aktivera molnet",
    "cloudRequestTimeout": "Timeout för molnbegäran",
    "cloudRequestFailed": "Molnbegäran misslyckades",
    "cloudWorkerUnreachable": "Det gick inte att nå molnarbetaren. Se till att molntjänsten körs (npm kör dev i /moln).",
    "connectionFailed": "Anslutning misslyckades",
    "syncFailed": "Det gick inte att synkronisera molndata",
    "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} — Modeller",
    "noModelsForProvider": "Inga modeller tillgängliga för denna leverantör.",
    "chat": "Chatta",
    "embedding": "Inbäddning",
    "image": "Bild",
    "custom": "anpassad",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "sectionTitle": "Integrationsyta",
    "sectionDescription": "OpenAI-kompatibla API:er och operativa protokollslutpunkter",
    "tabApis": "OpenAI-kompatibla API:er",
    "tabProtocols": "Protokoll",
    "tabsAria": "Slutpunktssektioner",
    "protocolsTitle": "Protokoll",
    "protocolsDescription": "MCP och A2A är förstklassiga endpoints med dedikerad observerbarhet och kontroller.",
    "mcpCardTitle": "MCP-server",
    "mcpCardDescription": "Model Context Protocol över stdio",
    "a2aCardTitle": "A2A-server",
    "a2aCardDescription": "Agent2Agent JSON-RPC-slutpunkt",
    "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": "Meddelanden",
    "messagesApiDesc": "Native Anthropic Messages API-format för Claude-kompatibla leverantörer",
    "imageEdits": "Bildredigeringar",
    "imageEditsDesc": "Redigera och modifiera befintliga bilder med AI (inpainting, outpainting, variationer)",
    "batchApi": "Batch API",
    "batchApiDesc": "Bearbeta stora partier av förfrågningar asynkront (OpenAI-kompatibel)",
    "filesApi": "Filer API",
    "filesApiDesc": "Ladda upp och hantera filer för batchbearbetning",
    "videoGeneration": "Video Generation",
    "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
    "tailscaleRequestFailed": "Failed to load Tailscale status",
    "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
    "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
    "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
    "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
    "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
    "tailscaleStarted": "Tailscale Funnel enabled",
    "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
    "tailscaleStopped": "Tailscale Funnel disabled",
    "tailscaleInstallFailed": "Failed to install Tailscale",
    "tailscaleInstallProgress": "Working...",
    "tailscaleInstalled": "Tailscale installed successfully",
    "tailscaleRunning": "Running",
    "tailscaleNeedsLogin": "Needs Login",
    "tailscaleStoppedState": "Stopped",
    "tailscaleNotInstalled": "Not installed",
    "tailscaleUnsupported": "Unsupported",
    "tailscaleError": "Error",
    "tailscaleDisable": "Stop Funnel",
    "tailscaleInstallAndEnable": "Install & Enable",
    "tailscaleLoginAndEnable": "Login & Enable",
    "tailscaleEnable": "Enable Funnel",
    "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
    "tailscaleTitle": "Tailscale Funnel",
    "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
    "tailscaleBinaryPath": "Binary: {path}",
    "tailscaleLastError": "Last error: {error}",
    "tailscaleInstallTitle": "Install Tailscale",
    "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
    "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
    "tailscaleSudoPlaceholder": "Optional sudo password",
    "tailscaleInstalling": "Installing",
    "tailscaleSudoLabel": "Sudo-lösenord (krävs på macOS/Linux)",
    "ngrokTitle": "ngrok tunnel",
    "ngrokRunning": "Löpning",
    "ngrokStarting": "Startar",
    "ngrokStoppedState": "Slutade",
    "ngrokNeedsAuth": "Behöver Auth",
    "ngrokNotInstalled": "Ej installerad",
    "ngrokUnsupported": "Stöds inte",
    "ngrokError": "Fel",
    "ngrokEnable": "Aktivera Tunnel",
    "ngrokDisable": "Stopptunneln",
    "ngrokUrlNotice": "Skapar en offentlig ngrok-tunnel.",
    "ngrokAuthTokenLabel": "Authtoken (krävs om NGROK_AUTHTOKEN inte har ställts in)",
    "ngrokAuthTokenPlaceholder": "Ange din ngrok-authtoken",
    "ngrokLastError": "Senaste fel: {error}",
    "ngrokStarted": "ngroktunneln startade",
    "ngrokStopped": "ngroktunneln stannade",
    "ngrokRequestFailed": "Det gick inte att uppdatera ngrok-tunneln",
    "tokenSaverSubtitle": "Spendera mindre tokens på varje begäran.",
    "tokenSaverToolOutput": "Verktygsutgång",
    "tokenSaverLlmOutput": "LLM-utgång",
    "tokenSaverInputCompression": "Ingångskomprimering",
    "apiEndpointsCatalogUnavailable": "API-katalogen är inte tillgänglig",
    "apiEndpointsSearchPlaceholder": "Sök efter slutpunkter...",
    "apiEndpointsRequiresAuth": "Kräver autentisering",
    "apiEndpointsNoMatch": "Inga slutpunkter matchar ditt filter",
    "localServer": "Lokal server",
    "cloudOmniroute": "Cloud OmniRoute",
    "copyUrl": "Kopiera 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": "Confirm {action} combo \"{combo}\"?",
    "switchComboFailed": "Failed to switch combo state.",
    "switchComboSuccess": "Combo \"{combo}\" updated.",
    "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
    "applyProfileFailed": "Failed to apply resilience profile.",
    "applyProfileSuccess": "Profile \"{profile}\" applied.",
    "confirmResetBreakers": "Reset all circuit breakers?",
    "resetBreakersFailed": "Failed to reset circuit breakers.",
    "resetBreakersSuccess": "Circuit breakers reset.",
    "processStatus": "Process status",
    "online": "Online",
    "offline": "Offline",
    "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": "Kopiera 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": "meddelande/skicka",
    "rpcMethodStream": "meddelande/ström",
    "rpcMethodGet": "uppgifter/få",
    "rpcMethodCancel": "uppgifter/avbryt",
    "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": "Pipeline OK ({latencyMs}ms)",
    "pipelineError": "Rörledningsfel",
    "healthUnknown": "Hälsa okänd",
    "checkingHealth": "Kontrollerar...",
    "checkHealth": "Kontrollera hälsan",
    "pageInfo": "Sida {page} av {totalPages} ({total} totalt)",
    "previous": "Föregående",
    "next": "Nästa",
    "cancel": "Avbryt",
    "save": "Spara",
    "keyPlaceholder": "t.ex. användare.preferenser.tema",
    "contentPlaceholder": "Värde eller JSON-innehåll att komma ihåg"
  },
  "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": "Filtrera färdigheter efter namn, beskrivning eller tagg",
    "allModes": "Alla lägen",
    "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": "Skills Marketplace",
    "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": "Installera Skill"
  },
  "health": {
    "title": "Systemhälsa",
    "description": "Realtidsövervakning av din OmniRoute-instans",
    "healthy": "Frisk",
    "degraded": "Försämrad",
    "down": "Ner",
    "uptime": "Upptid",
    "memory": "Minne",
    "memoryRss": "Minne (RSS)",
    "heap": "Hög",
    "cpu": "CPU",
    "database": "Databas",
    "version": "Version",
    "lastCheck": "Sista kontrollen",
    "providerHealth": "Leverantörshälsa",
    "systemMetrics": "Systemmått",
    "tokenHealth": "Token Health",
    "refreshAll": "Uppdatera alla",
    "checkNow": "Kontrollera nu",
    "loadingHealth": "Läser in hälsodata...",
    "failedToLoad": "Det gick inte att läsa in hälsodata: {error}",
    "retry": "Försök igen",
    "allOperational": "Alla system i drift",
    "issuesDetected": "Systemproblem upptäcktes",
    "updatedAt": "Uppdaterad {time}",
    "latency": "Latens",
    "latencyP50": "p50",
    "latencyP95": "s 95",
    "latencyP99": "s 99",
    "millisecondsShort": "{value}ms",
    "notAvailable": "—",
    "totalRequests": "Totalt antal förfrågningar",
    "noDataYet": "Inga uppgifter ännu",
    "promptCache": "Fråga Cache",
    "entries": "Inlägg",
    "hitRate": "Träfffrekvens",
    "hitsMisses": "Träffar/missar",
    "signatureCache": "Signaturcache",
    "signatureDefaults": "Standardvärden",
    "signatureTool": "Verktyg",
    "signatureFamily": "Familj",
    "signatureSession": "Session",
    "recovering": "Återhämtar sig",
    "noCBData": "Inga strömbrytardata tillgängliga. Gör några förfrågningar först.",
    "providerHealthStatusAria": "Leverantörens hälsostatus",
    "issuesLabel": "Problem upptäckta",
    "operational": "Operativt",
    "providers": "Leverantörer",
    "configuredProvidersLabel": "Konfigurerad i instrumentpanelen",
    "configuredProvidersHint": "Leverantörer med autentiseringsuppgifter sparade i /dashboard/providers, oavsett körtidstillstånd.",
    "activeProviders": "{count} active",
    "activeProvidersHint": "Konfigurerade leverantörer som för närvarande är aktiverade för routingförfrågningar.",
    "monitoredProviders": "{count} monitored",
    "monitoredProvidersHint": "Leverantörer spåras för närvarande av strömbrytare hälsoövervakare.",
    "healthyCount": "{count} frisk",
    "nodeVersion": "Nod {version}",
    "failures": "{count} fel",
    "failuresPlural": "{count} fel",
    "lastFailure": "Sist",
    "rateLimitStatus": "Beloppsgränsstatus",
    "activeLimiters": "{count} aktiv begränsare",
    "activeLimitersPlural": "{count} aktiva begränsare",
    "queued": "I kö",
    "queuedCount": "{count} i kö",
    "running": "löpning",
    "runningCount": "{count} igång",
    "ok": "OK",
    "activeLockouts": "Aktiva lockouter",
    "resetConfirm": "Återställa alla strömbrytare till friskt tillstånd? Detta kommer att radera alla felräkningar och återställa alla leverantörer till driftstatus.",
    "resetAllTitle": "Återställ alla strömbrytare till friskt tillstånd",
    "resetting": "Återställer...",
    "resetAll": "Återställ alla",
    "until": "Tills {time}",
    "limitExhausted": "Exhausted",
    "learnedFromHeaders": "Learned from headers",
    "remainingOfLimit": "{remaining}/{limit} remaining",
    "throttleStatus": "Throttle: {value}",
    "lastHeaderUpdate": "Header update: {age}",
    "databaseHealth": "Databashälsa",
    "stickyBoundSessions": "Sticky-bound sessioner",
    "sessionsByApiKey": "Sessioner med API-nyckel",
    "noActiveSessionsTracked": "Inga aktiva sessioner spårade ännu.",
    "noSessionQuotaMonitorsActive": "Inga sessionskvotövervakare aktiva.",
    "gracefulDegradationStatus": "Graciös nedbrytningsstatus",
    "additionalModels": "+{count} fler modeller",
    "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": "Systemtelemetri",
    "description": "Rullande begäran, körtid, session och minnessignaler från denna OmniRoute-process.",
    "uptime": "Drifttid",
    "totalRequests": "Totalt antal förfrågningar",
    "avgLatency": "Genomsnittlig latens",
    "errorRate": "Felfrekvens",
    "activeConnections": "Aktiva anslutningar",
    "memoryUsage": "Minnesanvändning",
    "latencyTrend": "Latens trend",
    "throughputTrend": "Genomströmningstrend",
    "memoryTrend": "Minnestrend",
    "refresh": "Uppdatera",
    "updatedAt": "Uppdaterad {time}",
    "loadFailed": "Det gick inte att ladda telemetri.",
    "partialData": "Telemetri är delvis tillgänglig: {error}"
  },
  "mitm": {
    "title": "MITM proxy",
    "description": "Transparent proxy för att avlyssna och dirigera klientförfrågningar.",
    "enable": "Aktivera MITM Proxy",
    "enableDesc": "Starta eller stoppa den lokala avlyssningsprocessen och DNS-åsidosättning.",
    "status": "Status",
    "running": "Löpning",
    "stopped": "Slutade",
    "start": "Starta",
    "stop": "Sluta",
    "refresh": "Uppdatera",
    "port": "Proxyport",
    "apiKey": "Router API-nyckel",
    "apiKeyPlaceholder": "Valfritt; faller tillbaka till en lokal nyckel",
    "sudoPassword": "Sudo lösenord",
    "cachedPassword": "Cachad för denna process",
    "saveSettings": "Spara inställningar",
    "settingsSaved": "MITM-inställningarna sparade.",
    "startedSuccess": "MITM-proxy startade.",
    "stoppedSuccess": "MITM-proxy stoppade.",
    "saveFailed": "Det gick inte att uppdatera MITM-inställningarna.",
    "loadFailed": "Det gick inte att läsa in MITM-inställningar.",
    "invalidPort": "Transparent MITM-avlyssning kräver för närvarande port 443.",
    "certificate": "CA-certifikat",
    "certificateReady": "Certifikat är tillgängligt för klientförtroendeinstallation.",
    "certificateMissing": "Certifikatet har inte genererats ännu.",
    "available": "Tillgänglig",
    "missing": "Saknas",
    "downloadCert": "Ladda ner CA-certifikat",
    "regenerateCert": "Återskapa certifikat",
    "regenerateConfirm": "Detta kommer att ogiltigförklara befintligt klientförtroende. Fortsätta?",
    "regenerateSuccess": "MITM-certifikat regenererat.",
    "regenerateFailed": "Det gick inte att återskapa MITM-certifikatet.",
    "targetRoutes": "Målvägar",
    "interceptedRequests": "Avlyssnade förfrågningar",
    "activeConnections": "Aktiva anslutningar",
    "dnsConfigured": "DNS konfigurerad",
    "pid": "PID",
    "lastIntercept": "Sista intercept",
    "target": "Mål",
    "host": "Värd",
    "localPort": "Lokal hamn",
    "endpoints": "Slutpunkter",
    "enabled": "Aktiverad",
    "configured": "Konfigurerad",
    "yes": "Ja",
    "no": "Nej",
    "noTargets": "Inga målrutter har konfigurerats."
  },
  "limits": {
    "title": "Gränser och kvoter",
    "rateLimit": "Prisgräns",
    "remaining": "Kvar",
    "requestsPerMinute": "Önskemål/min",
    "tokensPerMinute": "Poletter/min",
    "dailyLimit": "Daglig gräns"
  },
  "logs": {
    "title": "Loggar",
    "requestLogs": "Begär loggar",
    "proxyLogs": "Proxyloggar",
    "auditLog": "Revisionslogg",
    "console": "Konsol",
    "auditLogDesc": "Administrativa åtgärder och säkerhetshändelser",
    "loading": "Laddar...",
    "refresh": "Uppdatera",
    "filterByAction": "Filtrera efter åtgärd...",
    "filterByActor": "Filtrera efter skådespelare...",
    "filterEntriesAria": "Filtrera granskningsloggposter",
    "filterByActionTypeAria": "Filtrera efter åtgärdstyp",
    "filterByActorAria": "Filtrera efter skådespelare",
    "refreshAuditLogAria": "Uppdatera granskningsloggen",
    "tableAria": "Granskningsloggposter",
    "failedFetchAuditLog": "Det gick inte att hämta granskningsloggen",
    "showing": "Visar {count} poster (offset {offset})",
    "search": "Sök",
    "timestamp": "Tidsstämpel",
    "action": "Åtgärd",
    "actor": "Skådespelare",
    "target": "Mål",
    "details": "Detaljer",
    "ipAddress": "IP-adress",
    "notAvailable": "—",
    "noEntries": "Inga granskningsloggposter hittades",
    "previous": "Föregående",
    "next": "Nästa",
    "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": "Rensa alla",
    "confirmClearActiveRequests": "Rensa alla aktiva förfrågningar?",
    "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": "Välkommen",
    "security": "Säkerhet",
    "test": "Testa",
    "ready": "Klart!",
    "setPassword": "Ange lösenord",
    "addProvider": "Lägg till din första leverantör",
    "getStarted": "Kom igång",
    "skip": "Hoppa över",
    "skipWizard": "Hoppa över guiden helt",
    "skipPassword": "Hoppa över lösenordsinställningar",
    "skipAndContinue": "Hoppa över och fortsätt",
    "passwordLabel": "Lösenord",
    "confirmPassword": "Bekräfta lösenord",
    "enterPassword": "Ange lösenord",
    "confirmPasswordPlaceholder": "Bekräfta lösenord",
    "passwordsMismatch": "Lösenord stämmer inte överens",
    "setupComplete": "Installationen är klar!",
    "goToDashboard": "Gå till Dashboard →",
    "welcomeDesc": "OmniRoute är din lokala AI API-proxy. Den dirigerar förfrågningar till flera AI-leverantörer med lastbalansering, failover och användningsspårning.",
    "multiProvider": "Flera leverantörer",
    "usageTracking": "Användningsspårning",
    "securityDesc": "Ställ in ett lösenord för att skydda din instrumentpanel, eller hoppa över nu.",
    "providerDesc": "Anslut din första AI-leverantör. Du kan lägga till mer senare.",
    "apiKeyRequired": "API-nyckel (krävs)",
    "customUrlOptional": "Anpassad webbadress (valfritt)",
    "testDesc": "Låt oss verifiera att din leverantörsanslutning fungerar.",
    "runTest": "Kör anslutningstest",
    "testingConnection": "Testar anslutning...",
    "connectionSuccessful": "Anslutningen lyckades! Din leverantör är redo.",
    "noProviderFound": "Ingen leverantör hittades. Du kan lägga till en från instrumentpanelen senare.",
    "testFailed": "Testet misslyckades, men du kan konfigurera detta senare.",
    "couldNotTest": "Kunde inte testa just nu. Du kan testa från instrumentpanelen.",
    "doneDesc": "Du är redo! Din OmniRoute-instans är konfigurerad och redo att proxy AI-förfrågningar.",
    "yourEndpoint": "Din slutpunkt:",
    "continue": "Fortsätt",
    "retry": "Försök igen",
    "failedSetPassword": "Det gick inte att ange lösenord. Försök igen.",
    "failedAddProvider": "Det gick inte att lägga till leverantör. Försök igen.",
    "connectionError": "Anslutningsfel. Försök igen.",
    "provider": "Leverantör",
    "apiKeyHelp": "En API-nyckel är ett lösenord för AI-tjänster. Skaffa en från din leverantörs webbplats (t.ex. platform.openai.com, console.anthropic.com).",
    "tier": {
      "subtitle": "OmniRoute organiserar leverantörer i tre nivåer så routing föredrar den mest tillförlitliga vägen till lägsta kostnad först.",
      "tier1": {
        "label": "Premium-kunder",
        "description": "Förstklassiga CLI:er med inbyggda autentiseringsflöden och resonemangsmodeller."
      },
      "tier2": {
        "label": "Kostnadsoptimerad",
        "description": "Billiga leverantörer med hög genomströmning som används för daglig trafik."
      },
      "tier3": {
        "label": "Fallback & specialitet",
        "description": "Lokalt värd eller specialitetsslutpunkter som används som reservdelar."
      },
      "configure": "Konfigurera leverantörer"
    },
    "tierFlowDiagramAlt": "OmniRoute 3-nivå reservdiagram",
    "apiKeyMgmt": "API Key Mgmt"
  },
  "providers": {
    "title": "Leverantörer",
    "allProviders": "Alla leverantörer",
    "audioProviders": "Ljudleverantörer",
    "showFreeOnly": "Endast gratis",
    "addProvider": "Lägg till leverantör",
    "addFirstProvider": "Lägg till din första leverantör",
    "addFirstProviderDesc": "Anslut en AI-leverantör för att börja dirigera förfrågningar via OmniRoute. Du kan använda kostnadsfria leverantörer, API-nycklar eller OAuth-konton.",
    "learnMore": "Läs mer",
    "editProvider": "Redigera leverantör",
    "deleteProvider": "Ta bort leverantör",
    "noProviders": "Inga leverantörer har konfigurerats",
    "modelAvailability": "Modelltillgänglighet",
    "accounts": "konton",
    "newAccount": "Nytt konto",
    "deleteConfirm": "Är du säker på att du vill ta bort den här leverantören?",
    "testing": "Testar...",
    "testConnection": "Testa anslutningen",
    "testSuccess": "Anslutningen lyckades",
    "testFailed": "Anslutning misslyckades",
    "available": "Tillgänglig",
    "cooldown": "Nedkylning",
    "unavailable": "Ej tillgänglig",
    "unknown": "Okänd",
    "oauthLabel": "OAuth",
    "compatibleLabel": "Kompatibel",
    "chat": "Chatta",
    "responses": "Svar",
    "messages": "Meddelanden",
    "oauthProviders": "OAuth-leverantörer",
    "freeProviders": "Gratis leverantörer",
    "apiKeyProviders": "API-nyckelleverantörer",
    "compatibleProviders": "API-nyckelkompatibla leverantörer",
    "testAll": "Testa alla",
    "testAllOAuth": "Testa alla OAuth-anslutningar",
    "testAllFree": "Testa alla gratisanslutningar",
    "testAllApiKey": "Testa alla API-nyckelanslutningar",
    "testAllCompatible": "Testa alla kompatibla anslutningar",
    "connected": "{count} Ansluten",
    "errorCount": "{count} Fel ({code})",
    "errorCountNoCode": "{count} Fel",
    "warningCount": "{count} Varning",
    "noConnections": "Inga anslutningar",
    "expiredBadge": "Expired",
    "expiringSoonBadge": "Expiring Soon",
    "freeTier": "Gratis nivå",
    "freeTierAvailable": "Gratis nivå tillgänglig",
    "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": "Utfasad",
    "deprecatedProvider": "Denna leverantör har fasats ut",
    "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": "Inaktiverad",
    "enableProvider": "Aktivera leverantör",
    "disableProvider": "Inaktivera leverantör",
    "testResults": "Testresultat",
    "noCompatibleYet": "Inga kompatibla leverantörer har lagts till ännu",
    "compatibleHint": "Använd knapparna ovan för att lägga till OpenAI- eller Anthropic-kompatibla slutpunkter",
    "addOpenAICompatible": "Lägg till OpenAI-kompatibel",
    "addAnthropicCompatible": "Lägg till Antropisk kompatibel",
    "addNewProvider": "Lägg till ny leverantör",
    "backToProviders": "Tillbaka till leverantörer",
    "configureNewProvider": "Konfigurera en ny AI-leverantör att använda med dina applikationer.",
    "providerLabel": "Leverantör",
    "selectProvider": "Välj en leverantör",
    "selectedProvider": "Vald leverantör",
    "authMethod": "Autentiseringsmetod",
    "apiKeyLabel": "API-nyckel",
    "apiKeyRequired": "API-nyckel krävs",
    "selectProviderRequired": "Välj en leverantör",
    "enterApiKey": "Ange din API-nyckel",
    "apiKeySecure": "Din API-nyckel kommer att krypteras och lagras säkert.",
    "oauth2Connect": "Anslut med OAuth2",
    "oauth2Label": "OAuth2",
    "oauth2Desc": "Anslut ditt konto med OAuth2-autentisering.",
    "displayName": "Visningsnamn",
    "displayNamePlaceholder": "t.ex. Production API, Dev Environment",
    "displayNameHint": "Valfritt. Ett vänligt namn för att identifiera denna konfiguration.",
    "active": "Aktiv",
    "activeDescription": "Aktivera denna leverantör för användning i dina applikationer",
    "cancel": "Avbryt",
    "createProvider": "Skapa leverantör",
    "failedCreate": "Det gick inte att skapa leverantör",
    "errorOccurred": "Ett fel uppstod. Försök igen.",
    "modelStatus": "Modellstatus",
    "showConfiguredOnly": "Configured only",
    "allModelsOperational": "Alla modeller i drift",
    "modelsWithIssues": "{count} modell(er) med problem",
    "allModelsNormal": "Alla modeller svarar normalt.",
    "cooldownCleared": "Nedkylning rensad för {model}",
    "failedClearCooldown": "Det gick inte att rensa nedkylningen",
    "loadingAvailability": "Laddar modelltillgänglighet...",
    "clearCooldown": "Rensa",
    "clearing": "Rensar...",
    "until": "Tills {time}",
    "providerTestFailed": "Providertestet misslyckades",
    "providerTestTimeout": "Provider test timed out — too many connections to test at once",
    "modeTest": "{mode} Test",
    "passedCount": "{count} godkänd",
    "failedCount": "{count} misslyckades",
    "testedCount": "{count} testad",
    "millisecondsAbbr": "{value}ms",
    "okShort": "OK",
    "errorShort": "FEL",
    "noActiveConnectionsInGroup": "Inga aktiva anslutningar hittades för den här gruppen.",
    "allTestsPassed": "Alla {total} tester godkända",
    "testSummary": "{passed}/{total} godkänd, {failed} misslyckades",
    "nameLabel": "Namn",
    "prefixLabel": "Prefix",
    "baseUrlLabel": "Bas-URL",
    "apiTypeLabel": "API-typ",
    "prefixHint": "Obligatoriskt. Unikt prefix för modellnamn.",
    "nameHint": "Obligatoriskt. En vänlig etikett för denna nod.",
    "baseUrlHint": "Obligatoriskt.  Providers API-basadress.",
    "anthropicPrefixPlaceholder": "ac-prod",
    "openaiPrefixPlaceholder": "oc-prod",
    "anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
    "openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
    "validateConnection": "Validera anslutning",
    "validating": "Validerar...",
    "connectionValid": "Anslutningen är giltig!",
    "connectionFailed": "Anslutning misslyckades. Kontrollera URL och nyckel.",
    "testKeyLabel": "Testa API-nyckel",
    "testKeyPlaceholder": "sk-... (endast för validering)",
    "providerNotFound": "Det gick inte att hitta leverantören",
    "deleteConnectionConfirm": "Vill du ta bort den här anslutningen?",
    "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": "Det gick inte att ange alias",
    "failedSaveConnection": "Det gick inte att spara anslutningen",
    "failedSaveConnectionRetry": "Det gick inte att spara anslutningen. Försök igen.",
    "failedRetestConnection": "Det gick inte att testa om anslutningen",
    "deleteCompatibleNodeConfirm": "Ta bort denna {type} kompatibla nod?",
    "anthropicCompatibleDetails": "Antropiska kompatibla detaljer",
    "openaiCompatibleDetails": "OpenAI-kompatibla detaljer",
    "messagesApi": "Messages API",
    "responsesApi": "Responses API",
    "embeddings": "Embeddings",
    "audioTranscriptions": "Audio Transcriptions",
    "audioSpeech": "Audio Speech",
    "imagesGenerations": "Images Generations",
    "chatCompletions": "Chattavslut",
    "importingModels": "Importerar...",
    "importFromModels": "Importera från /models",
    "modelsImported": "{count} models imported",
    "allModelsAlreadyImported": "Alla modeller är redan importerade",
    "noNewModelsToImport": "Inga nya modeller att importera — alla modeller finns redan i registret eller listan över anpassade modeller",
    "skippingExistingModels": "Hoppar över {count} befintliga modeller",
    "autoSync": "Automatisk synkronisering",
    "autoSyncTooltip": "Uppdatera modelllistan automatiskt var 24:e timme (konfigurerbar via MODEL_SYNC_INTERVAL_HOURS)",
    "autoSyncEnabled": "Automatisk synkronisering aktiverad — modeller uppdateras regelbundet",
    "autoSyncDisabled": "Automatisk synkronisering inaktiverad",
    "autoSyncToggleFailed": "Det gick inte att växla automatisk synkronisering",
    "clearAllModels": "Rensa alla modeller",
    "clearAllModelsConfirm": "Är du säker på att du vill ta bort alla modeller för den här leverantören? Detta kan inte ångras.",
    "clearAllModelsSuccess": "Alla modeller rensade",
    "clearAllModelsFailed": "Det gick inte att rensa modeller",
    "addConnectionToImport": "Lägg till en anslutning för att aktivera import.",
    "noModelsConfigured": "Inga modeller har konfigurerats",
    "connectionCount": "{count} anslutning(ar)",
    "fetchingModels": "Hämtar tillgängliga modeller...",
    "failedFetchModels": "Det gick inte att hämta modeller",
    "noModelsFound": "Inga modeller hittades",
    "importFailed": "Importen misslyckades",
    "noNewModelsAdded": "Inga nya modeller tillkom.",
    "adding": "Lägger till...",
    "close": "Close",
    "importingModelsTitle": "Importera modeller",
    "copyModel": "Kopiera modell",
    "filterModels": "Filtrera modeller…",
    "modelsActive": "aktiva",
    "showModel": "Visa modell",
    "hideModel": "Dölj modell",
    "removeModel": "Ta bort modellen",
    "rateLimitProtected": "Skyddad",
    "rateLimitUnprotected": "Oskyddad",
    "enableRateLimitProtection": "Klicka för att aktivera hastighetsgränsskydd",
    "disableRateLimitProtection": "Klicka för att inaktivera skyddet för hastighetsgränsen",
    "productionKey": "Produktionsnyckel",
    "enterNewApiKey": "Ange ny API-nyckel",
    "codexApplyModalTitle": "Ansök till Local Codex",
    "codexApplyTargetLabel": "Målväg",
    "codexApplyBackupLabel": "Säkerhetskopieringar",
    "codexApplyWarning": "Detta kommer att ersätta den befintliga auth.json. Fortsätta?",
    "codexApplyConfirmCheckbox": "Jag bekräftar att jag vill ersätta den befintliga auth.json",
    "codexApply": "Ansök",
    "bulkTabSingle": "Singel",
    "bulkTabBulkAdd": "Bulk Lägg till",
    "bulkAddFormatHint": "En nyckel per rad. Format: namn|apiKey eller bara apiKey (automatiskt namngiven av index).",
    "bulkValidateKeys": "Validera varje nyckel innan du sparar (långsammare)",
    "bulkAddAllKeys": "Lägg till alla nycklar",
    "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
    "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
    "optional": "Valfritt",
    "anthropicCompatibleName": "Antropisk kompatibel",
    "openaiCompatibleName": "OpenAI-kompatibel",
    "failedImportModels": "Det gick inte att importera modeller",
    "noModelsReturnedFromEndpoint": "Inga modeller returnerades från /models endpoint.",
    "importingModelsProgress": "Importerar {current} av {total} modeller...",
    "foundModelsStartingImport": "Hittade {count} modeller. Startar import...",
    "importingModelById": "Importerar {modelId}...",
    "importSuccessCount": "{count, plural, one {# model} other {# models}} har importerats framgångsrikt!",
    "noNewModelsAddedExisting": "Inga nya modeller har lagts till (alla finns redan).",
    "importDoneCount": "✓ Klart! {count, plural, one {# model imported.} other {# models imported.}}",
    "unexpectedErrorOccurred": "Ett oväntat fel inträffade",
    "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
    "messagesPath": "meddelanden",
    "responsesPath": "svar",
    "chatCompletionsPath": "chatt/avslut",
    "add": "Lägg till",
    "edit": "Redigera",
    "delete": "Ta bort",
    "anthropic": "Antropisk",
    "openai": "OpenAI",
    "singleConnectionPerCompatible": "Endast en anslutning tillåts per kompatibel nod. Lägg till ytterligare en nod om du behöver fler anslutningar.",
    "connections": "Anslutningar",
    "providerProxyTitleConfigured": "Leverantörsproxy: {host}",
    "configured": "konfigurerad",
    "providerProxyConfigureHint": "Konfigurera proxy för alla anslutningar från denna leverantör",
    "providerProxy": "Leverantörs proxy",
    "repairEnv": "Repair env",
    "repairEnvWorking": "Repairing...",
    "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
    "repairEnvSuccess": "OAuth defaults restored",
    "repairEnvFailed": "Failed to repair .env",
    "noConnectionsYet": "Inga anslutningar än",
    "addFirstConnectionHint": "Lägg till din första anslutning för att komma igång",
    "addConnection": "Lägg till anslutning",
    "availableModels": "Tillgängliga modeller",
    "builtInModels": "Built-in models",
    "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
    "pageAutoRefresh": "Sidan uppdateras automatiskt...",
    "statusDisabled": "funktionshindrade",
    "statusConnected": "ansluten",
    "statusRuntimeIssue": "körtidsproblem",
    "statusAuthFailed": "auth misslyckades",
    "statusRateLimited": "sats begränsad",
    "statusNetworkIssue": "nätverksproblem",
    "statusTestUnsupported": "testet stöds inte",
    "statusUnavailable": "otillgänglig",
    "statusFailed": "misslyckades",
    "statusError": "fel",
    "oauthAccount": "OAuth-konto",
    "errorTypeRuntime": "Lokal körtid",
    "errorTypeUpstreamAuth": "Uppströms auth",
    "errorTypeMissingCredential": "Saknar legitimation",
    "errorTypeRefreshFailed": "Uppdateringen misslyckades",
    "errorTypeTokenExpired": "Token har löpt ut",
    "errorTypeRateLimited": "Begränsat pris",
    "errorTypeUpstreamUnavailable": "Uppströms ej tillgänglig",
    "errorTypeNetworkError": "Nätverksfel",
    "errorTypeTestUnsupported": "Testet stöds inte",
    "errorTypeUpstreamError": "Uppströmsfel",
    "proxySourceGlobal": "Global",
    "proxySourceProvider": "Leverantör",
    "proxySourceKey": "Nyckel",
    "proxyConfiguredBySource": "Proxy ({source}): {host}",
    "autoPriority": "Auto: {priority}",
    "proxy": "Proxy",
    "retestAuthentication": "Testa om autentisering",
    "retest": "Testa igen",
    "disableConnection": "Inaktivera anslutningen",
    "enableConnection": "Aktivera anslutning",
    "reauthenticateConnection": "Autentisera den här anslutningen igen",
    "proxyConfig": "Proxykonfiguration",
    "aliasExistsAlert": "Aliaset \"{alias}\" finns redan. Använd en annan modell eller redigera befintligt alias.",
    "openRouterAnyModelHint": "OpenRouter stöder alla modeller. Lägg till modeller och skapa alias för snabb åtkomst.",
    "modelIdFromOpenRouter": "Modell-ID (från OpenRouter)",
    "openRouterModelPlaceholder": "antropisk/claude-3-opus",
    "customModels": "Anpassade modeller",
    "customModelsHint": "Lägg till modell-ID:n som inte finns i standardlistan. Dessa kommer att vara tillgängliga för routing.",
    "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
    "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
    "compatAdjustmentsTitle": "Compatibility",
    "compatButtonLabel": "Compatibility",
    "compatToolIdShort": "Tool ID 9",
    "compatDeveloperShort": "Developer role",
    "compatDoNotPreserveDeveloper": "Do not preserve developer role",
    "compatBadgeNoPreserve": "No preserve",
    "compatProtocolLabel": "Client request protocol",
    "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
    "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": "Växla kvot per modell",
    "modelId": "Modell ID",
    "customModelPlaceholder": "t.ex. gpt-4.5-turbo",
    "loading": "Laddar...",
    "removeCustomModel": "Ta bort anpassad modell",
    "noCustomModels": "Inga anpassade modeller har lagts till ännu.",
    "allSuggestedAliasesExist": "Alla föreslagna alias finns redan. Välj en annan modell eller ta bort motstridiga alias.",
    "failedSaveCustomModel": "Det gick inte att spara anpassad modell",
    "modelAddedSuccess": "Modellen {modelId} har lagts till",
    "failedAddModelTryAgain": "Det gick inte att lägga till modell. Försök igen.",
    "failedSaveImportedModel": "Det gick inte att spara importerad modell till anpassad databas",
    "failedImportModelsTryAgain": "Det gick inte att importera modeller. Försök igen.",
    "failedRemoveModelFromDatabase": "Det gick inte att ta bort modellen från databasen",
    "modelRemovedSuccess": "Modellen har tagits bort",
    "failedDeleteModelTryAgain": "Det gick inte att ta bort modellen. Försök igen.",
    "compatibleModelsDescription": "Lägg till {type}-kompatibla modeller manuellt eller importera dem från /models-slutpunkten.",
    "anthropicCompatibleModelPlaceholder": "claude-3-opus-20240229",
    "openaiCompatibleModelPlaceholder": "gpt-4o",
    "apiKeyValidationFailed": "API-nyckelvalidering misslyckades. Kontrollera din nyckel och försök igen.",
    "addProviderApiKeyTitle": "Lägg till {provider} API-nyckel",
    "checking": "Kontrollerar...",
    "check": "Kontrollera",
    "valid": "Giltigt",
    "invalid": "Ogiltig",
    "creating": "Skapar...",
    "validationChecksAnthropicCompatible": "Validering kontrollerar {provider} genom att verifiera API-nyckeln.",
    "validationChecksOpenAiCompatible": "Valideringskontroller {provider} via /models på din bas-URL.",
    "priorityLabel": "Prioritet",
    "saving": "Sparar...",
    "save": "Spara",
    "editConnection": "Redigera anslutning",
    "accountName": "Kontonamn",
    "email": "E-post",
    "healthCheckMinutes": "Hälsokontroll (min)",
    "healthCheckHint": "Proaktivt uppdateringsintervall för token. 0 = inaktiverad.",
    "selectAllModels": "Select all",
    "deselectAllModels": "Deselect all",
    "modelsActiveCount": "{active}/{total} active",
    "noModelsMatch": "No models match \"{filter}\"",
    "groupLabel": "Environment",
    "groupPlaceholder": "e.g. eKaizen, Personal",
    "failedTestConnection": "Det gick inte att testa anslutningen",
    "failed": "Misslyckades",
    "leaveBlankKeepCurrentApiKey": "Lämna tomt för att behålla den aktuella API-nyckeln.",
    "editCompatibleTitle": "Redigera {type} Kompatibel",
    "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
    "apiKeyForCheck": "API-nyckel (för kontroll)",
    "compatibleProdPlaceholder": "{type} Kompatibel (Prod)",
    "tokenRefreshed": "Token refreshed successfully",
    "tokenRefreshFailed": "Token refresh failed",
    "applyCodexAuthLocal": "Apply auth",
    "exportCodexAuthFile": "Export auth",
    "applyClaudeAuthLocal": "Tillämpa autentisering",
    "exportClaudeAuthFile": "Exportera auth",
    "importClaudeAuth": "Importera auth",
    "claudeApplyModalTitle": "Ansök till lokala Claude Code",
    "claudeApplyTargetLabel": "Målväg",
    "claudeApplyBackupLabel": "Säkerhetskopieringar",
    "claudeApplyMcpHint": "Befintligt MCP OAuth-tillstånd kommer att bevaras.",
    "claudeApplyWarning": "Detta kommer att ersätta den befintliga claudeAiOauth-sektionen. Fortsätta?",
    "claudeApplyConfirmCheckbox": "Jag bekräftar att jag vill ersätta den befintliga claudeAiOauth-sektionen",
    "claudeApply": "Ansök",
    "claudeAuthAppliedLocal": "Claude auth ansökte lokalt",
    "claudeAuthApplyFailed": "Det gick inte att tillämpa Claude auth lokalt",
    "claudeAuthExported": "Claude auth-fil exporterad",
    "claudeAuthExportFailed": "Det gick inte att exportera Claude auth-fil",
    "claudeImportModalTitle": "Importera Claude Auth",
    "claudeImportTabSingle": "Singel",
    "claudeImportTabBulk": "Bulk",
    "claudeImportTabUpload": "Ladda upp fil",
    "claudeImportTabPaste": "Klistra in JSON",
    "claudeImportFileLabel": "Välj .credentials.json",
    "claudeImportPasteLabel": "Klistra in JSON-innehållet",
    "claudeImportEmailLabel": "Kontots e-postadress",
    "claudeImportNameLabel": "Anslutningsnamn (valfritt)",
    "claudeImportOverwriteLabel": "Ersätt befintlig anslutning om kontot redan finns",
    "claudeImportSubmit": "Importera",
    "claudeImportSuccess": "Claude-anslutningen har importerats",
    "claudeImportInvalidJson": "Det gick inte att analysera filen som JSON",
    "claudeImportInvalidShape": "Filen är inte en giltig .credentials.json",
    "claudeImportDuplicate": "Kontot finns redan – aktivera \"Ersätt befintlig\" för att skriva över",
    "claudeImportIdentityUnverified": "Bootstrap kunde inte verifiera kontot. Aktivera \"Ersätt befintlig\" eller ange ett e-postmeddelande.",
    "claudeImportFailed": "Det gick inte att importera Claude auth",
    "claudeImportBulkModeUpload": "Ladda upp filer",
    "claudeImportBulkModePaste": "Klistra in JSON-array",
    "claudeImportBulkModeZip": "Ladda upp ZIP",
    "claudeImportBulkUploadHint": "Släpp eller hämta upp till 50 .credentials.json-filer (256 KB vardera, totalt 10 MB).",
    "claudeImportBulkPasteHint": "Klistra in en rad objekt: [{ json, name?, email? }, ...]",
    "claudeImportBulkZipHint": "ZIP som innehåller .json-poster. Max 50 poster, 10MB uppackad.",
    "claudeImportBulkSubmit": "Importera alla",
    "claudeImportBulkSuccess": "Importerade {count} Claude-anslutningar",
    "claudeImportBulkFailed": "Vissa poster kunde inte importeras",
    "claudeImportBulkZipExtracting": "Extraherar ZIP...",
    "claudeImportBulkZipError": "Det gick inte att extrahera ZIP",
    "applyGeminiAuthLocal": "Tillämpa autentisering",
    "exportGeminiAuthFile": "Exportera auth",
    "importGeminiAuth": "Importera auth",
    "geminiApplyModalTitle": "Ansök till Local Gemini CLI",
    "geminiApplyTargetLabel": "Målväg",
    "geminiApplyBackupLabel": "Säkerhetskopieringar",
    "geminiApplyAccountsHint": "Det aktiva kontot google_accounts.json kommer att uppdateras för att matcha denna anslutning.",
    "geminiApplyWarning": "Detta kommer att ersätta den befintliga oauth_creds.json och uppdatera google_accounts.json. Fortsätta?",
    "geminiApplyConfirmCheckbox": "Jag bekräftar att jag vill ersätta den befintliga oauth_creds.json",
    "geminiApply": "Ansök",
    "geminiAuthAppliedLocal": "Gemini-autentisering tillämpas lokalt",
    "geminiAuthApplyFailed": "Det gick inte att tillämpa Gemini-autentisering lokalt",
    "geminiAuthExported": "Gemini auth-fil exporterad",
    "geminiAuthExportFailed": "Det gick inte att exportera Gemini auth-fil",
    "geminiImportModalTitle": "Importera Gemini Auth",
    "geminiImportTabSingle": "Singel",
    "geminiImportTabBulk": "Bulk",
    "geminiImportTabUpload": "Ladda upp fil",
    "geminiImportTabPaste": "Klistra in JSON",
    "geminiImportFileLabel": "Välj oauth_creds.json",
    "geminiImportPasteLabel": "Klistra in JSON-innehållet",
    "geminiImportEmailLabel": "Kontots e-postadress",
    "geminiImportNameLabel": "Anslutningsnamn (valfritt)",
    "geminiImportOverwriteLabel": "Ersätt befintlig anslutning om kontot redan finns",
    "geminiImportSubmit": "Importera",
    "geminiImportSuccess": "Gemini-anslutningen har importerats",
    "geminiImportInvalidJson": "Det gick inte att analysera filen som JSON",
    "geminiImportInvalidShape": "Filen är inte en giltig oauth_creds.json",
    "geminiImportDuplicate": "Kontot finns redan – aktivera \"Ersätt befintlig\" för att skriva över",
    "geminiImportIdentityUnverified": "Det gick inte att verifiera identiteten från id_token. Aktivera \"Ersätt befintlig\" eller ange ett e-postmeddelande.",
    "geminiImportFailed": "Det gick inte att importera Gemini auth",
    "geminiImportBulkModeUpload": "Ladda upp filer",
    "geminiImportBulkModePaste": "Klistra in JSON-array",
    "geminiImportBulkModeZip": "Ladda upp ZIP",
    "geminiImportBulkUploadHint": "Släpp eller hämta upp till 50 oauth_creds.json-filer (256 KB vardera, totalt 10 MB).",
    "geminiImportBulkPasteHint": "Klistra in en rad objekt: [{ json, name?, email? }, ...]",
    "geminiImportBulkZipHint": "ZIP som innehåller oauth_creds.json-poster. Max 50 poster, 10MB uppackad.",
    "geminiImportBulkSubmit": "Importera alla",
    "geminiImportBulkSuccess": "Importerade {count} Gemini-anslutningar",
    "geminiImportBulkFailed": "Vissa poster kunde inte importeras",
    "geminiImportBulkZipExtracting": "Extraherar ZIP...",
    "geminiImportBulkZipError": "Det gick inte att extrahera 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": "Importera auth",
    "codexImportModalTitle": "Importera Codex Auth",
    "codexImportTabSingle": "Singel",
    "codexImportTabBulk": "Bulk",
    "codexImportTabUpload": "Ladda upp fil",
    "codexImportTabPaste": "Klistra in JSON",
    "codexImportFileLabel": "Välj auth.json",
    "codexImportFileHint": "Välj filen auth.json som exporteras från Codex eller från OmniRoute.",
    "codexImportPasteLabel": "Klistra in JSON-innehållet",
    "codexImportEmailLabel": "Kontots e-postadress",
    "codexImportEmailHint": "Autoupptäckt från filen; redigera om det behövs.",
    "codexImportNameLabel": "Anslutningsnamn (valfritt)",
    "codexImportOverwriteLabel": "Ersätt befintlig anslutning om kontot redan finns",
    "codexImportSubmit": "Importera",
    "codexImportSuccess": "Codex-anslutningen har importerats",
    "codexImportInvalidJson": "Det gick inte att analysera filen som JSON",
    "codexImportInvalidShape": "Filen är inte en giltig Codex auth.json",
    "codexImportDuplicate": "Kontot finns redan – aktivera \"Ersätt befintlig\" för att skriva över",
    "codexImportFailed": "Det gick inte att importera Codex auth",
    "codexImportDetectedEmail": "Upptäckt: {email}",
    "codexImportNoEmailDetected": "Ingen e-post upptäckt i filen",
    "codexImportBulkModeUpload": "Ladda upp filer",
    "codexImportBulkModePaste": "Klistra in lista",
    "codexImportBulkModeZip": "ZIP-arkiv",
    "codexImportBulkUploadHint": "Välj flera .json-filer eller dra och släpp",
    "codexImportBulkPasteHint": "JSON-array [ {...}, {...} ] eller flera JSON:er separerade med --- på sin egen rad",
    "codexImportBulkZipHint": "Ladda upp en .zip som innehåller auth.json-filer (max 50 filer, 10 MB)",
    "codexImportBulkSubmit": "Importera {count} konton",
    "codexImportBulkLimit": "Max 50 filer per import",
    "codexImportBulkSuccess": "{count} har importerats",
    "codexImportBulkFailed": "{count} misslyckades",
    "codexImportBulkZipExtracting": "Extraherar ZIP...",
    "codexImportBulkZipError": "Det gick inte att extrahera 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": "Enterprise & Cloud",
    "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": "Molnagentleverantörer",
    "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": "Öppna t3.chat → DevTools → Application → Local Storage → https://t3.chat, kopiera 'convex-session-id'. Öppna sedan DevTools → Nätverk, kopiera hela Cookie-huvudet från valfri chattförfrågan. Klistra in båda värdena i fälten nedan.",
    "t3ChatWebCookiePlaceholder": "convex-session-id=abc123...",
    "blockClaudeExtraUsageDescription": "Block Claude Extra Usage Description",
    "blockClaudeExtraUsageLabel": "Block Claude Extra Usage Label",
    "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
    "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
    "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
    "ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
    "ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
    "ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
    "ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
    "ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
    "ccCompatibleDetailsTitle": "Cc Compatible Details Title",
    "ccCompatibleLabel": "Cc Compatible Label",
    "ccCompatibleModelsDescription": "Cc Compatible Models Description",
    "ccCompatibleNameHint": "Cc Compatible Name Hint",
    "ccCompatibleNamePlaceholder": "Cc Compatible Name Placeholder",
    "ccCompatiblePrefixHint": "Cc Compatible Prefix Hint",
    "ccCompatiblePrefixPlaceholder": "Cc Compatible Prefix Placeholder",
    "ccCompatibleValidationHint": "Cc Compatible Validation Hint",
    "claudeExtraUsageShort": "Claude Extra Usage Short",
    "claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
    "codex5hToggleTitle": "Codex5H Toggle Title",
    "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
    "codexFastServiceTierLabel": "Codex fast service tier",
    "codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
    "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
    "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
    "compatible": "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": "Ditt Google Cloud Project ID. Krävs för konton med undantag. Ange ditt GCP-projekt-ID för att använda med Gemini CLI.",
    "geminiCliProjectIdLabel": "Google Cloud Project ID",
    "geminiCliProjectIdPlaceholder": "mitt-gcp-projekt-id",
    "antigravityProjectIdHint": "Valfri åsidosättning för begäranden om Antigravity Cloud Code. Lämna tomt om du vill använda projektet som upptäcktes under 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": "Google Cloud Project ID",
    "antigravityProjectIdPlaceholder": "mitt-gcp-projekt-id",
    "grokWebCookieHint": "Grok Web Cookie Hint",
    "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
    "herokuBaseUrlHint": "Heroku Base Url Hint",
    "hideEmail": "Hide Email",
    "imageProviders": "Image Providers",
    "videoProviders": "Videogenerering",
    "embeddingRerankProviders": "Inbäddningar och omplacering",
    "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": "Sök efter leverantörer...",
    "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": "Gratis leverantörer",
    "freeTierLabel": "Gratis nivå tillgänglig",
    "freeTierProvidersDesc": "Leverantörer med gratis nivåer - vissa kräver en API-nyckelregistrering, andra behöver inga referenser alls.",
    "providerSummaryAll": "Totalt",
    "ideProviders": "IDE-leverantörer",
    "ideProvidersDesc": "Redaktörer med inbyggd AI-prenumeration. Använd leverantörssidan för att importera autentiseringsuppgifter direkt från IDE-nyckelringen.",
    "noIdeProviders": "Inga IDE-leverantörer matchar de aktuella filtren.",
    "providerDetailFastTierTooltip": "Tillämpa Codex Fast tier på alla Codex-anslutningar som standard",
    "providerDetailFastDefaultLabel": "Snabb standard",
    "providerDetailBrowserManualConnect": "Webbläsare/manuell anslutning",
    "providerDetailAuthUrl": "Auth URL",
    "providerDetailCallbackUrl": "Callback URL",
    "providerDetailValidClaudeCredentialsFile": "Giltig Claude-referensfil",
    "providerDetailPathAutoDetectedAllOs": "Sökväg upptäcks automatiskt per OS (Linux/Mac/Windows).",
    "providerDetailMyClaudeAccountPlaceholder": "Mitt Claude-konto",
    "providerDetailPathAutoDetected": "Sökvägen upptäcks automatiskt per OS (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": "Dessa leverantörer använder webbläsarsessioner, cookies eller webbtokens istället för API-nycklar. Öppna en leverantör för att lägga till de nödvändiga sessionsuppgifterna.",
    "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": "Introduktionsguide för leverantörer",
    "onboardingWizardShort": "Onboarding Wizard",
    "onboardingWizardDescription": "Anslut API-nyckel, anpassade kompatibla och OAuth-leverantörer med validering, persistens och ett omedelbart anslutningstest.",
    "onboardingStepType": "Typ",
    "onboardingStepProvider": "Leverantör",
    "onboardingStepCredentials": "Inloggningsuppgifter",
    "onboardingStepResult": "Resultat",
    "onboardingTypeApiKeyTitle": "API-nyckelleverantör",
    "onboardingTypeApiKeyText": "Använd inbyggda leverantörer som OpenAI, Anthropic, Gemini, Groq, Azure och mer.",
    "onboardingTypeCustomTitle": "Anpassad kompatibel leverantör",
    "onboardingTypeCustomText": "Skapa en OpenAI-, Anthropic- eller Claude Code-kompatibel slutpunkt och lägg till dess nyckel.",
    "onboardingTypeOAuthTitle": "OAuth-leverantör",
    "onboardingTypeOAuthText": "Återanvänd befintliga OAuth-, enhetskod- eller lokala importflöden för kodningsleverantörer.",
    "onboardingChooseOAuthProvider": "Välj en OAuth-leverantör",
    "onboardingChooseApiKeyProvider": "Välj en API-nyckelleverantör",
    "onboardingChooseProviderDescription": "Välj en leverantör så guidar guiden dig genom autentiseringsuppgifter och testning.",
    "onboardingChangeType": "Ändra typ",
    "onboardingChangeProvider": "Byt leverantör",
    "onboardingSearchProviders": "Sök leverantörer...",
    "onboardingApiKeyOptional": "API-nyckel valfri",
    "onboardingProviderConnected": "Leverantör ansluten",
    "onboardingProviderSavedWithWarnings": "Provider sparad med varningar",
    "onboardingProviderFinished": "Introduktionen av leverantören är klar",
    "onboardingYourProviderConnection": "Din leverantörsanslutning",
    "onboardingTestPassed": "Testet godkänt",
    "onboardingTestFailed": "Testet misslyckades",
    "onboardingOpenProviderDetails": "Öppna leverantörsinformation",
    "onboardingTryInPlayground": "Prova på lekplatsen",
    "onboardingDefaultConnectionName": "{provider} Primär",
    "onboardingTestingConnection": "Testar leverantörsanslutning...",
    "onboardingValidatingCredentials": "Validerar användaruppgifter...",
    "onboardingSavingConnection": "Sparar leverantörsanslutning...",
    "onboardingProviderFailed": "Introduktion av leverantör misslyckades",
    "onboardingCreatingCompatibleProvider": "Skapar kompatibel leverantör...",
    "onboardingSavingCompatibleConnection": "Sparar kompatibel leverantörsanslutning...",
    "onboardingCustomProviderFallbackName": "Anpassad leverantör",
    "onboardingCustomProviderFailed": "Introduktion av anpassad leverantör misslyckades",
    "onboardingLoadingOAuthConnection": "Läser in OAuth-anslutning...",
    "onboardingOAuthNoConnectionFound": "OAuth slutfördes, men ingen leverantörsanslutning hittades.",
    "onboardingOAuthFailed": "OAuth-introduktion misslyckades",
    "onboardingAddProvider": "Lägg till {provider}",
    "onboardingConnectionName": "Anslutningens namn",
    "onboardingApiKeyOptionalLabel": "API-nyckel (valfritt)",
    "onboardingBaseUrlOverride": "Åsidosätt basadress",
    "onboardingBaseUrlOverrideHint": "Valfritt. Lagrat som providerSpecificData.baseUrl.",
    "onboardingRegion": "Region",
    "onboardingSearchCx": "Sök CX/motor-id",
    "onboardingProviderSpecificIdPlaceholder": "Valfritt leverantörsspecifikt id",
    "onboardingCustomUserAgent": "Anpassad användaragent",
    "onboardingWorking": "Jobbar...",
    "onboardingValidateSaveTest": "Validera, spara och testa",
    "onboardingBack": "Tillbaka",
    "onboardingCreateCustomCompatibleProvider": "Skapa anpassad kompatibel leverantör",
    "onboardingCreateCustomCompatibleDescription": "Guiden skapar först en leverantörsnod, lagrar och testar sedan dess API-nyckelanslutning.",
    "onboardingProtocol": "Protokoll",
    "onboardingOpenAiCompatible": "OpenAI-kompatibel",
    "onboardingAnthropicCompatible": "Antropisk-kompatibel",
    "onboardingClaudeCodeCompatible": "Claude Code-kompatibel",
    "onboardingProviderPrefix": "Leverantörsprefix",
    "onboardingProviderPrefixHint": "Används för att generera id för hanterad leverantör.",
    "onboardingChatPath": "Chattväg",
    "onboardingModelsPath": "Modeller väg",
    "onboardingCreateSaveTest": "Skapa, spara och testa",
    "onboardingConnectProvider": "Anslut {provider}",
    "onboardingOAuthFlowDescription": "OmniRoute kommer att öppna det befintliga OAuth-flödet för denna leverantör. Efter inloggning laddar guiden om den sparade anslutningen och kör samma anslutningstest som leverantörssidan.",
    "onboardingStartOAuthFlow": "Starta OAuth-flöde",
    "passthroughModelsDescription": "{provider} accepterar leverantörsbaserade modell-ID:n. Importera från /models eller lägg till anpassade ID:n för routing.",
    "bedrockModelsDescription": "Amazon Bedrock-modeller omfattas av AWS-regionen. Importera från /models eller lägg till Bedrock-modell-ID:n aktiverade i den valda regionen.",
    "bedrockModelPlaceholder": "antropisk.claude-sonnett-4-6",
    "addProviderSessionCookieTitle": "Lägg till {provider} sessionscookie",
    "addProviderWebTokenTitle": "Lägg till {provider} webbtoken",
    "addProviderConnectionTitle": "Lägg till {provider}-anslutning",
    "webTokenCredentialLabel": "Websessionstoken",
    "webNoAuthCredentialLabel": "Ingen legitimation krävs",
    "webCookieCredentialHint": "Obligatorisk cookie: {credential}. Klistra in cookie-rubrikvärdet från din egen inloggade {provider} webbsession. Inkludera inte prefixet Cookie:.",
    "webTokenCredentialHint": "Autentiseringsuppgifter: {credential}. Klistra in tokenvärdet från din egen inloggade {provider} webbsession, eller en DevTools HAR-export om leverantören stöder det.",
    "webCookieEditHint": "Lämna tomt för att behålla den aktuella sessionscookien. Obligatorisk cookie: {credential}.",
    "webTokenEditHint": "Lämna tomt för att behålla den aktuella webbsessionstoken. Autentiseringsuppgifter: {credential}.",
    "webSessionGuideTitle": "Så här får du sessionsuppgifterna",
    "webSessionGuideIntro": "{provider} använder en webbläsarsession istället för en API-nyckel.",
    "webCookieRequiredCredential": "Obligatorisk cookie: {credential}",
    "webTokenRequiredCredential": "Obligatorisk token: {credential}",
    "webSessionGuideStep1": "Logga in på {provider} i din webbläsare.",
    "webSessionGuideStep2": "Öppna webbläsarens utvecklarverktyg och granska en begäran från webbappen.",
    "webSessionGuideStep3": "Kopiera den nödvändiga referensen från leverantörens egen domän. För cookies, kopiera endast värdet för Cookie-huvudet och utelämna Cookie:.",
    "webSessionGuideStep4": "Klistra in den här och kontrollera anslutningen. Om det slutar fungera, logga in igen och ersätt det med ett nytt värde.",
    "webSessionSecurityHint": "Behandla detta som ett lösenord: det kan komma åt ditt inloggade webbkonto tills det löper ut eller återkallas.",
    "webNoAuthGuideTitle": "Ingen legitimation krävs",
    "webNoAuthGuideBody": "{provider} behöver ingen API-nyckel eller cookie. Spara anslutningen för att använda dess kostnadsfria webbslutpunkt.",
    "webSessionCredentialValidationFailed": "Validering av autentiseringsuppgifter för session misslyckades. Logga in igen, kopiera en ny inloggningsinformation och försök igen.",
    "checkCookie": "Kontrollera kakan",
    "checkWebToken": "Kontrollera token"
  },
  "settings": {
    "title": "Inställningar",
    "general": "Allmänt",
    "security": "Säkerhet",
    "appearance": "Utseende",
    "routing": "Routing",
    "cache": "Cache",
    "resilience": "Motståndskraft",
    "routingSettingsIntro": "Styr hur dina förfrågningar dirigeras, omvandlas och skickas till AI-leverantörer.",
    "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": "Automatiskt försök igen, nedkylning och reserv när leverantörer misslyckas.",
    "aiSettingsIntro": "AI-specifika inställningar för att tänka budget, modellbeteende och komprimering.",
    "systemPrompt": "Systemprompt",
    "thinkingBudget": "Tänkande budget",
    "proxy": "Proxy",
    "httpProxy": "HTTP Proxy",
    "1proxy": "1proxy",
    "proxySubTabsAria": "Proxy sections",
    "requestBodyLimitTitle": "Request Body Limit",
    "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
    "requestBodyLimitInputLabel": "Request body limit in MB",
    "requestBodyLimitEmptyError": "Enter a limit in MB",
    "requestBodyLimitWholeNumberError": "Use a whole number",
    "requestBodyLimitMinimumError": "Minimum is {min} MB",
    "requestBodyLimitMaximumError": "Maximum is {max} MB",
    "requestBodyLimitLoadFailed": "Failed to load request limit settings",
    "requestBodyLimitSaveSuccess": "Request body limit saved",
    "requestBodyLimitSaveFailed": "Failed to save request body limit",
    "requestBodyLimitSaving": "Saving...",
    "requestBodyLimitSave": "Save",
    "requestBodyLimitCurrent": "Current: {value}",
    "mitmProxy": "MITM proxy",
    "pricing": "Prissättning",
    "storage": "Förvaring",
    "policies": "Policyer",
    "ipFilter": "IP-filter",
    "comboDefaults": "Combo standard",
    "fallbackChains": "Reservkedjor",
    "changePassword": "Ändra lösenord",
    "enablePassword": "Aktivera lösenord",
    "darkMode": "Mörkt läge",
    "lightMode": "Ljusläge",
    "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": "just nu",
    "modelsDevStats": "Sync Statistics",
    "modelsDevStatsDesc": "Current models.dev data coverage",
    "providers": "Leverantörer",
    "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": "Systemtema",
    "debugToggle": "Enable Debug Mode",
    "sidebarVisibilityToggle": "Show Sidebar Items",
    "enableCache": "Aktivera cache",
    "cacheTTL": "Cache TTL",
    "maxCacheSize": "Max cachestorlek",
    "clearCache": "Rensa cache",
    "cacheCleared": "Cache cleared successfully",
    "clearCacheFailed": "Failed to clear cache",
    "cacheHits": "Cacheträffar",
    "cacheMisses": "Cache missar",
    "hitRate": "Träfffrekvens",
    "cacheEntries": "Cacheposter",
    "cacheSettings": "Cache Settings",
    "semanticCache": "Semantic Cache",
    "maxEntries": "Max Entries",
    "ttlMinutes": "TTL (minutes)",
    "promptCache": "Fråga Cache",
    "strategy": "Strategy",
    "preserveClientCache": "Preserve Client Cache",
    "enabled": "Enabled",
    "loading": "Loading...",
    "saving": "Sparar...",
    "save": "Save",
    "circuitBreaker": "Strömbrytare",
    "retryPolicy": "Försök igen",
    "maxRetries": "Max försöker igen",
    "retryDelay": "Försök igen Fördröjning",
    "timeoutMs": "Timeout (ms)",
    "enableSystemPrompt": "Aktivera System Prompt",
    "systemPromptText": "Systemprompttext",
    "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
    "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
    "autoDisableThreshold": "Ban Threshold",
    "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
    "resilienceStructureTitle": "Resilience Structure",
    "resilienceStructureDesc": "Den här sidan konfigurerar bara beteende. Live breaker-tillstånd visas på hälsosidan. Kombinationsspecifikt försök igen och round-robin slotkontroll förblir på kombinationsinställningar.",
    "enableThinking": "Aktivera tänkande",
    "maxThinkingTokens": "Max Thinking Tokens",
    "enableProxy": "Aktivera proxy",
    "proxyUrl": "Proxy-URL",
    "pricingRates": "Priser Format",
    "currentPricing": "Aktuell prisöversikt",
    "loadingPricing": "Laddar prisinformation...",
    "noPricing": "Inga prisuppgifter tillgängliga",
    "input": "Ingång",
    "output": "Utgång",
    "cached": "Cachad",
    "reasoning": "Resonemang",
    "cacheCreation": "Skapande av cache",
    "customPricing": "Anpassad prissättning",
    "databaseSize": "Databasstorlek",
    "backupDb": "Säkerhetskopiera databas",
    "restoreDb": "Återställ databas",
    "exportData": "Exportera data",
    "importData": "Importera data",
    "clearData": "Rensa alla data",
    "clearDataConfirm": "Detta kommer att radera all data permanent. Är du säker?",
    "enableRequestLogs": "Aktivera förfrågningsloggar",
    "logRetention": "Logglagring",
    "ipWhitelist": "IP vitlista",
    "ipBlacklist": "IP Blacklist",
    "addIP": "Lägg till IP",
    "savedSuccessfully": "Inställningarna har sparats",
    "ai": "AI",
    "advanced": "Avancerat",
    "localMode": "Lokalt läge — All data lagrad på din maskin",
    "settingsSectionsAria": "Inställningar",
    "switchThemes": "Växla mellan ljusa och mörka teman",
    "themeSelectionAria": "Temaval",
    "themeLight": "Ljus",
    "themeDark": "Mörkt",
    "themeSystem": "System",
    "endpointTunnelVisibility": "Synlighet för ändpunktstunnel",
    "endpointTunnelVisibilityDesc": "Dölj tunnelkontroller från Endpoint-sidan utan att ändra tunnelstatus.",
    "showCloudflareTunnel": "Cloudflare Quick Tunnel",
    "showCloudflareTunnelDesc": "Visa Cloudflare Quick Tunnel-kontroller på Endpoint-sidan.",
    "showTailscaleFunnel": "Tailscale tratt",
    "showTailscaleFunnelDesc": "Visa trattkontroller för svansskala på sidan Endpoint.",
    "showNgrokTunnel": "ngrok tunnel",
    "showNgrokTunnelDesc": "Visa ngrok-tunnelkontroller på Endpoint-sidan.",
    "sidebarVisibility": "Hide sidebar items",
    "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
    "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
    "hideHealthLogs": "Dölj loggar för hälsokontroll",
    "hideHealthLogsDesc": "När PÅ, dämpa [HealthCheck]-meddelanden i serverkonsolen",
    "themeAccent": "Temafärg",
    "themeAccentDesc": "Välj en förinställd färg eller skapa ditt eget tema med en färg",
    "themeCreate": "Skapa tema",
    "themeCustom": "Anpassat tema",
    "themeBlue": "Blå",
    "themeRed": "Röd",
    "themeGreen": "Grön",
    "themeViolet": "Violett",
    "themeOrange": "Orange",
    "themeCyan": "Cyan",
    "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": "Spola cachen",
    "flushing": "Spolar...",
    "size": "Storlek",
    "hits": "Träffar",
    "evictions": "Vräkningar",
    "loadingCacheStats": "Laddar cachestatistik...",
    "globalProxy": "Global proxy",
    "globalProxyDesc": "Konfigurera en global utgående proxy för alla API-anrop. Enskilda leverantörer, kombinationer och nycklar kan åsidosätta detta.",
    "noGlobalProxy": "Ingen global proxy konfigurerad",
    "globalLabel": "Global",
    "configure": "Konfigurera",
    "globalSystemPrompt": "Global System Prompt",
    "saved": "Sparad",
    "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} tecken",
    "thinkingBudgetTitle": "Tänkande budget",
    "thinkingBudgetDesc": "Kontrollera användningen av AI-resonemangstoken över alla förfrågningar",
    "passthrough": "Genomgång",
    "passthroughDesc": "Inga förändringar – kunden styr tankebudgeten",
    "auto": "Auto",
    "autoDesc": "Ta bort alla tankeinställningar – låt leverantören bestämma",
    "custom": "Anpassad",
    "customDesc": "Ställ in en fast tokenbudget för alla förfrågningar",
    "adaptive": "Adaptiv",
    "adaptiveDesc": "Skala budget baserat på begärans komplexitet",
    "effortNone": "Inga (0 tokens)",
    "effortLow": "Låg (1K tokens)",
    "effortMedium": "Medium (10 000 tokens)",
    "effortHigh": "Hög (128 000 tokens)",
    "tokenBudget": "Token budget",
    "tokens": "polletter",
    "baseEffortLevel": "Basinsatsnivå",
    "adaptiveHint": "Adaptivt läge skalas från denna basnivå baserat på antal meddelanden, verktygsanvändning och promptlängd.",
    "requireLogin": "Kräv inloggning",
    "requireLoginDesc": "När PÅ kräver instrumentpanelen lösenord. När AV, åtkomst utan inloggning.",
    "currentPassword": "Aktuellt lösenord",
    "enterCurrentPassword": "Ange aktuellt lösenord",
    "newPassword": "Nytt lösenord",
    "enterNewPassword": "Ange nytt lösenord",
    "confirmPassword": "Bekräfta nytt lösenord",
    "confirmPasswordPlaceholder": "Bekräfta nytt lösenord",
    "passwordsNoMatch": "Lösenord stämmer inte överens",
    "passwordUpdated": "Lösenordet har uppdaterats",
    "failedUpdatePassword": "Det gick inte att uppdatera lösenordet",
    "errorOccurred": "Ett fel uppstod",
    "updatePassword": "Uppdatera lösenord",
    "setPassword": "Ange lösenord",
    "apiEndpointProtection": "API-ändpunktsskydd",
    "requireAuthModels": "Kräv API-nyckel för /modeller",
    "requireAuthModelsDesc": "När PÅ, returnerar /v1/models-slutpunkten 404 för oautentiserade förfrågningar. Förhindrar modellupptäckt av obehöriga användare.",
    "authModelHeading": "Aktiv behörighetsmodell",
    "authModelClient": "Klient-API-slutpunkter (/v1/*, /chat/*, /responses/*, /codex/*, /messages/*) kräver en Bearer API-nyckel.",
    "authModelManagement": "Hanteringsslutpunkter (/dashboard, /api/*) kräver en instrumentpanelsession eller hanteringsuppgifter.",
    "authModelPublic": "Endast inloggnings-, hälso- och bootstrap-rutter är offentliga.",
    "bruteForceProtection": "Logga in brute-force-skydd",
    "bruteForceProtectionDesc": "Stryp och lås /api/auth/login efter upprepade fel från samma IP.",
    "corsAllowedOrigins": "CORS tillåtna ursprung",
    "corsAllowedOriginsDesc": "Kommaseparerad lista över webbläsarursprung som är tillåtna att anropa denna server. Tom lista = ingen webbläsare CORS-åtkomst (server-till-server fungerar fortfarande). Använd endast CORS_ALLOW_ALL=true env var för utveckling.",
    "blockedProviders": "Blockerade leverantörer",
    "blockedProvidersDesc": "Dölj specifika leverantörer från /v1/models-svaret. Blockerade leverantörer visas inte i modelllistorna.",
    "providersBlocked": "{count} leverantör(er) blockerade från /modeller",
    "blockProviderTitle": "Blockera {provider}",
    "unblockProviderTitle": "Avblockera {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": "Systemblock Transform Pipeline",
    "systemTransformsDesc": "Per leverantör beställd pipeline av transformeringar som tillämpas på begärandekroppen före vidarebefordran. Stöder alla leverantörs-ID.",
    "systemTransformsAddProvider": "Lägg till leverantör",
    "systemTransformsAddProviderPlaceholder": "Välj en leverantör...",
    "systemTransformsAddProviderAllConfigured": "Alla leverantörer redan konfigurerade",
    "systemTransformsRemoveProvider": "Ta bort leverantören",
    "systemTransformsNoProviders": "Inga leverantörer har konfigurerats. Lägg till en leverantör för att komma igång.",
    "systemTransformsOpMoveUp": "Flytta uppåt",
    "systemTransformsOpMoveDown": "Flytta ner",
    "systemTransformsOpDelete": "Ta bort op",
    "routingStrategy": "Routingstrategi",
    "routingAdvancedGuideTitle": "Avancerad vägledning",
    "routingAdvancedGuideHint1": "Använd Fill First för förutsägbar prioritet, Round Robin för rättvisa och P2C för latensförmåga.",
    "routingAdvancedGuideHint2": "Om leverantörer varierar i kvalitet/kostnad, börja med Cost Opt för bakgrundsarbete och Minst Används för balanserat slitage.",
    "fillFirst": "Fyll först",
    "fillFirstDesc": "Använd konton i prioritetsordning",
    "roundRobin": "Round Robin",
    "roundRobinDesc": "Gå igenom alla konton",
    "p2c": "P2C",
    "p2cDesc": "Välj 2 slumpmässigt, använd den hälsosammare",
    "random": "Slumpmässigt",
    "randomDesc": "Slumpmässigt konto varje begäran",
    "leastUsed": "Minst använda",
    "leastUsedDesc": "Välj minst senast använda konto",
    "costOpt": "Kostnad Opt",
    "costOptDesc": "Föredrar billigaste tillgängliga konto",
    "resetAware": "Reset-Aware RR",
    "resetAwareDesc": "Föredrar konton med sund återstående kvot och närmare återställningar",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
    "stickyLimit": "Sticky Limit",
    "stickyLimitDesc": "Samtal per konto innan byte",
    "modelAliases": "Modellalias",
    "modelAliasesTitle": "Modellalias",
    "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
    "addCustomAlias": "Lägg Till Anpassat Alias",
    "deprecatedModelId": "Föråldrat modell-ID",
    "newModelId": "Nytt modell-ID",
    "customAliases": "Anpassade Alias",
    "builtInAliases": "Inbyggda Alias",
    "backgroundDegradationTitle": "Bakgrundsuppgifter Degradering",
    "backgroundDegradationDesc": "Upptäcker automatiskt bakgrundsuppgifter (titlar, sammanfattningar) och dirigerar till billigare modeller",
    "enableDegradation": "Aktivera Bakgrundsdegradation",
    "enableDegradationHint": "När aktiverat, dirigeras bakgrundsuppgifter som titelgenerering och sammanfattningar automatiskt till billigare modeller",
    "tasksDetected": "Uppgifter upptäckta",
    "degradationMap": "Modelldegraderingsschema",
    "premiumModel": "Premiummodell",
    "cheapModel": "Billig modell",
    "detectionPatterns": "Detektionsmönster",
    "newPattern": "t.ex. \"generera en titel\"",
    "aliasPatternPlaceholder": "claude-sonnett-*",
    "aliasTargetPlaceholder": "claude-sonnet-4-20250514",
    "pattern": "Mönster",
    "targetModel": "Målmodell",
    "add": "+ Lägg till",
    "session": "Session",
    "sessionDetailsAria": "Sessionsdetaljer",
    "status": "Status",
    "authenticated": "Autentiserad",
    "guest": "Gäst",
    "loginTime": "Inloggningstid",
    "sessionAge": "Sessionsålder",
    "browser": "Webbläsare",
    "clearLocalData": "Rensa lokal data",
    "logout": "Logga ut",
    "clearLocalDataConfirm": "Rensa alla lokala data? Detta kommer att återställa dina inställningar.",
    "unknown": "Okänd",
    "systemActor": "systemet",
    "ipAccessControl": "IP-åtkomstkontroll",
    "ipAccessControlDesc": "Blockera eller tillåt specifika IP-adresser",
    "ipModeDisabled": "Inaktiverad",
    "ipModeBlacklist": "Svartlista",
    "ipModeWhitelist": "Vitlista",
    "ipModeWhitelistPriority": "WL-prioritet",
    "addIpAddress": "Lägg till IP-adress",
    "ipAddressPlaceholder": "192.168.1.0/24 eller 10.0.*.*",
    "block": "+ Blockera",
    "allow": "+ Tillåt",
    "blocked": "Blockerad ({count})",
    "allowed": "Tillåtet ({count})",
    "temporaryBans": "Tillfälliga förbud ({count})",
    "minLeft": "{min}m kvar",
    "auditLog": "Revisionslogg",
    "searchAuditLogs": "Sök granskningsloggar...",
    "failedLoadAuditLog": "Det gick inte att läsa in granskningsloggen",
    "noAuditEvents": "Inga granskningshändelser hittades",
    "action": "Åtgärd",
    "actor": "Skådespelare",
    "details": "Detaljer",
    "time": "Tid",
    "fallbackChainsTitle": "Reservkedjor",
    "fallbackChainsDesc": "Definiera reservorder för leverantörer per modell",
    "addChain": "+ Lägg till kedja",
    "modelName": "Modellnamn",
    "modelNamePlaceholder": "claude-sonnet-4-20250514",
    "providersCommaSeparated": "Leverantörer (kommaseparerade, i prioriterad ordning)",
    "providersCommaSeparatedPlaceholder": "antropisk, openai, gemini",
    "createChain": "Skapa kedja",
    "noFallbackChains": "Inga reservkedjor",
    "noFallbackChainsDesc": "Skapa en kedja för att definiera leverantörs reservorder för en modell.",
    "loadingFallbackChains": "Laddar reservkedjor...",
    "deleteChainConfirm": "Vill du ta bort reservkedjan för \"{model}\"?",
    "chainCreated": "Kedja skapad för {model}",
    "chainDeleted": "Kedjan raderad för {model}",
    "failedCreateChain": "Det gick inte att skapa kedja",
    "failedDeleteChain": "Det gick inte att ta bort kedjan",
    "deleteChain": "Ta bort kedja",
    "fillModelAndProviders": "Vänligen fyll i modellnamn och leverantörer",
    "addAtLeastOneProvider": "Lägg till minst en leverantör",
    "comboDefaultsTitle": "Combo standard",
    "comboDefaultsGuideTitle": "Hur man ställer in kombinationsinställningar",
    "comboDefaultsGuideHint1": "Håll låga omförsök i flöden med låg latens; öka timeout endast för långa generationsuppgifter.",
    "comboDefaultsGuideHint2": "Använd åsidosättande av leverantörer när en leverantör behöver ett annat beteende för timeout/försök igen än globala standardinställningar.",
    "globalComboConfig": "Global kombinationskonfiguration",
    "defaultStrategy": "Standardstrategi",
    "defaultStrategyDesc": "Tillämpas på nya kombinationer utan explicit strategi",
    "comboStrategyAria": "Kombinationsstrategi",
    "priority": "Prioritet",
    "weighted": "Viktad",
    "contextRelay": "Context Relay",
    "contextRelayDesc": "Hands off context between providers with automatic summarization",
    "maxRetriesLabel": "Max försöker igen",
    "retryDelayLabel": "Försök igen fördröjning (ms)",
    "timeoutLabel": "Timeout (ms)",
    "healthCheck": "Hälsokontroll",
    "healthCheckDesc": "Kontrollera leverantörens tillgänglighet i förväg",
    "trackMetrics": "Spåra mätvärden",
    "trackMetricsDesc": "Spela in mätvärden per kombinationsbegäran",
    "providerOverrides": "Provider åsidosätter",
    "providerOverridesDesc": "Åsidosätt timeout och försök igen per leverantör. Leverantörsinställningar åsidosätter globala standardinställningar.",
    "providerMaxRetriesAria": "{provider} max försök",
    "providerTimeoutAria": "{provider} timeout ms",
    "removeProviderOverrideAria": "Ta bort åsidosättningen {provider}",
    "newProviderNamePlaceholder": "t.ex. google, öppna...",
    "newProviderNameAria": "Nytt leverantörsnamn",
    "retries": "försök igen",
    "ms": "ms",
    "saveComboDefaults": "Spara Combo Defaults",
    "maxNestingDepth": "Max häckningsdjup",
    "concurrencyPerModel": "Samtidighet / Modell",
    "queueTimeout": "Timeout för kö (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": "Leverantörsprofiler",
    "providerProfilesDesc": "Separata inställningar för motståndskraft för OAuth (sessionsbaserad) och API Key (mätad) leverantörer. OAuth-leverantörer har strängare trösklar på grund av lägre prisgränser.",
    "oauthProviders": "OAuth-leverantörer",
    "apiKeyProviders": "API-nyckelleverantörer",
    "transientCooldown": "Övergående nedkylning",
    "rateLimitCooldown": "Rate Limit Cooldown",
    "maxBackoffLevel": "Max Backoff Level",
    "cbThreshold": "CB-tröskel",
    "cbResetTime": "CB-återställningstid",
    "rateLimiting": "Prisbegränsande",
    "rateLimitingDesc": "API-nyckelleverantörer är automatiskt hastighetsbegränsade med säkra standardinställningar. Gränser lärs från svarsrubriker och anpassas över tid.",
    "defaultSafetyNet": "Standardsäkerhetsnät",
    "rpm": "RPM",
    "minGap": "Min Gap",
    "maxConcurrent": "Max Samtidigt",
    "activeLimiters": "Aktiva begränsningar",
    "noActiveLimiters": "Inga aktiva hastighetsbegränsare än.",
    "reservoir": "Reservoar",
    "running": "Löpning",
    "queued": "I kö",
    "circuitBreakers": "Strömbrytare",
    "breakerStateClosed": "Stängt",
    "breakerStateOpen": "Öppna",
    "breakerStateHalfOpen": "Halvöppet",
    "tripped": "{count} utlöstes",
    "healthy": "{count} frisk",
    "resetAll": "Återställ alla",
    "noCircuitBreakers": "Inga strömbrytare aktiva än. De skapas automatiskt när förfrågningar flödar genom den kombinerade pipelinen.",
    "failures": "{count} fel(er)",
    "policiesLocked": "Policyer och låsta identifierare",
    "allOperational": "Alla system är i drift — inga låsningar eller utlösta brytare",
    "loadingPolicies": "Läser in policyer...",
    "lockedIdentifiers": "Låsta identifierare",
    "unlockedIdentifier": "Upplåst: {identifier}",
    "sinceDate": "sedan {date}",
    "forceUnlock": "Tvinga upplåsning",
    "unlocking": "Låser upp...",
    "failedUnlock": "Det gick inte att låsa upp",
    "failedLoadWithStatus": "Det gick inte att ladda: {status}",
    "failedLoadResilience": "Det gick inte att läsa in resiliensstatus",
    "saveFailed": "Det gick inte att spara",
    "resetFailed": "Återställningen misslyckades",
    "loadingResilience": "Laddar resiliensstatus...",
    "retry": "Försök igen",
    "systemStorage": "System & lagring",
    "allDataLocal": "All data lagrad lokalt på din maskin",
    "databasePath": "Databasväg",
    "exportDatabase": "Exportera databas",
    "exportAll": "Exportera alla (.tar.gz)",
    "importDatabase": "Importera databas",
    "confirmDbImport": "Bekräfta databasimport",
    "confirmDbImportDesc": "Detta kommer att ersätta all aktuell data med innehållet från {file}. En säkerhetskopia skapas automatiskt före importen.",
    "yesImport": "Ja, importera",
    "lastBackup": "Senaste säkerhetskopieringen",
    "noBackupYet": "Ingen backup ännu",
    "backupNow": "Säkerhetskopiera nu",
    "backupRestore": "Säkerhetskopiera och återställa",
    "viewBackups": "Visa säkerhetskopior",
    "hide": "Göm",
    "backupRetentionDesc": "Databasögonblicksbilder skapas automatiskt före återställning och var 15:e minut när data ändras. Retention: 24 timmar per timme + 30 dagliga backuper med smart rotation.",
    "loadingBackups": "Laddar säkerhetskopior...",
    "noBackupsYet": "Inga säkerhetskopior tillgängliga ännu. Säkerhetskopieringar skapas automatiskt när data ändras.",
    "backupsAvailable": "{count} säkerhetskopior tillgängliga",
    "refresh": "Uppdatera",
    "confirm": "Bekräfta?",
    "yes": "Ja",
    "no": "Nej",
    "restore": "Återställ",
    "invalidFileType": "Ogiltig filtyp. Endast .sqlite-filer accepteras.",
    "exportFailed": "Exporten misslyckades",
    "exportFailedWithError": "Export misslyckades: {error}",
    "fullExportFailedWithError": "Fullständig export misslyckades: {error}",
    "backupCreated": "Säkerhetskopiering skapad: {file}",
    "restoreSuccess": "Återställd! {connections} anslutningar, {nodes} noder, {combos} kombinationer, {apiKeys} API-nycklar.",
    "importSuccess": "Databas importerad! {connections} anslutningar, {nodes} noder, {combos} kombinationer, {apiKeys} API-nycklar.",
    "minutesAgo": "{count}m sedan",
    "hoursAgo": "{count}h sedan",
    "daysAgo": "{count}d sedan",
    "backupReasonManual": "handbok",
    "backupReasonPreRestore": "föråterställning",
    "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
    "noChangesSinceBackup": "Inga ändringar sedan senaste säkerhetskopiering",
    "backupFailed": "Säkerhetskopieringen misslyckades",
    "restoreFailed": "Återställningen misslyckades",
    "importFailed": "Importen misslyckades",
    "errorDuringRestore": "Ett fel uppstod under återställning",
    "errorDuringImport": "Ett fel uppstod under importen",
    "modelPricing": "Modellprissättning",
    "modelPricingDesc": "Konfigurera kostnadssatser per modell • Alla priser i $/1M tokens",
    "registry": "Registret",
    "priced": "Prissatt",
    "searchProvidersModels": "Sök efter leverantörer eller modeller...",
    "showAll": "Visa alla",
    "noProvidersMatch": "Inga leverantörer matchar din sökning.",
    "howPricingWorks": "Hur prissättning fungerar",
    "cacheWrite": "Cache Skriv",
    "unsaved": "osparade",
    "resetDefaults": "Återställ standardvärden",
    "saveProvider": "Spara leverantör",
    "model": "Modell",
    "models": "modeller",
    "moreProviders": "{count} fler leverantörer",
    "withPricing": "med konfigurerad prissättning",
    "policiesCircuitBreakers": "Policyer och strömbrytare",
    "activeIssuesDetected": "Aktiva problem upptäcktes",
    "off": "Av",
    "resetPricingConfirm": "Vill du återställa alla priser för {provider} till standardvärdena?",
    "pricingDescInput": "Indata: tokens skickas till modellen",
    "pricingDescOutput": "Utdata: tokens genererade",
    "pricingDescCached": "Cachad: återanvänd indata (~50 % av inmatningshastighet)",
    "pricingDescReasoning": "Resonemang: tänkande tokens (faller tillbaka till Output)",
    "pricingDescCacheWrite": "Cache Write: skapa cache-poster (faller tillbaka till Input)",
    "pricingDescFormula": "Kostnad = (ingång × input_rate) + (output × output_rate) + (cachad × cached_rate) per miljon tokens.",
    "pricingSettingsTitle": "Prisinställningar",
    "totalModels": "Totalt antal modeller",
    "active": "Aktiv",
    "costCalculation": "Kostnadsberäkning",
    "costCalculationDesc": "Kostnaderna beräknas baserat på tokenanvändning och prissättning som konfigurerats för varje modell.",
    "pricingFormat": "Prisformat",
    "pricingFormatDesc": "Alla priser är i $/1M tokens (dollar per miljon tokens).",
    "tokenTypes": "Tokentyper",
    "inputTokenDesc": "Standard prompt tokens",
    "outputTokenDesc": "Kompletterande/svars-tokens",
    "cachedTokenDesc": "Cachade indatatokens (vanligtvis 50 % av inmatningshastigheten)",
    "reasoningTokenDesc": "Särskilda resonemang/tänketokens (återgång till produktionshastighet)",
    "cacheCreationTokenDesc": "Tokens som används för att skapa cacheposter (återgång till inmatningshastighet)",
    "customPricingNote": "Du kan åsidosätta standardpriser för specifika modeller. Anpassade åsidosättningar har prioritet framför automatiskt identifierade priser.",
    "editPricing": "Redigera prissättning",
    "viewFullDetails": "Visa fullständiga detaljer",
    "themeCoral": "Korall",
    "adaptiveVolumeRouting": "Adaptive Volume Routing",
    "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
    "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
    "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
    "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": "Det gick inte att rensa prissättning: {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": "Det gick inte att återställa prissättning: {reason}",
    "tab": "Tab",
    "pricingSavedProvider": "Priset har sparats för {provider}",
    "pricingSyncFailed": "Pricing Sync Failed",
    "pricingSaveFailedWithReason": "Det gick inte att spara pris: {reason}",
    "pricingResetProvider": "Prisåterställning för {provider}",
    "nextSync": "Next Sync",
    "pricingSyncFailedWithReason": "Prissynkronisering misslyckades: {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": "Aggressiv motorkonfiguration",
    "compressionAggressiveConfigDesc": "Finjustera sammanfattningar, verktygskomprimering och åldringströsklar",
    "compressionUltraConfig": "Ultra Engine Configuration",
    "compressionUltraConfigDesc": "Finjustera heuristisk beskärning, SLM reserv och trösklar per meddelande",
    "compressionUltraRate": "Behåll kursen",
    "compressionUltraMinScore": "Minsta poängtröskel",
    "compressionUltraSlmFallback": "Fallback till aggressiv",
    "compressionUltraModelPath": "SLM modellväg",
    "compressionSummarizerEnabled": "Aktivera Summarizer",
    "compressionMaxTokensPerMessage": "Max tokens per meddelande",
    "compressionMinSavings": "Minsta spartröskel",
    "compressionAgingThresholds": "Åldrande trösklar",
    "compressionAgingThresholdsDesc": "Antalet senaste meddelanden som sparats på varje åldrande nivå (högre = mer bevarade)",
    "compressionToolStrategies": "Verktygsresultatstrategier",
    "compressionToolStrategiesDesc": "Växla komprimeringsstrategier för olika verktygsresultattyper",
    "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": "minuter",
    "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": "Valfritt",
    "current": "Aktuell",
    "remove": "Ta bort",
    "search": "Sök",
    "oneproxyTitle": "1proxy gratis proxymarknadsplats",
    "oneproxyTotalProxies": "Totala fullmakter",
    "oneproxyAvgQuality": "Genomsnittlig kvalitet",
    "resilienceScope": "Omfattning:",
    "resilienceTrigger": "Utlösare:",
    "resilienceEffect": "Effekt:",
    "resilienceRequestQueueTitle": "Request Queue & Rate",
    "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
    "resilienceRequestsPerMinute": "Requests per minute",
    "resilienceMinTimeBetweenRequests": "Minimum time between requests",
    "resilienceConcurrentRequests": "Concurrent requests",
    "resilienceMaxQueueWaitTime": "Maximal väntetid i kö",
    "resilienceBaseCooldown": "Base cooldown",
    "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
    "resilienceDefaultPerProvider": "Default (per provider)",
    "resilienceAlwaysOn": "Always on",
    "resilienceAlwaysOff": "Always off",
    "routingRemoveEntry": "Ta bort posten",
    "routingNeedlesSubstrings": "Nålar (understrängar att matcha)",
    "routingCaseSensitive": "Skiftlägeskänslig",
    "routingPrefixes": "Prefix",
    "routingMatch": "Match",
    "routingReplacement": "Byte",
    "routingReplaceAllOccurrences": "Ersätt alla förekomster",
    "routingPatternRegex": "Mönster (regex)",
    "routingFlags": "Flaggor",
    "routingNeedles": "Nålar",
    "routingBlockText": "Blockera text",
    "routingIdempotencyKey": "Idempotensnyckel",
    "routingEntrypoint": "Ingångspunkt",
    "routingVersionFormat": "Versionsformat",
    "routingCchAlgorithm": "CCH-algoritm",
    "routingWordsToObfuscate": "Ord att fördunkla (ZWJ infogat efter första tecknet)",
    "logsSettingsTitle": "Logginställningar",
    "detailedLogsLabel": "Detaljerade loggar aktiverade",
    "detailedLogsDesc": "Aktivera detaljerad loggning av förfrågningar/svar",
    "callLogPipelineLabel": "Call Log Pipeline",
    "callLogPipelineDesc": "Aktivera pipeline för bearbetning av samtalslogg",
    "maxDetailSizeLabel": "Max detaljstorlek (KB)",
    "maxDetailSizeDesc": "Maximal storlek för detaljerade loggposter",
    "ringBufferSizeLabel": "Ringbuffertstorlek",
    "ringBufferSizeDesc": "Storlek på ringbufferten för stockar",
    "semanticCacheEnabledLabel": "Semantisk cache aktiverad",
    "semanticCacheMaxSizeLabel": "Semantisk cache Max storlek",
    "semanticCacheMaxSizeDesc": "Maximalt antal semantiska cacheposter",
    "semanticCacheTTLLabel": "Semantisk cache TTL",
    "promptCacheEnabledLabel": "Prompt Cache aktiverad",
    "promptCacheEnabledDesc": "Aktivera promptcache",
    "promptCacheStrategyLabel": "Snabb cachestrategi",
    "promptCacheStrategyDesc": "Strategi för snabb cachelagring",
    "alwaysPreserveClientCacheLabel": "Bevara alltid klientcache",
    "alwaysPreserveClientCacheDesc": "Bevarandepolicy för klientcache",
    "logRetentionPolicyTitle": "Logglagringspolicy",
    "resilienceUseUpstream429HintsForBreaker": "Använd uppströms 429 tips (brytare)",
    "appearanceLogoPreviewAlt": "Förhandsvisning av logotyp",
    "appearanceFaviconPreviewAlt": "Favicon förhandsvisning",
    "oneproxyLastSync": "Senaste synkronisering",
    "oneproxyAllProtocols": "Alla protokoll",
    "oneproxyCountryCodePlaceholder": "Landskod (t.ex. USA)",
    "oneproxyMinQualityPlaceholder": "Min kvalitet",
    "oneproxyLoadingProxies": "Laddar proxyservrar...",
    "oneproxyLastSyncLabel": "Senaste synkronisering:",
    "oneproxyProxiesFetched": "Hämta fullmakter:",
    "oneproxyConsecutiveFailures": "På varandra följande misslyckanden:",
    "oneproxyErrorLabel": "Fel:",
    "oneproxyNever": "Aldrig",
    "oneproxySyncStatusTitle": "Synkroniseringsstatus",
    "oneproxySuccess": "Framgång",
    "oneproxyFailed": "Misslyckades",
    "routingAntigravitySignatureTitle": "Antigravity Signature Cache Mode",
    "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": "Rubrikfingeravtryck (per leverantör)",
    "routingServerRejectedSave": "⚠ Server avvisad spara:",
    "routingAddTransformOp": "Lägg till en transform op",
    "routingClientCacheControlTitle": "Klientcachekontroll",
    "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": "Zero-Config Auto-routing",
    "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": "Standard autovariant",
    "visionBridge": "Vision Bridge",
    "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": "Bromodell",
    "visionBridgeModelPlaceholder": "openai/gpt-4o-mini",
    "visionBridgeModelHint": "__MISSING__:Any OmniRoute model ID that supports vision can be used here.",
    "visionBridgePrompt": "Bridge Prompt",
    "visionBridgePromptPlaceholder": "Beskriv denna bild kortfattat.",
    "visionBridgePromptHint": "__MISSING__:Sent to the vision model before the extracted description is injected back into the original request.",
    "visionBridgeTimeoutMs": "Timeout (ms)",
    "visionBridgeMaxImagesPerRequest": "Max bilder per förfrågan",
    "resilienceMaxBackoffSteps": "Max backoff steps",
    "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
    "resilienceFailureThreshold": "Failure threshold",
    "resilienceResetTimeout": "Återställ timeout",
    "resilienceFailureThresholdLabel": "Misslyckande tröskel",
    "resilienceResetTimeoutLabel": "Återställ timeout",
    "resilienceConnectionCooldownTitle": "Connection Cooldown",
    "resilienceUseUpstreamRetryHintsLabel": "Använd uppströms tips om försök igen",
    "resilienceUseUpstream429BreakerLabel": "Använd uppströms 429 tips (brytare)",
    "resilienceMaxBackoffStepsLabel": "Max backoff-steg",
    "resilienceYes": "Ja",
    "resilienceNo": "Nej",
    "resilienceDefault": "Default",
    "storageDatabaseBackupRetention": "Databassäkerhetskopiering",
    "storagePurgeData": "Rensa data",
    "retentionQuotaSnapshots": "Kvotsögonblicksbilder (dagar)",
    "retentionMcpAudit": "MCP-revision (dagar)",
    "retentionA2aEvents": "A2A-evenemang (dagar)",
    "retentionCallLogs": "Samtalsloggar (dagar)",
    "retentionUsageHistory": "Användningshistorik (dagar)",
    "retentionMemoryEntries": "Minnesposter (dagar)",
    "storageAutoVacuumMode": "Autovakuumläge",
    "storageScheduledVacuum": "Schemalagt vakuum",
    "storageVacuumHour": "Vakuumtimme (0-23)",
    "storagePageSize": "Sidstorlek (byte)",
    "storageDatabaseSize": "Databasstorlek",
    "storagePageCount": "Antal sidor",
    "storageFreelistCount": "Freelist Count",
    "storageLastVacuum": "Sista vakuumet",
    "storageLastOptimization": "Senaste optimering",
    "storageIntegrityCheck": "Integritetskontroll",
    "storageIntegrityOk": "✓ OK",
    "storageIntegrityError": "✗ Fel",
    "storageUsageTokenBuffer": "Användningstokenbuffert",
    "compressionSettingsAutoTriggerMode": "Auto trigger läge",
    "compressionSettingsMcpDescriptionCompression": "MCP-beskrivningskomprimering",
    "compressionSettingsCavemanIntensity": "Grottmänniska intensitet",
    "compressionSettingsCavemanOutputMode": "Grottmansutgångsläge",
    "compressionSettingsOutputIntensity": "Utgångsintensitet",
    "compressionSettingsAutoClarityBypass": "Automatisk förbikoppling av klarhet",
    "resilienceWaitForCooldown": "Vänta på nedkylning",
    "resilienceEnableServerSideWait": "Aktivera väntan på serversidan",
    "resilienceMaximumRetries": "Maximalt antal försök igen",
    "resilienceMaximumWaitPerRetry": "Maximal väntetid per nytt försök",
    "memorySkillsSkillsmpMarketplace": "SkillsMP Marketplace",
    "memorySkillsFailedToSave": "Det gick inte att spara",
    "memorySkillsApiKey": "API-nyckel",
    "memorySkillsActiveSkillsProvider": "Aktiv kompetensleverantör",
    "cliproxyapiFallback": "CLIProxyAPI Fallback",
    "cliproxyapiEnableFallback": "Aktivera CLIProxyAPI Fallback",
    "cliproxyapiUrl": "CLIProxyAPI URL",
    "cliproxyapiStatus": "CLIProxyAPI-status",
    "cliproxyapiNotDetected": "Inte upptäckt",
    "payloadRulesTitle": "Regler för nyttolast",
    "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": "Modeller i cooldown",
    "modelCooldownsEmpty": "Inga modeller i cooldown just nu.",
    "codexFastTierTitle": "Codex Fast Tier",
    "codexFastTierDesc": "Globalt injicera service_tier=prioritet för OpenAI Codex-förfrågningar.",
    "codexFastTierHint": "När det är aktiverat lägger OmniRoute till service_tier=prioritet till utgående Codex-förfrågningar för anslutningar som inte redan anger en nivå. Prioritetsnivån kräver en OpenAI Enterprise API-nyckel eller ChatGPT-auth Codex-sökvägen; andra nyckeltyper kommer att få ett nivårelaterat fel från OpenAI. Inställningar per anslutning på Codex-leverantörssidan har företräde.",
    "codexFastTierSaveError": "Det gick inte att uppdatera Codex Fast Tier-inställning",
    "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": "Claude Fast Mode",
    "claudeFastModeDesc": "Välj valda Claude-förfrågningar till antropiskt snabbläge (hastighet: \"snabb\").",
    "claudeFastModeHint": "Anthropic stöder inte officiellt Fast Mode för SDK-liknande klienter. När den är aktiverad vidarebefordrar OmniRoute en X-CPA-Force-Fast-Mode-rubrik så att en parad CLIProxyAPI-build kan välja att förfalska ingångspunkten. Endast de listade Opus-modellerna är gated av Anthropics klient-side check. Prenumerationsnivå, Max-plan och kreditsaldo i snabbläge tillämpas fortfarande på serversidan – Anthropic kan returnera out_of_credits även när växlingen är på.",
    "claudeFastModeModelsLabel": "Tillämpas på modeller ({count})",
    "claudeFastModeModelCheckbox": "Aktivera snabbläge för {model}",
    "claudeFastModeSaveError": "Det gick inte att uppdatera inställningen för Claude Fast Mode",
    "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": "Baskylning",
    "scopeLabel": "Omfattning",
    "triggerLabel": "Utlösare",
    "effectLabel": "Effekt",
    "statusEnabled": "Aktiverad",
    "statusDisabled": "Inaktiverad",
    "resilienceRequestQueueScope": "Per begäran kö",
    "resilienceRequestQueueTrigger": "Innan du skickar till uppströms",
    "resilienceRequestQueueEffect": "Köar förfrågningar, begränsar samtidighet och ställer ut samtal",
    "resilienceRequestQueueDesc": "Det här lagret styr bara köer och pacing. Den lagrar inte nedkylningar eller öppna strömbrytare.",
    "resilienceAutoEnableApiKeyProvidersDesc": "Aktiverar köskydd som standard för aktiva API-nyckelanslutningar.",
    "resilienceMaxQueueWait": "Maximal väntetid i kö",
    "resilienceConnectionCooldownScope": "Individuell anslutning",
    "resilienceConnectionCooldownTrigger": "När en anslutning returnerar ett övergående uppströmsfel",
    "resilienceConnectionCooldownEffect": "Hopar tillfälligt över den anslutningen och ökar backoff för upprepade fel",
    "resilienceConnectionCooldownDesc": "Basnedkylningen täcker övergående anslutningsfel. När uppströms tips om försök är aktiverade åsidosätter leverantörens explicita fönster den lokala nedkylningen.",
    "resilienceUseUpstreamRetryHintsDesc": "Använder återförsök efter/återställ värden från uppströmsleverantören när det är tillgängligt.",
    "resilienceUseUpstream429BreakerHints": "Använd uppströms 429-tips för breaker-nedkylning",
    "resilienceUseUpstream429BreakerHintsShort": "Använd uppströms 429 tips",
    "resilienceUseUpstream429BreakerHintsDesc": "Tillämpa Retry-After / kvoten uttömd signaler från 429 svar på strömbrytarens kylningstid. Standard använder en per-leverantör-policy: direkta molnleverantörer är standard på; Omvänd proxy, egenvärd och CLI-stödda leverantörer är standard av. Oberoende av \"Använd uppströms tips om försök igen\".",
    "resilienceProviderBreakerScope": "Hela leverantören",
    "resilienceProviderBreakerTrigger": "Slutliga transport-/serverfel efter att anslutningsbackup är slut",
    "resilienceProviderBreakerEffect": "Blockerar tillfälligt den leverantören tills återställningstiden går ut",
    "resilienceProviderBreakerDesc": "Live breaker-tillstånd visas endast på hälsosidan. Anslutningsomfattade 429-hastighetsgränser stannar i Connection Cooldown och löser inte ut leverantörsbrytaren.",
    "resilienceResetTime": "Återställ tid",
    "resilienceWaitForCooldownTitle": "Vänta på nedkylning",
    "resilienceWaitForCooldownScope": "Aktuell kundförfrågan",
    "resilienceWaitForCooldownTrigger": "När alla kandidatanslutningar redan svalnar",
    "resilienceWaitForCooldownEffect": "Väntar på servern och försöker igen när den första nedkylningen går ut",
    "resilienceWaitForCooldownDesc": "Detta påverkar endast den aktuella begäran. Den lagrar inte anslutning eller leverantörsstatus.",
    "resilienceEnableServerWait": "Aktivera väntan på serversidan",
    "resilienceEnableServerWaitDesc": "När den är aktiverad väntar OmniRoute på att den första nedkylningen ska löpa ut och försöker automatiskt igen.",
    "resilienceMaxAttempts": "Maximalt antal försök",
    "resilienceMaxWaitPerAttempt": "Maximal väntetid per försök",
    "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
    "forcedFingerprintBadge": "Required",
    "codexSessionAffinityTitle": "Codex session affinitet",
    "codexSessionAffinityDesc": "Håller en Codex-konversation på samma konto i så många sekunder. 0 inaktiverar den.",
    "codexSessionAffinityTtl": "Affinitets-TTL (sekunder)",
    "resetAwareQuotaCacheTitle": "Återställningsmedveten kvotcache",
    "resetAwareQuotaCacheDesc": "Cachar endast kvottelemetri för återställningsmedveten beställning. Förhandsgranskning av kvoter skyddar fortfarande förfrågningar. 0/0 fortsätter att hämta live.",
    "resetAwareQuotaCacheTtl": "Färsk TTL (sekunder)",
    "resetAwareQuotaCacheMaxStale": "Max inaktuell (sekunder)",
    "qdrantCleanupSuccess": "OK: tog bort {count} poäng (bevarande: {days} dagar)",
    "qdrantCleanupFailed": "Rensningen misslyckades",
    "qdrantCleanupError": "Fel: {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": "Filterkatalog",
    "filterCatalogDesc": "Tillgängliga utgångsfilter per kategori",
    "guidedConfig": "Konfiguration",
    "guidedConfigDesc": "Justera hur RTK filtrerar din terminalutgång",
    "maxLines": "Max lines",
    "maxChars": "Max chars",
    "deduplicateThreshold": "Deduplicerad tröskel",
    "customFilters": "Anpassade filter",
    "detectedType": "Upptäckt typ",
    "confidence": "Förtroende",
    "beforeAfter": "Före / Efter",
    "trustProjectFilters": "Lita på projektfilter",
    "rawOutputRetention": "Retention av rå uteffekt",
    "rawOutputNever": "Aldrig",
    "rawOutputFailures": "Misslyckanden",
    "rawOutputAlways": "Alltid",
    "rawOutputMaxBytes": "Raw output max byte",
    "filterTesting": "Filter Testing",
    "pasteOutput": "Paste tool output to test filtering...",
    "presetHigh": "Aggressiv",
    "presetLow": "Ljus",
    "presetMaxChars": "Max utdatatecken",
    "presetMaxLines": "Max utgångslinjer",
    "presetMedium": "Standard",
    "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": "Enkelt",
    "advancedMode": "Avancerat",
    "searchFilters": "Sökfilter...",
    "tooltipDedup": "Hur aggressivt man tar bort upprepade rader.",
    "tooltipMaxChars": "Maximalt antal tecken per utdatablock.",
    "tooltipMaxLines": "Maximalt antal rader att hålla från kommandoutmatning. Överskottet är trunkerat."
  },
  "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": "Avancerad konfiguration",
    "advancedConfigDesc": "Finjustera kompressionsbeteendet",
    "aggressiveSettings": "Aggressiva inställningar",
    "aggressiveSettingsDesc": "Maximal komprimering med potentiella kvalitetsavvägningar",
    "requests": "Requests",
    "tokensSaved": "Tokens saved",
    "savingsPercent": "Savings %",
    "avgLatency": "Avg latency",
    "languagePacks": "Language Packs",
    "languagePacksDesc": "Enable compression rules for specific languages.",
    "labelAutoTrigger": "Autokomprimera när sammanhanget överskrider",
    "labelCompressionRate": "Kompressionsstyrka",
    "labelMaxTokens": "Rikta tokens per meddelande",
    "labelMinLength": "Minsta meddelandelängd",
    "labelMinSavings": "Minsta tokens att spara",
    "enabled": "Enabled",
    "autoDetect": "Auto-detect language",
    "rulesCount": "{count} rules",
    "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": "Utgångsläge",
    "outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
    "outputModeTitle": "Output Mode",
    "quickSettings": "Snabbinställningar",
    "quickSettingsDesc": "Grundläggande komprimeringsinställningar för att komma igång",
    "autoClarity": "Auto-Clarity Bypass",
    "bypassConditions": "Bypass conditions",
    "bypassConditionsList": "säkerhet, oåterkallelig, förtydligande, orderkänslig",
    "simpleMode": "Enkelt",
    "advancedMode": "Avancerat",
    "tooltipAutoTrigger": "Komprimera automatiskt när sammanhanget överskrider denna storlek.",
    "tooltipCompressionRate": "0,0 = ingen, 1,0 = max. 0,5 = balanserad.",
    "tooltipMaxTokens": "Mål tokenantal efter komprimering. Lägre = mer aggressiv.",
    "tooltipMinLength": "Meddelanden kortare än detta komprimeras inte. Lägre = mer kompression.",
    "tooltipMinSavings": "Komprimera bara om det sparar åtminstone så många tokens.",
    "ultraSettings": "Ultrainställningar",
    "ultraSettingsDesc": "SLM-driven semantisk komprimering",
    "preview": {
      "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
      "full": "Respond terse and compact. Preserve all technical substance.",
      "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
    }
  },
  "translator": {
    "title": "Översättare",
    "metaTitle": "Översättare Lekplats | OmniRoute",
    "metaDescription": "Felsök, testa och visualisera API-formatöversättningar mellan leverantörer",
    "playgroundTitle": "Översättare Lekplats",
    "playground": "Lekplats",
    "realtime": "Översättningsaktivitet i realtid",
    "chatTester": "Chattestare",
    "testBench": "Testbänk",
    "liveMonitor": "Live Monitor",
    "modeDescriptionPlayground": "Klistra in valfri API-begäran och se hur OmniRoute översätter den mellan leverantörsformat (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
    "modeDescriptionChatTester": "Skicka riktiga chattförfrågningar via OmniRoute och inspektera hela tur och retur: indata, översatt begäran, leverantörssvar och översatt utdata.",
    "modeDescriptionTestBench": "Kör fördefinierade scenarier och jämför kompatibilitet mellan leverantörer och modeller.",
    "modeDescriptionLiveMonitor": "Se översättningshändelser i realtid när förfrågningar flödar genom OmniRoute.",
    "modeDescriptionFallback": "Felsök, testa och visualisera hur OmniRoute översätter API-förfrågningar mellan leverantörer.",
    "recentTranslations": "Nya översättningar",
    "noTranslations": "Inga översättningar ännu",
    "source": "Källa",
    "target": "Mål",
    "time": "Tid",
    "model": "Modell",
    "status": "Status",
    "latency": "Latens",
    "totalTranslations": "Totala översättningar",
    "successful": "Framgångsrik",
    "errors": "Fel",
    "avgLatency": "Genomsnittlig latens",
    "millisecondsShort": "{value}ms",
    "notAvailableSymbol": "—",
    "liveAutoRefreshing": "Live — Automatisk uppdatering",
    "paused": "Pausad",
    "eventsAppearHint": "Översättningshändelser visas här när förfrågningar flödar genom OmniRoute. Använd någon av dessa metoder för att generera händelser:",
    "chatTesterTab": "Fliken Chattestare",
    "testBenchTab": "Fliken Testbänk",
    "externalApiCalls": "Externa API-anrop",
    "ideCliIntegrations": "IDE/CLI-integrationer",
    "inMemoryNote": "Obs: Händelser lagras i minnet och återställs när servern startar om.",
    "ok": "OK",
    "errorShort": "ERR",
    "formatConverter": "Formatomvandlare",
    "formatConverterDescription": "Klistra in eller skriv en JSON-begäran. Översättaren kommer att automatiskt upptäcka källformatet och konvertera det till målformatet. Använd detta för att felsöka hur OmniRoute översätter förfrågningar mellan format (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
    "translationPathHubSpoke": "{source} → OpenAI (mellanliggande) → {target}",
    "translationPathDirect": "{source} → {target} (direktöversättare)",
    "translationPathPassthrough": "Samma format – ingen översättning behövs",
    "openaiIntermediatePanel": "OpenAI Intermediate",
    "autoFeaturesTitle": "Vad OmniRoute gör automatiskt",
    "autoFeaturesCount": "8 funktioner",
    "featureReasoningCache": "Resonerande Cache",
    "featureReasoningCacheDesc": "Återinjicerar cachelagrat resonemang_innehåll för modeller i tänkande (DeepSeek V4, Kimi K2, Qwen) när klienter utelämnar det från konversationshistoriken.",
    "featureSchemaCoercion": "Schema tvång",
    "featureSchemaCoercionDesc": "Åtgärdar trasiga verktygsscheman: lägger till saknade ytterligare egenskaper, rensar långa beskrivningar, normaliserar kapslade objekt.",
    "featureRoleNormalization": "Rollnormalisering",
    "featureRoleNormalizationDesc": "Kartutvecklare→system för icke-OpenAI-mål. Maps system→användare för modeller som inte stöder systemrollen.",
    "featureToolCallIds": "Verktyg Call ID Normalization",
    "featureToolCallIdsDesc": "Genererar unika tool_call-ID när de saknas. Normaliseras till formatet 9 tecken för leverantörer som Mistral.",
    "featureMissingToolResponse": "Tool Response Injection",
    "featureMissingToolResponseDesc": "Injicerar tomma tool_result-meddelanden när klienter skickar tool_calls utan motsvarande svar.",
    "featureThinkingBudget": "Tänkande budget",
    "featureThinkingBudgetDesc": "Hanterar automatiskt tankekonfiguration. Tar bort tankeparametrar när det sista meddelandet inte kommer från användaren.",
    "featureDirectPaths": "Direkta översättningsvägar",
    "featureDirectPathsDesc": "Vissa formatpar (Claude→Gemini) har direkta översättare som kringgår OpenAI-hubben, vilket ger mer exakt utdata.",
    "featureImageMapping": "Kartläggning av bildstorlek",
    "featureImageMappingDesc": "Översätter bilddimensionskonventioner mellan API-format (t.ex. OpenAI-detaljnivåer → Gemini-dimensioner).",
    "input": "Ingång",
    "output": "Utgång",
    "auto": "Auto",
    "swapFormats": "Byt format",
    "translateAction": "Översätt",
    "clear": "Rensa",
    "inputPlaceholder": "Klistra in en förfrågningstext här eller välj en mall nedan...",
    "exampleTemplates": "Exempel mallar",
    "exampleTemplatesHint": "— Klicka för att ladda",
    "templateLoadHint": "Mallen laddar begäran i formatet {format}. Ändra källformat för att ladda i ett annat format.",
    "compatibilityTester": "Kompatibilitetstestare",
    "compatibilityReport": "Kompatibilitetsrapport",
    "testBenchDescription": "Kör fördefinierade scenarier (Simple Chat, Tool Calling, etc.) för att verifiera översättning och leverantörskompatibilitet. Välj ett källformat och målleverantör och kör sedan alla tester för att se en kompatibilitetsprocent. Använd det här för att ta reda på vilka funktioner som fungerar mellan olika leverantörer.",
    "targetProvider": "Målleverantör",
    "runAllTests": "Kör alla tester",
    "runTest": "Kör test",
    "reRun": "Kör igen",
    "running": "Kör...",
    "passed": "godkänd",
    "failed": "misslyckades",
    "passedIconLabel": "✅ Godkänd",
    "chunks": "bitar",
    "scenarioSimpleChat": "Enkel chatt",
    "scenarioToolCalling": "Verktygsanrop",
    "scenarioMultiTurn": "Flervarv",
    "scenarioThinking": "Tänker",
    "scenarioSystemPrompt": "Systemprompt",
    "scenarioStreaming": "Streaming",
    "templateNames": {
      "simple-chat": "Enkel chatt",
      "tool-calling": "Verktygsanrop",
      "multi-turn": "Flervarv",
      "thinking": "Tänker",
      "system-prompt": "Systemprompt",
      "streaming": "Streaming",
      "vision": "Vision",
      "schema-coercion": "Schema tvång"
    },
    "templateDescriptions": {
      "simple-chat": "Grundläggande textmeddelande",
      "tool-calling": "Funktion/verktygsanrop",
      "multi-turn": "Samtal med historien",
      "thinking": "Utökat tänkande/resonemang",
      "system-prompt": "Komplexa systeminstruktioner",
      "streaming": "SSE-strömningsförfrågan",
      "vision": "Multimodal begäran med bildinmatning",
      "schema-coercion": "Structured-output / JSON-schematillämpning"
    },
    "templatePayloads": {
      "simpleChat": {
        "system": "Du är en hjälpsam assistent.",
        "userGreeting": "Hej! Hur mår du idag?"
      },
      "toolCalling": {
        "userWeather": "Hur är vädret i São Paulo?",
        "toolDescription": "Få aktuellt väder för en plats",
        "cityNameDescription": "Stadsnamn"
      },
      "multiTurn": {
        "system": "Du är en kodningsassistent.",
        "userInitial": "Skriv en funktion för att sortera en array i Python.",
        "assistantExample": "Här är en enkel sorteringsfunktion:\n\n``` python\ndef sort_array(arr):\n    return sorterad(arr)\n```",
        "userFollowUp": "Sortera det nu i fallande ordning."
      },
      "thinking": {
        "question": "Vad är summan av de första 100 primtalen?"
      },
      "systemPrompt": {
        "systemInstruction": "Du är en senior mjukvaruingenjör specialiserad på distribuerade system. Svara på frågor kortfattat med hjälp av branschens bästa praxis. Ge alltid kodexempel när det är relevant. Formatera dina svar med markdown.",
        "question": "Hur implementerar jag ett strömbrytarmönster?"
      },
      "streaming": {
        "prompt": "Berätta en kort historia om en robot som lär sig måla."
      },
      "vision": {
        "system": "Du är en assistent som beskriver bilder exakt.",
        "userPrompt": "Vad visas på den här bilden?",
        "imageUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/600px-PNG_transparency_demonstration_1.png"
      },
      "schemaCoercion": {
        "userPrompt": "Slå upp vädret för Tokyo med hjälp av metriska enheter och inkludera timuppdelningen.",
        "toolDescription": "Hämta väder för en stad med strukturerade alternativ.",
        "cityDescription": "Staden att fråga, t.ex. \"Tokyo\" eller \"New York\"."
      }
    },
    "openaiCompatibleLabel": "OpenAI-kompatibel",
    "anthropicCompatibleLabel": "Antropisk kompatibel",
    "noTemplateForFormat": "Ingen mall för detta format",
    "translationFailed": "Översättning misslyckades: {error}",
    "pipelineDebugger": "Pipeline Debugger",
    "translationPipeline": "Översättning pipeline",
    "pipelineVisualization": "Visualisering av pipeline",
    "pipelineVisualizationHint": "Skicka ett meddelande för att se hur din förfrågan flyter genom upptäckt → översättning → leverantörssamtal.",
    "chatTesterDescription": "Skicka meddelanden som ett specifikt klientformat och inspektera varje steg i översättningspipelinen.",
    "chatTesterFlow": "Klientförfrågan → Formatdetektion → OpenAI Intermediate → Leverantörsformat → Svar",
    "clickStepToInspect": "Klicka på valfritt steg för att inspektera data i det stadiet.",
    "clientFormat": "Klientformat",
    "provider": "Leverantör",
    "modelPlaceholder": "Välj eller skriv ett modellnamn...",
    "sendMessageToSeePipeline": "Skicka ett meddelande för att se översättningspipeline",
    "chatMessageHintPrefix": "Ditt meddelande kommer att formateras som en",
    "chatMessageHintSuffix": "begäran, översatt genom pipelinen och skickad till den valda leverantören.",
    "youWithFormat": "Du ({format})",
    "assistant": "Assistent",
    "typeMessage": "Skriv ett meddelande...",
    "send": "Skicka",
    "clientRequest": "Kundförfrågan",
    "clientRequestDescription": "Begäran som din klient skulle skicka den",
    "formatDetected": "Format upptäckt",
    "formatDetectedDescription": "OmniRoute upptäcker automatiskt API-formatet från förfrågningsstrukturen",
    "openaiIntermediate": "OpenAI Intermediate",
    "openaiIntermediateDescription": "Alla format normaliseras först till OpenAI-format (den universella bryggan)",
    "providerFormat": "Leverantörsformat",
    "providerFormatDescription": "OpenAI-formatet översätts till leverantörens ursprungliga format",
    "providerResponse": "Leverantörens svar",
    "providerResponseRawDescription": "Det råa svaret från leverantörens API",
    "providerResponseSseDescription": "Den råa SSE-strömmen från leverantörens API",
    "unexpectedError": "Ett oväntat fel inträffade",
    "error": "Fel",
    "errorMessage": "Fel: {message}",
    "requestFailed": "Begäran misslyckades",
    "noTextExtracted": "(Ingen text extraherad)",
    "liveMonitorMemoryNote": "Händelser lagras i minnet och går förlorade vid omstart.",
    "liveMonitorMemoryCapNote": "Max 200 evenemang behålls.",
    "eventSourcesLabel": "Händelsekällor:",
    "eventSourceTranslatorPage": "• Översättarsida (chatttestare, testbänk)",
    "eventSourceMainPipeline": "• Huvudbegäran pipeline (CLI/IDE/API-trafik)",
    "liveMonitorDescriptionPrefix": "Visar översättningshändelser när API-anrop flyter genom OmniRoute. Händelser kommer från minnesbufferten (återställs vid omstart). Använd",
    "liveMonitorDescriptionSuffix": ", eller externa API-anrop för att generera händelser.",
    "streamTransformer": "Stream transformator",
    "modeDescriptionStreamTransformer": "Kör chattslutföranden SSE-strömmar genom Responses-transformatorn.",
    "streamTransformerTitle": "Svar Stream Transformer",
    "streamTransformerDescription": "Klistra in en SSE-ström för att slutföra chatt, kör den genom OmniRoutes Responses-transformator och inspektera de utsända responsen*-händelserna innan du kopplar en klient.",
    "loadTextSample": "Ladda textexempel",
    "loadToolSample": "Ladda verktyg-anropsexempel",
    "transformToResponses": "Förvandla till svar",
    "rawChatSseInput": "Rå chattavslut SSE",
    "transformedResponsesSse": "Transformed Responses API SSE",
    "noResultsYet": "Inga resultat ännu",
    "transformedEvents": "Förvandlade händelser",
    "uniqueEventTypes": "Unika händelsetyper",
    "inputLines": "Ingångslinjer",
    "outputLines": "Utgångslinjer",
    "transformedEventTimeline": "Förvandlad händelsetidslinje",
    "transformerTimelineHint": "Kör transformatorn för att inspektera emitterade response.output_*-händelser i ordning.",
    "eventType": "Händelsetyp",
    "eventPreview": "Förhandsgranska",
    "comboRouted": "Combo dirigerad",
    "uniqueEndpoints": "Unika slutpunkter",
    "routeDetails": "Ruttdetaljer",
    "comboBadge": "Combo",
    "routeEndpointLabel": "Slutpunkt",
    "routeConnectionLabel": "Anslutning",
    "scenarioVision": "Vision (bildförståelse)",
    "scenarioSchemaCoercion": "Schematvång (strukturerad produktion)",
    "techniques": "Tekniker:"
  },
  "usage": {
    "title": "Användning",
    "loggerTab": "Logger",
    "proxyTab": "Proxy",
    "budgetManagement": "Budgethantering",
    "budgetSaved": "Budgetgränser sparade",
    "budgetSaveFailed": "Det gick inte att spara budget",
    "loadingBudgetData": "Laddar budgetdata...",
    "noApiKeysTitle": "Inga API-nycklar",
    "noApiKeysDescription": "Lägg först till API-nycklar för att ställa in budgetgränser.",
    "apiKey": "API-nyckel",
    "todaysSpend": "Dagens utgifter",
    "thisMonth": "Denna månad",
    "setLimits": "Ställ in gränser",
    "dailyLimitUsd": "Daglig gräns (USD)",
    "monthlyLimitUsd": "Månadsgräns (USD)",
    "warningThresholdPercent": "Varningströskel (%)",
    "dailyLimitPlaceholder": "t.ex. 5.00",
    "monthlyLimitPlaceholder": "t.ex. 50.00",
    "warningThresholdPlaceholder": "80",
    "saveLimits": "Spara gränser",
    "budgetOk": "Budget OK — {remaining} kvar",
    "budgetExceeded": "Budget överskriden — förfrågningar kan blockeras",
    "totalRequests": "Totalt antal förfrågningar",
    "noDataYet": "Inga uppgifter ännu",
    "latency": "Latens",
    "latencyP50": "p50",
    "latencyP95": "s 95",
    "latencyP99": "s 99",
    "promptCache": "Fråga Cache",
    "systemHealth": "Systemhälsa",
    "entries": "Inlägg",
    "activeCount": "{count} aktiv",
    "openCircuitBreakersDetected": "Öppen strömbrytare upptäckt",
    "hitRate": "Träfffrekvens",
    "hitsMisses": "Träffar/missar",
    "circuitBreakers": "Strömbrytare",
    "lockedIPs": "Låsta IP-adresser",
    "lockoutsAutoRefreshHint": "Lås för hastighetsgräns per modell • Automatisk uppdatering 10s",
    "lockedCount": "{count, plural, one {# locked} other {# locked}}",
    "timeLeft": "{time} kvar",
    "howItWorks": "Hur det fungerar",
    "howItWorksSubtitle": "Lär dig hur utvärderingar validerar dina LLM-svar",
    "define": "Definiera",
    "defineStepDescription": "Skapa testfall med indatameddelanden och förväntade utdatakriterier med hjälp av strategier som innehåller, regex eller exakt matchning.",
    "run": "Kör",
    "runStepDescription": "Utför testfall mot dina LLM-slutpunkter genom OmniRoute. Varje ärende skickas som en riktig API-förfrågan.",
    "evaluate": "Utvärdera",
    "evaluateStepDescription": "Svar jämförs mot förväntade kriterier. Se godkänt/underkänt för varje fall med latensstatistik och detaljerad feedback.",
    "evalsStrategyContainsLabel": "__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": "Utvärderingssviter",
    "evalSuitesHint": "Klicka på en svit för att se testfall och kör sedan för att utvärdera dina LLM-slutpunkter",
    "evalsLoading": "Laddar eval-sviter...",
    "noEvalSuitesFound": "Inga Eval Suites hittades",
    "noEvalSuitesDescription": "Eval-sviter kan definieras via API:t eller i kod. De testar modellutdata mot förväntade resultat med hjälp av strategier som innehåller, regex, exakt matchning och anpassade funktioner.",
    "columnCase": "Fall",
    "columnStatus": "Status",
    "columnLatency": "Latens",
    "columnDetails": "Detaljer",
    "columnModel": "Modell",
    "columnStrategy": "Strategi",
    "columnExpected": "Förväntat",
    "statsSuites": "Sviter",
    "statsTestCases": "Testfall",
    "statsModels": "Modeller",
    "statsCoverage": "Täckning",
    "statsStrategiesCount": "{count} strategier",
    "evaluationStrategies": "Utvärderingsstrategier",
    "modelsUnderTest": "Modeller under test",
    "searchSuitesPlaceholder": "Sök efter sviter...",
    "passSuffix": "passera",
    "casesCount": "{count, plural, one {# case} other {# cases}}",
    "runEval": "Kör Eval",
    "runAllSuites": "Kör alla",
    "runAllRunning": "Kör alla...",
    "runAllProgress": "Kör {current}/{total}: {name}",
    "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
    "runAllCompleted": "Körde {suites} sviter — {passed} godkändes, {failed} misslyckades",
    "runAllCompletedWithFailures": "Körde {completed} sviter; {failedSuites} kunde inte slutföras",
    "runningProgress": "Kör {current}/{total}...",
    "passRate": "genomslagsfrekvens",
    "summaryBreakdown": "{passed} godkänd · {failed} misslyckades · {total} totalt",
    "passedIconLabel": "✅ Godkänd",
    "failedIconLabel": "❌ Misslyckades",
    "resultPassed": "Godkänd",
    "resultFailed": "Misslyckades",
    "expandResult": "Expandera resultatdetaljer",
    "collapseResult": "Komprimera resultatinformation",
    "detailsContains": "Innehåller: \"{term}\"",
    "detailsRegex": "Regex: {pattern}",
    "detailsExpected": "Förväntat: \"{expected}\"",
    "expectedOutputLabel": "Förväntad utgång",
    "noResultsYet": "Inga resultat ännu",
    "testCasesCount": "Testfall ({count})",
    "noTestCasesDefined": "Inga testfall definierade",
    "runEvalHint": "Klicka på \"Kör Eval\" för att köra alla ärenden mot din LLM-slutpunkt. Varje test skickar en riktig förfrågan via OmniRoute.",
    "notifyNoTestCases": "Inga testfall har definierats för denna svit",
    "notifyAllCasesPassed": "Alla {total} fall godkändes ✅",
    "notifySomeCasesFailed": "{passed}/{total} godkänd, {failed} misslyckades",
    "notifyEvalRunFailed": "Evalkörningen misslyckades",
    "notifyEvalTitle": "Eval: {name}",
    "modelEvals": "Modellutvärderingar",
    "evalsHeroDescription": "Testa och validera dina LLM-slutpunkter genom att köra fördefinierade utvärderingssviter. Varje svit innehåller testfall som skickar riktiga uppmaningar genom OmniRoute och jämför svar mot förväntade kriterier – vilket hjälper dig att upptäcka regressioner, jämföra modeller och säkerställa svarskvalitet mellan leverantörer.",
    "qualityValidation": "Kvalitetsvalidering",
    "modelComparison": "Modelljämförelse",
    "regressionDetection": "Regressionsdetektering",
    "latencyBenchmarks": "Latency Benchmarks",
    "modelLockouts": "Modell Lockouter",
    "noLockouts": "Inga modeller är för närvarande låsta",
    "activeSessions": "Aktiva sessioner",
    "noSessions": "Inga aktiva sessioner",
    "sessionsHint": "Sessioner visas när förfrågningar flödar genom proxyn",
    "sessionsTrackedHint": "Spåras via begäran om fingeravtryck • Automatisk uppdatering 5s",
    "session": "Session",
    "age": "Ålder",
    "requests": "Förfrågningar",
    "connection": "Anslutning",
    "durationMillisecondsShort": "{value}ms",
    "durationSecondsShort": "{value}s",
    "durationMinutesShort": "{value}m",
    "durationHoursShort": "{value}h",
    "reasonSeparator": " - ",
    "notAvailableSymbol": "-",
    "providerLimits": "Leverantörsgränser",
    "noProviders": "Inga leverantörer anslutna",
    "connectProvidersForQuota": "Anslut till leverantörer med OAuth för att spåra dina API-kvotgränser och användning.",
    "accountsCount": "{count, plural, one {# account} other {# accounts}}",
    "filteredFromCount": "(filtrerad från {count})",
    "autoRefresh": "Automatisk uppdatering",
    "refreshAll": "Uppdatera alla",
    "loadingQuotas": "Laddar...",
    "account": "konto",
    "modelQuotas": "Modellkvoter",
    "lastUsed": "Last Refreshed",
    "actions": "Åtgärder",
    "refreshQuota": "Uppdatera kvoten",
    "today": "Idag",
    "tomorrow": "Imorgon",
    "dayTimeFormat": "{day}, {time}",
    "inDuration": "i {duration}",
    "notApplicable": "N/A",
    "rawPlanWithValue": "Rå plan: {plan}",
    "noPlanFromProvider": "Ingen plan från leverantören",
    "noQuotaData": "Inga kvotdata",
    "cardExpand": "__MISSING__:Expand",
    "cardCollapse": "__MISSING__:Collapse",
    "moreQuotas": "__MISSING__:+{count} more",
    "ungrouped": "Ungrouped",
    "viewFlat": "Flat",
    "viewByEnvironment": "By Environment",
    "noQuotaDataAvailable": "Inga kvotdata tillgängliga",
    "noAccountsForTierFilter": "Inga konton hittades för nivåfilter",
    "tierAll": "Alla",
    "tierEnterprise": "Företag",
    "tierTeam": "Team",
    "tierBusiness": "Business",
    "tierUltra": "Ultra",
    "tierPro": "Pro",
    "tierPlus": "Plus",
    "tierFree": "Gratis",
    "tierLite": "__MISSING__:Lite",
    "tierUnknown": "Okänd",
    "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": "Redigera cutoffs",
    "forceRefresh": "Uppdatera nu",
    "suiteBuilderSaveFailed": "Failed to save suite",
    "clone": "Klona",
    "exportSuite": "Exportera",
    "importSuite": "Importera",
    "suiteExported": "Svit exporterad",
    "suiteExportFailed": "Det gick inte att exportera svit",
    "suiteImportReady": "Svitimport har laddats för granskning",
    "suiteImportFailed": "Det gick inte att importera svit",
    "suiteImportInvalid": "Ogiltig eval suite JSON",
    "suiteBuilderCloneSuffix": "kopia",
    "suiteBuilderImportedSuite": "Importerad svit",
    "scorecardTitle": "Scorecard",
    "evalApiKey": "API Key",
    "scorecardPassRate": "Pass Rate",
    "targetTypeModel": "Model",
    "actualOutputLabel": "Actual Output",
    "evalTargetHint": "Select a model or combo to evaluate.",
    "suiteBuilderDeleted": "Suite deleted successfully",
    "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
    "nextResetUtc": "Next reset (UTC)",
    "scorecardHint": "Aggregated pass rates across all evaluation suites.",
    "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
    "saving": "Saving",
    "suiteBuilderCaseModelLabel": "Model (optional)",
    "evalControlsTitle": "Evaluation Controls",
    "suiteBuilderEditTitle": "Edit Eval Suite",
    "suiteBuilderCaseStrategyLabel": "Validation Strategy",
    "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
    "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
    "evalCompareHint": "Optionally compare results against a second target.",
    "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
    "historyEmpty": "No evaluation history yet",
    "suiteBuilderUpdated": "Suite updated successfully",
    "resetInterval": "Reset Interval",
    "suiteBuilderCreateTitle": "Create Eval Suite",
    "activePeriodSpend": "Active Period Spend",
    "evalApiKeyHint": "Select which API key to use for evaluation requests.",
    "evalCompareOptional": "Compare (optional)",
    "suiteBuilderDeleteFailed": "Failed to delete suite",
    "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
    "scorecardCases": "Cases",
    "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
    "suiteBuilderCustomBadge": "Custom",
    "targetSuiteDefaults": "Suite defaults",
    "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
    "suiteBuilderNameLabel": "Suite Name",
    "scorecardSuites": "Suites",
    "evalCompareTarget": "Compare Target",
    "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
    "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
    "recentRunsTitle": "Recent Runs",
    "suiteBuilderCaseSystemPromptLabel": "System Prompt",
    "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
    "suiteBuilderCaseExpectedPlaceholderContains": "t.ex. def fibonacci",
    "suiteBuilderCaseExpectedPlaceholderExact": "Klistra in det exakta förväntade svaret",
    "suiteBuilderCaseExpectedPlaceholderRegex": "t.ex. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
    "suiteBuilderCaseExpectedHintRegex": "Använd ett reguljärt JavaScript-uttryck utan att radbryta snedstreck.",
    "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
    "suiteBuilderAddCase": "Add Case",
    "cancel": "Cancel",
    "evalTarget": "Target",
    "suiteBuilderCaseNameLabel": "Case Name",
    "weeklyLimitUsd": "Weekly Limit (USD)",
    "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
    "suiteBuilderNameRequired": "Suite name is required",
    "suiteBuilderCaseUserPromptLabel": "User Prompt",
    "daily": "Daily",
    "resultErrorLabel": "Error",
    "suiteBuilderBuiltInBadge": "Built-in",
    "suiteBuilderCaseCardTitle": "Test Case",
    "suiteBuilderDuplicateCase": "Duplicera",
    "weeklyLimitPlaceholder": "e.g. 50.00",
    "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
    "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
    "weekly": "Weekly",
    "runEvalRunning": "Running evaluation...",
    "delete": "Delete",
    "resetTimeUtc": "Reset Time (UTC)",
    "evalApiKeyAuto": "Auto (use default)",
    "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
    "targetComparisonTitle": "Target Comparison",
    "save": "Save",
    "suiteBuilderCreated": "Suite created successfully",
    "suiteLatestRuns": "Latest Runs",
    "suiteBuilderCaseExpectedLabel": "Expected Value",
    "historyLatency": "Latency",
    "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
    "targetTypeCombo": "Combo",
    "scorecardPassed": "Passed",
    "suiteBuilderCaseTagsLabel": "Tags",
    "suiteBuilderNewSuite": "New Suite",
    "notifyEvalLoadFailed": "Failed to load evaluation data",
    "notConfigured": "Not Configured",
    "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
    "intervalLabel": "Interval",
    "suiteBuilderCreateAction": "Create Suite",
    "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
    "suiteBuilderUpdatedAt": "Updated",
    "errorBadge": "Error",
    "suiteBuilderCasesTitle": "Test Cases",
    "edit": "Edit",
    "monthly": "Monthly",
    "suiteBuilderCasesRequired": "At least one test case is required",
    "weeklyLimitSummary": "Weekly budget limit summary",
    "suiteBuilderDescriptionLabel": "Description",
    "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
    "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
    "staleQuotaTooltip": "Last refresh failed — showing cached data",
    "quotaThresholdLabel": "Min kvar",
    "quotaCutoffsColumnHelp": "Stoppa förfrågningar när återstående kvot faller till denna procentandel eller lägre.",
    "quotaCutoffsButtonDefault": "Standard",
    "quotaCutoffsButtonHelp": "Redigera minsta återstående kvot för detta konto.",
    "quotaCutoffsButtonDisabled": "Inga kvotfönster är tillgängliga för det här kontot ännu.",
    "quotaCutoffsTitle": "Kvotavskärningar för {name} ({provider})",
    "quotaCutoffsExplainer": "Åsidosätt den minsta återstående kvotprocenten där detta konto slutar väljas för varje kvotfönster. Lämna tomt för att ärva standardleverantören.",
    "quotaCutoffsDefaultHint": "Minsta återstående standard: {default}%",
    "quotaCutoffsResetAll": "Återställ alla",
    "quotaCutoffsNoWindows": "Inga kvotfönster är tillgängliga för det här kontot ännu.",
    "quotaThresholdInvalid": "Ange ett heltal från 0 till 100.",
    "budgetKpiToday": "Idag",
    "budgetKpiThisMonth": "Denna månad",
    "budgetKpiProjEom": "Projekt EOM",
    "budgetKpiBlocked": "Blockerad",
    "budgetKpiAtRisk": "I riskzonen",
    "budgetKpiActiveKeys": "Aktiva nycklar",
    "budgetSearchKeysPlaceholder": "Sök nycklar...",
    "budgetSortPctUsed": "Sortera: % använd ↓",
    "budgetSortTodayDollar": "Sortera: Idag $ ↓",
    "budgetSortMonthDollar": "Sortera: Månad $ ↓",
    "budgetSortNameAZ": "Sortera: Namn (A–Z)",
    "budgetColDailyLim": "Daglig lim",
    "budgetColMonthlyLim": "Månatlig lim",
    "budgetColUsedPct": "Använd %",
    "budgetLoading": "Laddar...",
    "budgetNoKeysMatch": "Inga nycklar matchar filter",
    "budgetLinearExtrapolation": "linjär extrapolering",
    "budgetThisMonthSoFar": "Den här månaden hittills",
    "budgetProjectedEndOfMonth": "Beräknat slutet av månaden",
    "budgetByProvider": "av leverantör",
    "budgetDailyDollar": "Dagliga $",
    "budgetWeeklyDollar": "Veckovis $",
    "budgetMonthlyDollar": "Månatlig $",
    "budgetWarnAtPct": "Varna vid %",
    "quotaAlerts": "Kvotvarningar",
    "quotaTableRefreshing": "⟳ Uppfriskande...",
    "noSpendLast30Days": "Inga utgifter under de senaste 30 dagarna",
    "updatedShort": "__MISSING__:Updated",
    "lastRefreshed": "__MISSING__:Last refreshed",
    "providerQuota": "__MISSING__:Provider Quota",
    "providerQuotaHomeHint": "__MISSING__:Live status across connected accounts"
  },
  "modals": {
    "waitingAuth": "Väntar på auktorisering",
    "verificationUrl": "Verifierings-URL",
    "yourCode": "Din kod",
    "remoteAccess": "Fjärråtkomst:",
    "connectedSuccess": "Ansluten framgångsrikt!",
    "connectionFailed": "Anslutningen misslyckades",
    "chooseAuthMethod": "Välj din autentiseringsmetod:",
    "awsBuilderId": "AWS Builder ID",
    "awsIamIdentity": "AWS IAM Identity Center",
    "googleAccount": "Google-konto",
    "githubAccount": "GitHub-konto",
    "importToken": "Importera token",
    "pasteToken": "Klistra in uppdateringstoken från Kiro IDE.",
    "awsRegion": "AWS-regionen",
    "autoDetecting": "Identifierar tokens automatiskt...",
    "readingFromCache": "Läser från AWS SSO-cache",
    "readingFromCursor": "Läser från Cursor IDE-databas",
    "initializing": "Initierar...",
    "pricingConfig": "Priskonfiguration",
    "loadingPricing": "Laddar prisinformation...",
    "pricingRatesFormat": "Priser Format",
    "noPricingData": "Inga prisuppgifter tillgängliga",
    "noModelsFound": "Inga modeller hittades"
  },
  "loggers": {
    "allProviders": "Alla leverantörer",
    "allModels": "Alla modeller",
    "allAccounts": "Alla konton",
    "allApiKeys": "Alla API-nycklar",
    "allTypes": "Alla typer",
    "allLevels": "Alla nivåer",
    "modelAZ": "Modell A-Z",
    "modelZA": "Modell Z-A",
    "loadingLogs": "Laddar loggar...",
    "loadingProxyLogs": "Laddar proxyloggar...",
    "noLogEntries": "Inga loggposter hittades",
    "noPayloadData": "Ingen nyttolastdata tillgänglig för denna loggpost.",
    "proxyEvent": "Proxyhändelse",
    "proxy": "Proxy",
    "level": "Nivå",
    "directNative": "Direkt (infödd)",
    "combo": "Combo",
    "inputTokens": "jag:",
    "outputTokens": "O:"
  },
  "stats": {
    "usageOverview": "Användningsöversikt",
    "outputTokens": "Output Tokens",
    "totalCost": "Total kostnad",
    "usageByModel": "Användning efter modell",
    "usageByAccount": "Användning per konto",
    "failedToLoad": "Det gick inte att läsa in användningsstatistik.",
    "tokenHealth": "Token Health",
    "totalOAuth": "Totalt OAuth",
    "healthy": "Frisk",
    "warning": "Varning",
    "errored": "Fel",
    "lastCheck": "Sista kontrollen",
    "noData": "Inga data",
    "share": "Dela",
    "unableToLoad": "Det gick inte att läsa in systemstatistik",
    "product": "Produkt",
    "resources": "Resurser",
    "company": "Företag"
  },
  "auth": {
    "welcome": "Välkommen",
    "signIn": "Logga in",
    "enterPassword": "Ange ditt lösenord för att fortsätta",
    "password": "Lösenord",
    "unifiedProxy": "Unified AI API Proxy",
    "unifiedAiApiProxy": "Unified AI API Proxy",
    "unifiedAiApiProxyDesc": "Dirigera förfrågningar till flera AI-leverantörer via en enda slutpunkt. Lastbalansering, failover och användningsspårning inbyggd.",
    "passwordNotEnabled": "Lösenordsskydd är inte aktiverat",
    "loading": "Laddar...",
    "invalidPassword": "Ogiltigt lösenord",
    "errorOccurredRetry": "Ett fel uppstod. Försök igen.",
    "configureInstance": "Låt oss konfigurera din OmniRoute-instans",
    "runOnboardingWizard": "Kör introduktionsguiden för att ställa in ditt lösenord och ansluta din första AI-leverantör.",
    "startOnboarding": "Börja onboarding",
    "secureYourInstance": "Säkra din instans",
    "setPasswordDescription": "Ange ett lösenord för att skydda din instrumentpanel och skydda dina API-slutpunkter från obehörig åtkomst.",
    "configurePassword": "Konfigurera lösenord",
    "continue": "Fortsätt",
    "windowWillClose": "Det här fönstret stängs automatiskt...",
    "closeTabNow": "Du kan stänga den här fliken nu.",
    "copyUrlManual": "Kopiera URL:en från adressfältet och klistra in den i programmet.",
    "accessDeniedDescription": "Du har inte behörighet att komma åt den här resursen. Kontrollera din API-nyckel eller kontakta administratören.",
    "goToDashboard": "Gå till Dashboard",
    "featureMultiProviderTitle": "Flera leverantörer",
    "featureMultiProviderDesc": "OpenAI, Anthropic, Google och mer",
    "featureLoadBalancingTitle": "Lastbalansering",
    "featureLoadBalancingDesc": "Fördela förfrågningar intelligent",
    "featureUsageTrackingTitle": "Användningsspårning",
    "featureUsageTrackingDesc": "Övervaka kostnader och tokens",
    "resetPassword": "Återställ lösenord",
    "resetDescription": "Välj en metod för att återställa åtkomst till din instrumentpanel",
    "stopServer": "Stoppa OmniRoute-servern",
    "processing": "Bearbetar...",
    "pleaseWait": "Vänta medan vi slutför auktoriseringen.",
    "authSuccess": "Auktoriseringen lyckades!",
    "copyUrl": "Kopiera denna URL",
    "accessDenied": "Åtkomst nekad",
    "methodCliTitle": "Metod 1: CLI-återställning",
    "methodCliDescription": "Kör följande kommando på servern där OmniRoute körs:",
    "methodCliHint": "Detta kommer att uppmana dig att ange ett nytt lösenord. Servern måste stoppas först.",
    "methodManualTitle": "Metod 2: Manuell återställning",
    "methodManualDescription": "Ta bort lösenordet från databasen och ställ in ett nytt vid start:",
    "setPasswordInYour": "Ange ett nytt lösenord i din",
    "fileLabelSuffix": "fil:",
    "newPasswordPlaceholder": "ditt_nya_lösenord",
    "deleteSettingsFile": "Ta bort",
    "orRemovePasswordHashField": "eller ta bort fältet passwordHash",
    "restartServerWithNewPassword": "Starta om servern - den kommer att använda det nya lösenordet",
    "backToLogin": "Tillbaka till inloggning",
    "forgotPassword": "Glömt lösenordet?",
    "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
    "Authorization": "Auktorisation",
    "Content-Disposition": "Innehåll-Disposition",
    "waitingForAuthorization": "Väntar på auktorisation...",
    "waitingForGoogleAuthorization": "Väntar på Google-auktorisering...",
    "waitingForOpenAIAuthorization": "Väntar på OpenAI-auktorisering...",
    "waitingForAntigravityAuthorization": "Väntar på antigravitationstillstånd...",
    "waitingForQoderAuthorization": "Väntar på Qoder-auktorisering...",
    "exchangingCodeForTokens": "Byter ut kod för tokens...",
    "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": "Navigera till hem",
    "toggleMenu": "Växla meny",
    "featuresLink": "Funktioner",
    "docsLink": "Dokument",
    "github": "GitHub",
    "versionLive": "v1.0 är nu live",
    "oneEndpoint": "En slutpunkt för",
    "allProviders": "Alla AI-leverantörer",
    "heroDescription": "AI-slutpunktsproxy med webbinstrumentpanel - En JavaScript-port för CLIProxyAPI. Fungerar sömlöst med Claude Code, OpenAI Codex, Cline, RooCode och andra CLI-verktyg.",
    "getStarted": "Kom igång",
    "viewOnGithub": "Visa på GitHub",
    "powerfulFeatures": "Kraftfulla funktioner",
    "featuresSubtitle": "Allt du behöver för att hantera din AI-infrastruktur på ett ställe, byggt för skala.",
    "featureUnifiedEndpointTitle": "Unified Endpoint",
    "featureUnifiedEndpointDesc": "Få tillgång till alla leverantörer via en enda standard API-URL.",
    "featureEasySetupTitle": "Enkel installation",
    "featureEasySetupDesc": "Kom igång på några minuter med npx-kommandot.",
    "featureModelFallbackTitle": "Modell Fallback",
    "featureModelFallbackDesc": "Byt leverantör automatiskt vid fel eller hög latens.",
    "featureUsageTrackingTitle": "Användningsspårning",
    "featureUsageTrackingDesc": "Detaljerad analys och kostnadsövervakning över alla modeller.",
    "featureOAuthApiKeysTitle": "OAuth- och API-nycklar",
    "featureOAuthApiKeysDesc": "Hantera autentiseringsuppgifter på ett säkert sätt i ett valv.",
    "featureCloudSyncTitle": "Molnsynkronisering",
    "featureCloudSyncDesc": "Synkronisera dina konfigurationer mellan enheter direkt.",
    "featureCliSupportTitle": "CLI Support",
    "featureCliSupportDesc": "Fungerar med Claude Code, Codex, Cline, Cursor och mer.",
    "featureDashboardTitle": "Instrumentpanel",
    "featureDashboardDesc": "Visuell instrumentpanel för trafikanalys i realtid.",
    "howItWorks": "Hur OmniRoute fungerar",
    "howItWorksDescription": "Data flödar sömlöst från din applikation genom vårt intelligenta routinglager till den bästa leverantören för jobbet.",
    "howItWorksStep1Title": "1. CLI & SDK:er",
    "howItWorksStep1Description": "Dina förfrågningar utgår från dina favoritverktyg eller vår enhetliga SDK. Ändra bara webbadressen.",
    "howItWorksStep2Title": "2. OmniRoute Hub",
    "howItWorksStep2Description": "Vår motor analyserar uppmaningen, kontrollerar leverantörens hälsa och rutter för lägsta latens eller kostnad.",
    "howItWorksStep3Title": "3. AI-leverantörer",
    "howItWorksStep3Description": "Begäran uppfylls av OpenAI, Anthropic, Gemini eller andra omedelbart.",
    "getStartedIn30Seconds": "Kom igång på 30 sekunder",
    "getStartedDescription": "Installera OmniRoute, konfigurera dina leverantörer via webbinstrumentpanelen och börja dirigera AI-förfrågningar.",
    "installOmniRoute": "Installera OmniRoute",
    "installStepDescription": "Kör npx-kommandot för att starta servern direkt",
    "openDashboard": "Öppna Dashboard",
    "openDashboardStepDescription": "Konfigurera leverantörer och API-nycklar via webbgränssnitt",
    "routeRequests": "Ruttförfrågningar",
    "routeRequestsStepDescription": "Rikta dina CLI-verktyg till {endpoint}",
    "terminal": "terminal",
    "copy": "Kopiera",
    "copied": "✓ Kopierat",
    "startingOmniRoute": "Startar OmniRoute...",
    "serverRunningOnLabel": "Server körs på",
    "dashboardLabel": "Instrumentpanel",
    "readyToRoute": "Redo att färdas! ✓",
    "configureProvidersNote": "📝 Konfigurera leverantörer i instrumentpanelen eller använd miljövariabler",
    "dataLocation": "Dataplats:",
    "dataLocationMacLinux": " macOS/Linux:",
    "dataLocationWindows": " Windows:",
    "product": "Produkt",
    "dashboardLink": "Instrumentpanel",
    "changelog": "Ändringslogg",
    "resources": "Resurser",
    "documentation": "Dokumentation",
    "npm": "NPM",
    "legal": "Lagligt",
    "mitLicense": "MIT-licens",
    "footerTagline": "Den enhetliga slutpunkten för AI-generering. Anslut, dirigera och hantera dina AI-leverantörer med lätthet.",
    "copyright": "© {year} OmniRoute. Alla rättigheter reserverade.",
    "flowToolClaudeCode": "Claude Code",
    "flowToolOpenAICodex": "OpenAI Codex",
    "flowToolCline": "Cline",
    "flowToolCursor": "Markör",
    "flowProviderOpenAI": "OpenAI",
    "flowProviderAnthropic": "Antropisk",
    "flowProviderGemini": "Tvillingarna",
    "flowProviderGithubCopilot": "GitHub Copilot",
    "interactiveDiagram": "Interaktivt diagram synligt på skrivbordet",
    "ctaTitle": "Är du redo att förenkla din AI-infrastruktur?",
    "ctaDescription": "Gå med utvecklare som effektiviserar sina AI-integrationer med OmniRoute. Öppen källkod och gratis att starta.",
    "startFree": "Börja gratis",
    "readDocumentation": "Läs dokumentation"
  },
  "docs": {
    "title": "Dokumentation",
    "quickStart": "Snabbstart",
    "deploymentGuides": "Implementeringsguider",
    "features": "Funktioner",
    "supportedProviders": "Leverantörer som stöds",
    "supportedProvidersToc": "Leverantörer",
    "commonUseCases": "Vanliga användningsfall",
    "clientCompatibility": "Klientkompatibilitet",
    "protocolsToc": "Protokoll",
    "apiReference": "API-referens",
    "managementApiReference": "Management API Reference",
    "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
    "method": "Metod",
    "path": "Väg",
    "notes": "Anteckningar",
    "modelPrefixes": "Modellprefix",
    "prefix": "Prefix",
    "troubleshooting": "Felsökning",
    "supportsChat": "Stöder både chatt- och svarsslutpunkter.",
    "oauthAutoRefresh": "OAuth-anslutning med automatisk tokenuppdatering.",
    "fullStreaming": "Fullständigt streamingstöd för alla modeller.",
    "docsLabel": "Dokument",
    "docsHeroDescription": "AI-gateway för LLM:er med flera leverantörer. En slutpunkt för OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor och 20+ leverantörer till.",
    "openDashboard": "Öppna Dashboard",
    "endpointPage": "Slutpunktssida",
    "github": "GitHub",
    "reportIssue": "Rapportera problem",
    "onThisPage": "På den här sidan",
    "documentationVersion": "Dokumentation - v{version}",
    "quickStartStep1Title": "1. Installera och kör",
    "quickStartStep1Prefix": "Kör",
    "quickStartStep1Middle": "eller klona från GitHub och kör",
    "quickStartStep2Title": "2. Skapa API-nyckel",
    "quickStartStep2Text": "Gå till Endpoint -> Registrerade nycklar. Generera en nyckel per miljö.",
    "quickStartStep3Title": "3. Anslut leverantörer",
    "quickStartStep3Text": "Lägg till leverantörskonton via OAuth-inloggning, API-nyckel eller automatisk anslutning på fri nivå.",
    "quickStartStep4Title": "4. Ställ in klientbasens URL",
    "quickStartStep4Prefix": "Peka din IDE- eller API-klient till",
    "quickStartStep4Suffix": "Använd till exempel leverantörsprefix",
    "deploySetupTitle": "Installationsguide",
    "deploySetupText": "Steg-för-steg-installation, miljökonfiguration och första genomgång för OmniRoute.",
    "deployElectronTitle": "Electron Desktop",
    "deployElectronText": "Kör OmniRoute som ett inbyggt skrivbordsprogram på Windows, macOS och Linux.",
    "deployDockerTitle": "Hamnarbetare",
    "deployDockerText": "Containeriserad distribution med Docker Compose; redo för produktionsstackar och Kubernetes.",
    "deployVmTitle": "Virtuell maskin",
    "deployVmText": "Självvärd på vilken Linux-VM som helst. Inkluderar systemd enhet, loggrotation och verktyg för backup.",
    "deployFlyTitle": "Fly.io",
    "deployFlyText": "Distribuera till Fly.io edge runtime med en fly.toml och ett enda deploy-kommando.",
    "deployPwaTitle": "PWA",
    "deployPwaText": "Installera OmniRoute som en progressiv webbapp på Android, iOS och stationära webbläsare.",
    "deployTermuxTitle": "Termux (Android)",
    "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
    "featureRoutingTitle": "Routing för flera leverantörer",
    "featureRoutingText": "Dirigera förfrågningar till 30+ AI-leverantörer via en enda OpenAI-kompatibel slutpunkt. Stöder chatt, svar, ljud och bild-API:er.",
    "featureCombosTitle": "Kombinationer och balansering",
    "featureCombosText": "Skapa modellkombinationer med reservkedjor och balanseringsstrategier: round-robin, prioritet, slumpmässigt, minst använda och kostnadsoptimerat.",
    "featureUsageTitle": "Användnings- och kostnadsspårning",
    "featureUsageText": "Tokenräkning i realtid, kostnadsberäkning per leverantör/modell och detaljerad användningsuppdelning efter API-nyckel och konto.",
    "featureAnalyticsTitle": "Analysinstrumentpanel",
    "featureAnalyticsText": "Visuell analys med diagram för förfrågningar, tokens, fel, latens, kostnader och modellpopularitet över tid.",
    "featureHealthTitle": "Hälsoövervakning",
    "featureHealthText": "Live hälsokontroller, leverantörsstatus, strömbrytartillstånd och automatisk hastighetsgränsdetektering med exponentiell backoff.",
    "featureCliTitle": "CLI-verktyg",
    "featureCliText": "Hantera IDE-konfigurationer, exportera/importera säkerhetskopior, upptäck codex-profiler och konfigurera inställningar från instrumentpanelen.",
    "featureSecurityTitle": "Säkerhet och policyer",
    "featureSecurityText": "API-nyckelautentisering, IP-filtrering, promptinjektionsskydd, domänpolicyer, sessionshantering och granskningsloggning.",
    "featureCloudSyncTitle": "Molnsynkronisering",
    "featureCloudSyncText": "Synkronisera din konfiguration med Cloudflare Workers för fjärråtkomst med krypterade autentiseringsuppgifter och automatisk failover.",
    "providersAcrossConnectionTypes": "{count} leverantörer över tre anslutningstyper.",
    "manageProviders": "Hantera leverantörer",
    "providersCount": "{count} leverantörer",
    "providerTypeFree": "Gratis nivå",
    "providerTypeOAuth": "OAuth",
    "providerTypeApiKey": "API-nyckel",
    "useCaseSingleEndpointTitle": "En enda slutpunkt för många leverantörer",
    "useCaseSingleEndpointText": "Peka klienter till en basadress och dirigera efter modellprefix (till exempel: gh/, cc/, kr/, openai/).",
    "useCaseFallbackTitle": "Reserv- och modellbyte med kombinationer",
    "useCaseFallbackText": "Skapa kombinationsmodeller i Dashboard och håll klientkonfigurationen stabil medan leverantörerna roterar internt.",
    "useCaseUsageVisibilityTitle": "Användning, kostnad och felsökningssynlighet",
    "useCaseUsageVisibilityText": "Spåra tokens och kostnader efter leverantör, konto och API-nyckel på flikarna Användning och Analytics.",
    "clientCherryStudioTitle": "Cherry Studio",
    "baseUrlLabel": "Bas-URL",
    "chatEndpointLabel": "Chattslutpunkt",
    "modelRecommendationLabel": "Modellrekommendation: explicit prefix",
    "clientCodexTitle": "Codex / GitHub Copilot-modeller",
    "clientCodexBullet1": "Använd modell-ID med",
    "clientCodexBullet2": "Codex-familjens modeller dirigeras automatiskt till",
    "clientCodexBullet3": "Icke-Codex-modeller fortsätter",
    "clientCursorTitle": "Markör IDE",
    "clientCursorBullet1": "Använd",
    "clientCursorBullet1Suffix": "prefix för Cursor-modeller.",
    "clientCursorBullet2": "OAuth-anslutning - logga in från sidan Leverantörer.",
    "clientClaudeTitle": "Claude Code / Antigravitation",
    "clientClaudeBullet1Prefix": "Använd",
    "clientClaudeBullet1Middle": "(Claude) eller",
    "clientClaudeBullet1Suffix": "(Antigravitation) prefix.",
    "clientWindsurfTitle": "Vindsurfa",
    "clientWindsurfBullet1": "Använd OmniRoute som en OpenAI-kompatibel bas-URL och behåll explicita leverantörsprefix för deterministisk routing.",
    "clientWindsurfBullet2": "Peka modeller till `/v1/chat/completions` för allmän trafik och bevara `/v1/responses` för Codex-liknande flöden.",
    "clientWindsurfBullet3": "Använd Dashboard -> CLI Tools för en färdig konfigurationsguide för Windsurf.",
    "clientClineTitle": "Cline",
    "clientClineBullet1": "Cline fungerar bäst med explicita leverantörs-/modellprefix så att routern aldrig behöver gissa backend.",
    "clientClineBullet2": "Använd `/v1/chat/completions` för allmänna modeller och återanvänd samma OmniRoute-basadress för olika konton.",
    "clientClineBullet3": "Använd instrumentpanelen för leverantörer för att validera OAuth/API-nyckeln innan du felsöker Cline-runtimeproblem.",
    "clientKimiTitle": "Kimi kodning",
    "clientKimiBullet1": "Använd OmniRoute som en stabil bas-URL medan du roterar konton eller leverantörskombinationer under.",
    "clientKimiBullet2": "Föredra prefixmodeller i kodningsflöden så att reserv- och revisionsspår förblir explicita.",
    "clientKimiBullet3": "Använd `/v1/responses` när du vill ha inbyggd routing i Responses-stil för klienter som använder verktyg.",
    "protocolsTitle": "Protocols: MCP & A2A",
    "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
    "protocolMcpTitle": "MCP (Model Context Protocol)",
    "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
    "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
    "protocolMcpStep2": "Point your MCP client to stdio transport.",
    "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
    "protocolA2aTitle": "A2A (Agent2Agent)",
    "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
    "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
    "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
    "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
    "protocolTroubleshootingTitle": "Protocol Troubleshooting",
    "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
    "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
    "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
    "endpointChatNote": "OpenAI-kompatibel chattslutpunkt (standard).",
    "endpointResponsesNote": "Responses API-slutpunkt (Codex, o-serien).",
    "endpointModelsNote": "Modellkatalog för alla anslutna leverantörer.",
    "endpointAudioNote": "Ljudtranskription (Deepgram, AssemblyAI).",
    "endpointSpeechNote": "Text-till-tal-generering (ElevenLabs, OpenAI TTS).",
    "endpointEmbeddingsNote": "Generering av textinbäddning (OpenAI, Cohere, Voyage).",
    "endpointImagesNote": "Bildgenerering (NanoBanana).",
    "endpointRewriteChatNote": "Omskrivningshjälp för klienter utan /v1.",
    "endpointRewriteResponsesNote": "Skriv om hjälpare för svar utan /v1.",
    "endpointRewriteModelsNote": "Omskrivningshjälp för modellupptäckt utan /v1.",
    "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
    "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
    "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
    "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
    "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
    "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
    "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
    "modelPrefixesDescriptionStart": "Använd leverantörsprefixet före modellnamnet för att dirigera till en specifik leverantör. Exempel:",
    "modelPrefixesDescriptionEnd": "rutter till GitHub Copilot.",
    "provider": "Leverantör",
    "type": "Typ",
    "troubleshootingModelRouting": "Om klienten misslyckas med modellrouting, använd explicit leverantör/modell (till exempel: gh/gpt-5.1-codex).",
    "troubleshootingAmbiguousModels": "Om du får tvetydiga modellfel väljer du ett leverantörsprefix istället för ett blott modell-ID.",
    "troubleshootingCodexFamily": "För GitHub Codex-familjens modeller, behåll modellen som gh/codex-model; routern väljer /svarar automatiskt.",
    "troubleshootingTestConnection": "Använd Dashboard > Leverantörer > Testa anslutning innan du testar från IDE:er eller externa klienter.",
    "troubleshootingCircuitBreaker": "Om en leverantör visar att strömbrytaren är öppen, vänta på nedkylning eller kolla Health-sidan för detaljer.",
    "troubleshootingOAuth": "För OAuth-leverantörer, autentisera på nytt om tokens löper ut. Kontrollera leverantörskortets statusindikator.",
    "endpointCompletionsNote": "Äldre slutpunkter för textgenerering.",
    "endpointModerationsNote": "Innehållsmoderering och säkerhetsklassificering.",
    "endpointRerankNote": "Dokumentomrankning för hämtning-förstärkt generation (Cohere, Jina).",
    "endpointSearchNote": "Webbsökning med 5 leverantörer (Serper, Brave, Exa, Tavily, Perplexity).",
    "endpointSearchAnalyticsNote": "Analytics och mätvärden för sökförfrågningar.",
    "endpointVideoNote": "Videogenerering (ComfyUI, SD WebUI arbetsflöden).",
    "endpointMusicNote": "Musikgenerering via ComfyUI-arbetsflöden.",
    "endpointMessagesNote": "Slutpunkt för antropiska infödda meddelanden.",
    "endpointCountTokensNote": "Räkna tokens för en given meddelandenyttolast.",
    "endpointFilesNote": "Filuppladdning för multimodala ingångar.",
    "endpointBatchesNote": "Batchbearbetning för bulk-API-förfrågningar.",
    "endpointWsNote": "WebSocket-slutpunkt för realtidsströmning.",
    "mgmtProvidersListNote": "Lista alla registrerade leverantörsanslutningar.",
    "mgmtProvidersCreateNote": "Skapa en ny leverantörsanslutning.",
    "mgmtProvidersUpdateNote": "Uppdatera en befintlig leverantörsanslutning.",
    "mgmtProvidersDeleteNote": "Ta bort en leverantörsanslutning.",
    "mgmtProvidersTestNote": "Testa anslutning och autentisering för en leverantör.",
    "mgmtProvidersModelsNote": "Lista tillgängliga modeller för en specifik leverantör.",
    "mgmtSettingsGetNote": "Hämta aktuella programinställningar.",
    "mgmtSettingsUpdateNote": "Uppdatera programinställningar.",
    "mgmtPayloadRulesGetNote": "Få regler för omvandling av nyttolast.",
    "mgmtPayloadRulesUpdateNote": "Uppdatera regler för omvandling av nyttolast.",
    "mcpToolsTitle": "MCP-verktyg",
    "mcpToolsDescription": "OmniRoute exponerar {count} verktyg via Model Context Protocol för agentorkestrering.",
    "mcpToolsCount": "{count} verktyg",
    "mcpToolsToc": "MCP-verktyg",
    "mcpToolsRoutingTitle": "Routing & Discovery",
    "mcpToolsRoutingDesc": "Hälsokontroller, kombinationshantering, kvotövervakning, kostnadsrapportering och modellkatalogåtkomst.",
    "mcpToolsOperationsTitle": "Verksamhet & Strategi",
    "mcpToolsOperationsDesc": "Ruttsimulering, budgetvakter, strategibyte, resiliensprofiler och leverantörsmått.",
    "mcpToolsCacheTitle": "Cachehantering",
    "mcpToolsCacheDesc": "Visa cachestatistik och spola semantiska cacher eller signaturcacher.",
    "mcpToolsCompressionTitle": "Kompressionsmotorer",
    "mcpToolsCompressionDesc": "Konfigurera RTK/Brotli-komprimering, byt motorer och inspektera kompressionsanalyser efter kombination.",
    "mcpToolsOneProxyTitle": "1Proxy/tunnlar",
    "mcpToolsOneProxyDesc": "Hantera utgående proxyservrar, rotera IP-adresser för bostäder och inspektera proxystatus.",
    "mcpToolsMemoryTitle": "Minne",
    "mcpToolsMemoryDesc": "Sök, lägg till och rensa beständiga konversationsminnesposter.",
    "mcpToolsSkillsTitle": "Färdigheter",
    "mcpToolsSkillsDesc": "Lista, aktivera, exekvera och övervaka anpassade färdighetskörningar.",
    "featureAutoComboTitle": "Auto-Combo",
    "featureAutoComboText": "Skapa automatiskt optimerade kombinationer baserat på dina anslutna leverantörer, användningsmönster och modellmöjligheter.",
    "featureSearchTitle": "Webbsökning",
    "featureSearchText": "Integrerad webbsökning med 5 leverantörer (Serper, Brave, Exa, Tavily, Perplexity) inklusive analys och kostnadsspårning.",
    "featureMemoryTitle": "Minnessystem",
    "featureMemoryText": "Ihållande samtalsminne med extraktion, injektion, hämtning och sammanfattning över sessioner.",
    "featureSkillsTitle": "Färdighetsram",
    "featureSkillsText": "Utökbart färdighetssystem med inbyggda och anpassade färdigheter, verkställande av sandlåde, förfrågningsavlyssning och kontextinjektion.",
    "featureAcpTitle": "Agentkommunikation",
    "featureAcpText": "Agent Communication Protocol (ACP)-register för hantering av agent-till-agent-arbetsflöden och verktygsorkestrering.",
    "protocolAcpTitle": "ACP (agentkommunikation)",
    "protocolAcpDesc": "Registrera och hantera agenter via ACP-registret för kommunikation mellan agenter och verktygsdelning.",
    "protocolAcpStep1": "Navigera till Dashboard → Agenter för att visa registrerade ACP-agenter.",
    "protocolAcpStep2": "Registrera nya agenter med funktioner och slutpunktskonfiguration.",
    "protocolAcpStep3": "Använd CLI-verktyg för att konfigurera agentkommunikationskanaler."
  },
  "legal": {
    "privacyPolicy": "Sekretesspolicy",
    "termsOfService": "Användarvillkor",
    "providerConfigurations": "Leverantörskonfigurationer",
    "apiKeys": "API-nycklar",
    "usageLogs": "Användningsloggar",
    "applicationSettings": "Applikationsinställningar",
    "viewExportAnalytics": "Visa och exportera användningsanalyser",
    "clearHistory": "Rensa användningshistorik när som helst",
    "configureRetention": "Konfigurera logglagringspolicyer",
    "backupRestore": "Säkerhetskopiera och återställ din databas",
    "privacyMetadataTitle": "Sekretesspolicy | OmniRoute",
    "privacyMetadataDescription": "Sekretesspolicy för OmniRoute AI API-proxyroutern.",
    "termsMetadataTitle": "Användarvillkor | OmniRoute",
    "termsMetadataDescription": "Användarvillkor för OmniRoute AI API-proxyroutern.",
    "backToHome": "Tillbaka till hemmet",
    "lastUpdated": "Senast uppdaterad: {date}",
    "policyLastUpdatedDate": "13 februari 2026",
    "listSeparator": "-",
    "questionsVisit": "Frågor? Besök vår",
    "githubRepository": "GitHub-förråd",
    "privacySection1Title": "1. Lokal-först arkitektur",
    "privacySection1Text": "OmniRoute är designad som en lokal-först-applikation. All databehandling och lagring sker helt och hållet på din maskin. Det finns ingen centraliserad server som samlar in din information.",
    "privacySection2Title": "2. Data vi lagrar",
    "privacyDataStoredIn": "Följande data lagras lokalt i",
    "privacyDataProviderConfigurationsDesc": "anslutningsadresser, leverantörstyper och prioritetsinställningar",
    "privacyDataApiKeysDesc": "krypterad och lagrad lokalt för autentisering med AI-leverantörer",
    "privacyDataUsageLogsDesc": "antal begäranden, tokenanvändning, modellnamn, tidsstämplar och svarstider",
    "privacyDataApplicationSettingsDesc": "temapreferenser, routingstrategi och kombinationskonfigurationer",
    "privacySection3Title": "3. Ingen telemetri",
    "privacySection3Text": "OmniRoute samlar inte in telemetri-, analys- eller kraschrapporter. Ingen data skickas till oss eller någon tredje part. Dina användningsmönster, API-anrop och konfigurationer förblir helt privata.",
    "privacySection4Title": "4. Tredjeparts AI-leverantörer",
    "privacySection4Text": "När du gör API-anrop via OmniRoute vidarebefordras dina förfrågningar till de AI-leverantörer du har konfigurerat (till exempel: OpenAI, Anthropic, Google). Dessa leverantörer har sina egna integritetspolicyer som styr hur de hanterar din data. Vänligen granska:",
    "privacyOpenAiPolicy": "OpenAI Sekretesspolicy",
    "privacyAnthropicPolicy": "Antropisk sekretesspolicy",
    "privacyGooglePolicy": "Googles sekretesspolicy",
    "privacySection5Title": "5. Molnsynkronisering (valfritt)",
    "privacySection5Text": "Om du aktiverar den valfria molnsynkroniseringsfunktionen kan leverantörskonfigurationer och API-nycklar överföras till en konfigurerad molnslutpunkt. Den här funktionen är inaktiverad som standard och kräver explicit opt-in.",
    "privacySection6Title": "6. Loggning",
    "privacyLoggingIntro": "Begäran loggar kan konfigureras via instrumentpanelens inställningar. Du kan:",
    "privacySection7Title": "7. Dina rättigheter",
    "privacySection7TextStart": "Eftersom all data lagras lokalt har du full kontroll. Du kan radera dina uppgifter när som helst genom att ta bort",
    "privacySection7TextEnd": "katalogen eller använda funktionerna för säkerhetskopiering och återställning av databasen i instrumentpanelen.",
    "termsSection1Title": "1. Översikt",
    "termsSection1Text": "OmniRoute är en lokalt första AI API-proxyrouter som fungerar helt på din maskin. Den dirigerar förfrågningar till flera AI-leverantörer med lastbalansering, failover och användningsspårning.",
    "termsSection2Title": "2. Användaransvar",
    "termsResponsibilityApiKeys": "Du är ensam ansvarig för att hantera dina egna API-nycklar och autentiseringsuppgifter för tredjeparts AI-leverantörer (OpenAI, Anthropic, Google, etc.).",
    "termsResponsibilityCompliance": "Du måste följa användarvillkoren för varje AI-leverantör vars API du kommer åt via OmniRoute.",
    "termsResponsibilitySecurity": "Du ansvarar för säkerheten för din lokala OmniRoute-installation, inklusive att ställa in ett lösenord och begränsa nätverksåtkomst.",
    "termsSection3Title": "3. Hur det fungerar",
    "termsSection3Text": "OmniRoute fungerar som en förmedlande proxy. API-anrop som skickas till OmniRoute översätts och vidarebefordras till dina konfigurerade AI-leverantörer. OmniRoute ändrar inte innehållet i dina förfrågningar eller svar utöver den nödvändiga protokollöversättningen.",
    "termsSection4Title": "4. Datahantering",
    "termsDataStoredLocally": "All data lagras lokalt på din maskin i en SQLite-databas.",
    "termsNoTransmission": "OmniRoute överför ingen data till externa servrar om du inte uttryckligen aktiverar molnsynkroniseringsfunktioner.",
    "termsDataLocationText": "Användningsloggar, API-nycklar och konfiguration lagras i",
    "termsSection5Title": "5. Ansvarsfriskrivning",
    "termsSection5Text": "OmniRoute tillhandahålls \"i befintligt skick\" utan garanti av något slag. Vi ansvarar inte för några kostnader som uppstår genom API-användning, tjänstavbrott eller dataförlust. Behåll alltid säkerhetskopior av din konfiguration.",
    "termsSection6Title": "6. Öppen källkod",
    "termsSection6Text": "OmniRoute är programvara med öppen källkod. Du är fri att inspektera, modifiera och distribuera den enligt villkoren i dess licens."
  },
  "agents": {
    "title": "CLI Agents",
    "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
    "refresh": "Refresh",
    "installed": "Installed",
    "notFound": "Not Found",
    "builtIn": "Built-in",
    "custom": "Custom",
    "remove": "Remove",
    "addCustomAgent": "Add Custom Agent",
    "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
    "agentName": "Agent Name",
    "binaryName": "Binary Name",
    "versionCommand": "Version Command",
    "spawnArgs": "Spawn Args",
    "addAgent": "Add Agent",
    "scanning": "Scanning system for CLI agents...",
    "opencodeIntegration": "OpenCode Integration",
    "opencodeDetected": "opencode {version} detected",
    "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
    "downloadConfig": "Download {file}",
    "downloaded": "Downloaded!",
    "setupGuideTitle": "Setup guide",
    "openCliTools": "Open CLI Tools",
    "setupGuideDetectCliTitle": "Detect installed CLIs",
    "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
    "setupGuideCustomAgentTitle": "Register custom binary",
    "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
    "setupGuideCommandMissingTitle": "Fix 'command not found'",
    "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
    "cliToolsRedirectTitle": "Cli Tools Redirect Title",
    "cliToolsRedirectDesc": "Cli Tools Redirect Desc",
    "spawnArgsPlaceholder": "Spawn Args Placeholder",
    "binaryNamePlaceholder": "Binary Name Placeholder",
    "versionCommandPlaceholder": "Version Command Placeholder",
    "architectureTitle": "Architecture Title",
    "flowLocalBinary": "Flow Local Binary",
    "flowOmniRoute": "Flow Omni Route",
    "agentNamePlaceholder": "Agent Name Placeholder",
    "architectureDescription": "Architecture Description",
    "flowExecute": "Flow Execute",
    "flowSpawn": "Flow Spawn",
    "cliToolsRedirectCta": "Cli Tools Redirect Cta",
    "comparisonTitle": "CLI Tools vs Agent Targets — Vad är skillnaden?",
    "comparisonCliToolsLabel": "CLI Tools sida",
    "comparisonCliToolsTitle": "Din IDE skickar förfrågningar via OmniRoute",
    "comparisonCliToolsDesc": "Konfigurera Claude Code, Codex, Cursor och andra IDE:er för att använda OmniRoute som deras API-bas-URL. OmniRoute fungerar som en proxy och dirigerar förfrågningar till dina konfigurerade leverantörer.",
    "comparisonAgentsLabel": "Denna sida (agentmål)",
    "comparisonAgentsTitle": "OmniRoute skickar förfrågningar till lokala CLI-verktyg",
    "comparisonAgentsDesc": "OmniRoute kan skapa lokala CLI-binärer (claude, codex, goose) som exekveringsbackends. CLI-verktyget behandlar begäran med sin egen autentisering och returnerar resultatet.",
    "comparisonSummary": "Kort sagt: CLI Tools = du konfigurerar verktyg för att peka på OmniRoute. Agent Targets = OmniRoute använder verktyg som sina slutpunkter.",
    "agentUseCaseHint": "Kan användas som ett exekveringsmål via ACP-protokoll",
    "flowDiagramClient": "Klientapp",
    "flowDiagramClientDesc": "SDK, API eller uppströmstjänst",
    "flowDiagramOmniRoute": "OmniRoute",
    "flowDiagramOmniRouteDesc": "Tar emot begäran och väljer mål",
    "flowDiagramSpawn": "Spawn Process",
    "flowDiagramSpawnDesc": "Startar CLI binär via stdio",
    "flowDiagramCli": "CLI-agent",
    "flowDiagramCliDesc": "Processer med egen auth/modell",
    "fingerprintSettingsHint": "CLI-fingeravtrycksmatchning (förklädningsförfrågningar som specifika CLI-verktyg) kan konfigureras i",
    "settingsRoutingLink": "Inställningar/Routing",
    "openSettings": "Inställningar",
    "copyRawUrlTitle": "Kopiera rå URL till urklipp",
    "copied": "Kopierade!",
    "copyUrl": "Kopiera URL",
    "startHere": "Börja här",
    "badgeNew": "Nytt",
    "viewOnGithub": "Visa på GitHub",
    "howToUse": "Hur man använder",
    "browseAllSkillsOnGithub": "Bläddra bland alla färdigheter på GitHub",
    "apiSkills": "API-färdigheter",
    "cliSkills": "CLI-färdigheter",
    "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": "Molnagenter",
    "description": "Hantera autonoma kodningsagenter (Jules, Devin, Codex Cloud)",
    "loading": "Laddar uppgifter...",
    "aboutTitle": "Om molnagenter",
    "aboutDescription": "Molnagenter är fjärrstyrda AI-kodningsassistenter som kan utföra uppgifter autonomt. De fungerar annorlunda än lokala CLI-agenter – du interagerar med dem genom OmniRoutes API.",
    "howItWorksTitle": "Hur det fungerar:",
    "howItWorksDesc": "Skapa en uppgift → Agent analyserar och föreslår en plan → Du godkänner → Agent utför → Resultat returneras",
    "newTaskTitle": "Skapa ny uppgift",
    "newTaskDescription": "Starta en ny uppgift med en molnagent",
    "selectAgent": "Välj Agent",
    "taskDescription": "Uppgiftsbeskrivning",
    "taskDescriptionPlaceholder": "Beskriv vad du vill att agenten ska göra...",
    "startTask": "Starta uppgift",
    "tasks": "Uppgifter",
    "taskDetail": "Uppgiftsdetalj",
    "noTasks": "Inga uppgifter ännu. Skapa en för att komma igång.",
    "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": "Namnlös uppgift",
    "created": "Skapad",
    "conversation": "Konversation",
    "result": "Resultat",
    "error": "Fel",
    "planReady": "Plan redo för godkännande",
    "approvePlan": "Godkänn plan",
    "rejectPlan": "Avvisa & Avbryt",
    "sendMessagePlaceholder": "Skicka ett meddelande till agenten...",
    "cancel": "Avbryt",
    "delete": "Ta bort",
    "selectTaskPrompt": "Välj en uppgift för att se detaljer",
    "statusPending": "Väntar",
    "statusRunning": "Löpning",
    "statusWaitingApproval": "Väntar på godkännande",
    "statusCompleted": "Avslutad",
    "statusFailed": "Misslyckades",
    "statusCancelled": "Avbruten",
    "repositoryName": "Förvaringsnamn",
    "repositoryUrl": "Repository URL",
    "branch": "Filial"
  },
  "templateNames": {
    "simple-chat": "Enkel chatt",
    "streaming": "Streaming",
    "system-prompt": "Systemprompt",
    "thinking": "Tänker",
    "tool-calling": "Verktygsanrop",
    "multi-turn": "Flervarv",
    "vision": "Vision",
    "schema-coercion": "Schema tvång"
  },
  "templateDescriptions": {
    "simple-chat": "Grundläggande chattmall med systemmeddelande",
    "streaming": "Mall för strömmande svar",
    "system-prompt": "Mall med anpassad systemprompt",
    "thinking": "Mall med resonemang/tänkebudget",
    "tool-calling": "Mall för verktyg/funktionsanrop",
    "multi-turn": "Mall för konversationer med flera svängar",
    "vision": "Multimodal mall med bildinmatning",
    "schema-coercion": "Structured-output / JSON-schematillämpning"
  },
  "templatePayloads": {
    "simpleChat": {
      "system": "Du är en hjälpsam AI-assistent.",
      "userGreeting": "Hej! Hur kan jag hjälpa dig idag?"
    },
    "streaming": {
      "prompt": "Skriv en berättelse om"
    },
    "systemPrompt": {
      "question": "Vad är meningen med livet?",
      "systemInstruction": "Ge ett genomtänkt, filosofiskt svar."
    },
    "thinking": {
      "question": "Förklara kvantberäkning"
    },
    "toolCalling": {
      "cityNameDescription": "Namnet på staden att få väder för",
      "toolDescription": "Få aktuellt väder för en plats",
      "userWeather": "Hur är vädret i Tokyo?"
    },
    "multiTurn": {
      "system": "Du är en hjälpsam assistent.",
      "assistantExample": "Jag hjälper dig gärna med det.",
      "userInitial": "Jag behöver hjälp med",
      "userFollowUp": "Kan du utveckla det?"
    }
  },
  "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": "Resonemang Replay",
    "reasoningCacheDesc": "Bevarar modelltänkande för verktygsanropsflöden med flera varv",
    "reasoningEntries": "Aktiva poster",
    "reasoningReplayRate": "Omspelningshastighet",
    "reasoningReplays": "Totalt antal repriser",
    "reasoningCharsCached": "Cachade tecken",
    "reasoningMisses": "Cache missar",
    "reasoningByProvider": "Av leverantör",
    "reasoningByModel": "Efter modell",
    "reasoningRecentEntries": "Senaste inlägg",
    "reasoningToolCallId": "Verktyg Call ID",
    "reasoningChars": "Karaktärer",
    "reasoningAge": "Ålder",
    "reasoningView": "Visa",
    "reasoningDetail": "Resonerande innehåll",
    "reasoningBehavior": "Beteende",
    "reasoningBehaviorCapture": "Fångar resonemang_innehåll från strömmande svar",
    "reasoningBehaviorReplay": "Återinjicerar vid nästa tur när klienten utelämnar det",
    "reasoningBehaviorFallback": "Minnet först med SQLite reserv för kraschåterställning",
    "reasoningBehaviorTtl": "TTL: 2 timmar | Max antal poster: 2 000 (minne)",
    "reasoningBehaviorModels": "Stöds: DeepSeek, Kimi, Qwen-Thinking, GLM",
    "reasoningClearAll": "Rensa resoneringscache",
    "reasoningClearSuccess": "Rensade {count} resonemangscacheposter",
    "reasoningClearError": "Det gick inte att rensa resonemangscache",
    "reasoningNoData": "Inga resonemangsposter har cachats ännu. Poster visas när tänkande modeller använder verktygsanrop.",
    "cachePerformanceRetry": "Försök igen",
    "cachePerformanceHitRate": "Träfffrekvens",
    "cachePerformanceAvgLatency": "Genomsnittlig latens (ms)",
    "cachePerformanceP95Latency": "p95 latens (ms)",
    "retry": "Försök igen",
    "reasoningAvgChars": "Genomsnittliga tecken",
    "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": "Global",
    "levelProvider": "Leverantör",
    "levelCombo": "Combo",
    "levelKey": "Nyckel",
    "levelDirect": "Direkt (ingen proxy)",
    "titleGlobal": "Global proxykonfiguration",
    "titleLevel": "{level} Proxy — {label}",
    "loading": "Laddar proxykonfiguration...",
    "inheritingFrom": "Ärver från",
    "source": "Källa",
    "savedProxy": "Sparad proxy",
    "custom": "Anpassad",
    "selectSavedProxyPlaceholder": "Välj sparad proxy...",
    "proxyType": "Typ av proxy",
    "host": "Värd",
    "hostPlaceholder": "1.2.3.4 eller proxy.example.com",
    "port": "Port",
    "authOptional": "Autentisering (valfritt)",
    "username": "Användarnamn",
    "usernamePlaceholder": "Användarnamn",
    "password": "Lösenord",
    "passwordPlaceholder": "Lösenord",
    "connected": "Ansluten",
    "ip": "IP:",
    "connectionFailed": "Anslutning misslyckades",
    "testConnection": "Testa anslutningen",
    "clear": "Rensa",
    "cancel": "Avbryt",
    "save": "Spara",
    "errorSelectSavedProxy": "Välj en sparad proxy först.",
    "errorSelectProxyFirst": "Välj en proxy först.",
    "errorProxyNotFound": "Vald proxy hittades inte.",
    "errorClearSavedProxy": "Det gick inte att rensa sparad proxy",
    "errorSaveProxy": "Det gick inte att spara proxykonfigurationen",
    "errorClearProxy": "Det gick inte att rensa proxykonfigurationen",
    "errorSocks5Hidden": "SOCKS5 är konfigurerad men dold eftersom NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=falskt."
  },
  "oauthModal": {
    "title": "Anslut {providerName}",
    "waiting": "Väntar på tillstånd",
    "completeAuthInPopup": "Fullständig auktorisering i popup.",
    "popupClosedHint": "Om popup-fönstret stängdes utan att omdirigera tillbaka (t.ex. Qoder), kommer den här dialogrutan automatiskt att växla till manuell URL-inmatningsläge.",
    "popupBlocked": "Popup blockerad? Ange URL manuellt",
    "deviceCodeVisitUrl": "Besök webbadressen nedan och ange koden:",
    "deviceCodeVerificationUrl": "Verifierings-URL",
    "deviceCodeYourCode": "Din kod",
    "deviceCodeWaiting": "Väntar på auktorisation...",
    "googleOAuthWarning": "Fjärråtkomst + Google OAuth: Standardinloggningsuppgifter accepterar endast omdirigeringar till <code>localhost</code>. Efter auktorisering kommer din webbläsare att försöka öppna <code>localhost</code> — kopiera den fullständiga webbadressen och klistra in den nedan. För helt fjärranvändning utan detta manuella steg, <a>konfigurera dina egna OAuth-uppgifter</a>.",
    "remoteAccessInfo": "Fjärråtkomst: Eftersom du använder OmniRoute på distans, kommer du efter auktorisering att se en felsida (lokalvärd hittades inte). Detta är normalt - kopiera bara hela webbadressen från webbläsarens adressfält och klistra in den nedan.",
    "step1OpenUrl": "Steg 1: Öppna denna URL i din webbläsare",
    "copy": "Kopiera",
    "step2PasteCallback": "Steg 2: Klistra in återuppringningsadressen eller auktoriseringskoden här",
    "step2Hint": "Efter auktorisering, klistra in den fullständiga återuppringningsadressen. För Claude Code och Cline kan du även klistra in autentiseringskoden direkt, t.ex. <code>kod#tillstånd</code>.",
    "connect": "Anslut",
    "cancel": "Avbryt",
    "success": "Anslutningen lyckades!",
    "successMessage": "Ditt {providerName}-konto har kopplats.",
    "done": "Klart",
    "error": "Anslutning misslyckades",
    "tryAgain": "Försök igen"
  },
  "cursorAuthModal": {
    "title": "Anslut Cursor IDE",
    "autoDetecting": "Identifierar tokens automatiskt...",
    "readingFromCursor": "Läser från Cursor IDE eller cursor-agent",
    "tokensAutoDetected": "Tokens har framgångsrikt identifierats automatiskt från Cursor IDE!",
    "cursorNotDetected": "Markör-IDE upptäcktes inte. Vänligen klistra in din token manuellt.",
    "accessToken": "Access Token",
    "required": "*",
    "accessTokenPlaceholder": "Åtkomsttoken kommer att fyllas i automatiskt...",
    "machineId": "Maskin-ID",
    "optional": "(valfritt)",
    "machineIdPlaceholder": "Maskin-ID kommer att fyllas i automatiskt...",
    "importing": "Importerar...",
    "importToken": "Importera token",
    "cancel": "Avbryt",
    "errorAutoDetect": "Det går inte att automatiskt upptäcka tokens",
    "errorAutoDetectFailed": "Automatisk identifiering av tokens misslyckades",
    "errorEnterToken": "Vänligen ange åtkomsttoken",
    "errorImportFailed": "Importen misslyckades"
  },
  "pricingModal": {
    "title": "Priskonfiguration",
    "loading": "Laddar prisinformation...",
    "pricingRatesFormat": "Priser Format",
    "ratesDescription": "Alla priser är i <strong>dollars per million tokens</strong> ($/1M tokens). Exempel: Inmatningshastighet på 2,50 betyder 2,50 USD per 1 000 000 inmatade tokens.",
    "model": "Modell",
    "input": "Ingång",
    "output": "Utgång",
    "cached": "Cachad",
    "reasoning": "Resonemang",
    "cacheCreation": "Skapande av cache",
    "noPricingData": "Inga prisuppgifter tillgängliga",
    "resetToDefaults": "Återställ till standardinställningar",
    "cancel": "Avbryt",
    "saving": "Sparar...",
    "saveChanges": "Spara ändringar",
    "resetConfirm": "Återställa alla priser till standardvärden? Detta kan inte ångras.",
    "errorSaveFailed": "Det gick inte att spara pris",
    "errorResetFailed": "Det gick inte att återställa prissättningen"
  },
  "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": "Typ",
    "labelHost": "Värd",
    "labelPort": "Port",
    "labelUsername": "Användarnamn",
    "labelPassword": "Lösenord",
    "labelRegion": "Region",
    "labelStatus": "Status",
    "labelNotes": "Anteckningar",
    "usernamePlaceholderEdit": "Lämna tomt för att behålla nuvarande användarnamn",
    "passwordPlaceholderEdit": "Lämna tomt för att behålla nuvarande lösenord",
    "statusActive": "Aktiv",
    "statusInactive": "Inaktiv",
    "cancel": "Avbryt",
    "save": "Spara",
    "bulkModalTitle": "Bulk proxytilldelning",
    "bulkLabelScope": "Omfattning",
    "bulkLabelProxy": "Proxy",
    "bulkClearAssignment": "(Rensa uppdrag)",
    "bulkLabelScopeIds": "Omfattnings-id:n (komma eller nyradseparerade)",
    "bulkScopeIdsPlaceholder": "leverantör-openai, leverantör-antropisk",
    "bulkApply": "Ansök",
    "labelScope": "__MISSING__:Scope",
    "labelProxy": "__MISSING__:Proxy",
    "scopeGlobal": "__MISSING__:global",
    "scopeProvider": "__MISSING__:provider",
    "scopeAccount": "__MISSING__:account",
    "scopeCombo": "__MISSING__:combo",
    "bulkImportErrorMissingName": "Saknar NAME",
    "bulkImportErrorMissingHost": "Saknar HOST",
    "bulkImportErrorInvalidPort": "Ogiltig PORT (måste vara 1-65535)",
    "bulkImportErrorInvalidType": "Ogiltig TYPE (använd http, https eller socks5)",
    "bulkImportErrorInvalidStatus": "Ogiltig STATUS (använd aktiv eller inaktiv)",
    "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} % framgång",
    "avgLatency": "{latency} ms i genomsnitt",
    "assignmentsCount": "{count} uppdrag",
    "noData": "No Data",
    "testSuccess": "✓ {ip}",
    "testLatency": "{latency}ms",
    "testFailure": "✗ {error}",
    "bulkImport": "Bulkimport",
    "bulkImportTitle": "Bulkimportfullmakter",
    "bulkImportDescription": "Klistra in proxyprofiler med ett röravgränsat format. En proxy per rad. Befintliga proxyservrar (samma värd + port) kommer att uppdateras.",
    "bulkImportParse": "Analysera",
    "bulkImportImport": "Importera {count} proxyservrar",
    "bulkImportImporting": "Importerar...",
    "bulkImportParsed": "{count} proxyservrar analyserade",
    "bulkImportSkipped": "{count} rader hoppade över",
    "bulkImportParseErrors": "{count} fel",
    "bulkImportNoValidEntries": "Inga giltiga poster hittades. Kontrollera formatet och försök igen.",
    "bulkImportSuccess": "Importen slutförd: {created} skapad, {updated} uppdaterad, {failed} misslyckades",
    "bulkImportErrorLine": "Rad {line}: {reason}",
    "bulkImportMaxExceeded": "Max 100 fullmakter per import",
    "bulkImportPreview": "Förhandsgranska",
    "clearAssignment": "(tydlig uppgift)",
    "bulkProxyAssignment": "Bulk proxytilldelning"
  },
  "playground": {
    "title": "Title",
    "description": "Description",
    "endpoint": "Endpoint",
    "provider": "Provider",
    "model": "Model",
    "accountKey": "Account Key",
    "autoAccounts": "Auto ({count} konton)",
    "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": "Genererade {count} bilder",
    "generatedImage": "Genererad bild {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": "Konversationschatt",
    "clearChat": "Rensa chatten",
    "typeMessagePlaceholder": "Skriv ett meddelande... (Skift+Enter för ny rad)",
    "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": "Kompression",
      "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 — UI-förhandsgranskning.",
    "betaConfigSavedPrefix": "Konfigurationen sparas i",
    "betaConfigSavedSuffix": "(finns ännu inte kvar på servern). Begränsning per begäran är ännu inte kopplad till proxypipeline. Den här skärmen låter dig designa och visualisera kvotfördelningen; verklig verkställighet kommer att landa i en framtida iteration med DB persistens och uppströms samtalsavlyssning.",
    "policyLabel": "Policy:",
    "resetIn": "återställ in",
    "quotaTotal": "totalt"
  },
  "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"
  }
}
