{
  "common": {
    "save": "Opslaan",
    "cancel": "Annuleer",
    "delete": "Verwijderen",
    "loading": "Laden...",
    "error": "Er is een fout opgetreden",
    "success": "Succes",
    "confirm": "Weet je het zeker?",
    "refresh": "Vernieuwen",
    "close": "Sluiten",
    "add": "Toevoegen",
    "edit": "Bewerken",
    "search": "Zoeken",
    "back": "Terug",
    "next": "Volgende",
    "submit": "Verzenden",
    "reset": "Opnieuw instellen",
    "copy": "Kopieer",
    "copied": "Gekopieerd!",
    "enabled": "Ingeschakeld",
    "disabled": "Uitgeschakeld",
    "active": "Actief",
    "inactive": "Inactief",
    "noData": "Geen gegevens beschikbaar",
    "nothingHere": "Nothing here yet",
    "configure": "Configureer",
    "manage": "Beheer",
    "name": "Naam",
    "actions": "Acties",
    "status": "Status",
    "type": "Typ",
    "model": "Model",
    "models": "modellen",
    "provider": "Aanbieder",
    "account": "Rekening",
    "time": "Tijd",
    "details": "Details",
    "created": "Gemaakt",
    "lastUsed": "Last Refreshed",
    "loadMore": "Laad meer",
    "noResults": "Geen resultaten gevonden",
    "reloadPage": "Pagina opnieuw laden",
    "connected": "Verbonden",
    "disconnected": "Verbinding verbroken",
    "notConfigured": "Niet geconfigureerd",
    "testConnection": "Verbinding testen",
    "enable": "Inschakelen",
    "disable": "Uitschakelen",
    "columns": "Kolommen",
    "newest": "Nieuwste",
    "oldest": "Oudste",
    "all": "Allemaal",
    "none": "Geen",
    "yes": "Ja",
    "no": "Nee",
    "on": "__MISSING__:ON",
    "off": "__MISSING__:OFF",
    "warning": "Waarschuwing",
    "note": "Let op",
    "free": "Gratis",
    "skipToContent": "Ga naar de inhoud",
    "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
    "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
    "accept": "Accepteer",
    "accountId": "Account-ID",
    "alias": "Alias",
    "apiKeyId": "API-sleutel-ID",
    "apiKeyName": "API-sleutelnaam",
    "apiKeySecret": "API-sleutelgeheim",
    "authorization": "Autorisatie",
    "content-type": "Inhoudstype",
    "content-length": "Inhoud lengte",
    "cookie": "Koekje",
    "file": "Bestand",
    "host": "Gastheer",
    "id": "Identiteitskaart",
    "import": "Importeren",
    "limit": "Limiet",
    "offset": "Offset",
    "open": "Openen",
    "origin": "Oorsprong",
    "promptTokens": "Prompt-tokens",
    "completionTokens": "Voltooiingstokens",
    "totalTokens": "Totaal tokens",
    "rawModel": "Ruw model",
    "scope": "Reikwijdte",
    "skill": "Vaardigheid",
    "sortBy": "Sorteer op",
    "sortOrder": "Sorteervolgorde",
    "tab": "Tab",
    "text": "Tekst",
    "textarea": "Tekstgebied",
    "tool": "Gereedschap",
    "toolId": "Gereedschaps-ID",
    "web": "Web",
    "whereUsed": "Waar gebruikt",
    "whitelist": "Witte lijst",
    "blacklist": "Zwarte lijst",
    "resolve": "Oplossen",
    "force": "Kracht",
    "base64url": "Base64-URL",
    "hex": "Hex",
    "range": "Bereik",
    "component": "Onderdeel",
    "redirect_uri": "Omleidings-URI",
    "idempotency-key": "Idempotentie sleutel",
    "error_description": "Foutbeschrijving",
    "code": "Codeer",
    "compatible": "Compatibel",
    "chat-completions": "Chat-voltooiingen",
    "oauth": "OAuth",
    "auth_token": "Authenticatietoken",
    "crypto": "Crypto",
    "hours": "Uur",
    "selfsigned": "Zelf ondertekend",
    "proxy_id": "Proxy-ID",
    "proxyId": "Proxy-ID",
    "connectionId": "Verbindings-ID",
    "resolveConnectionId": "Verbindings-ID oplossen",
    "resolve_connection_id": "Verbindings-ID oplossen",
    "scope_id": "Bereik-ID",
    "scopeId": "Bereik-ID",
    "jwtSecret": "JWT-geheim",
    "keytar": "Keytar",
    "better-sqlite3": "beter-sqlite3",
    "undici": "undici",
    "builder-id": "Bouwer-ID",
    "musicDesc": "Muziekbeschrijving",
    "musicGeneration": "Muziek generatie",
    "idc": "IDC",
    "cloud-status-changed": "Cloudstatus gewijzigd",
    "where_used": "Waar gebruikt",
    "windowMs": "Venster (ms)",
    "social-github": "GitHub",
    "social-google": "Googlen",
    "TOOL_ALLOWLIST": "Tool Toelatingslijst",
    "TOOL_DENYLIST": "Tool-weigerlijst",
    "Failed to save pricing": "Kan de prijzen niet opslaan",
    "Failed to reset pricing": "Kan de prijzen niet opnieuw instellen",
    "apikey": "API-sleutel",
    "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": "Aanbieders van cloudagenten",
    "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": "Alleen gratis",
    "addFirstProvider": "Voeg uw eerste provider toe",
    "addFirstProviderDesc": "Sluit een AI-provider aan om verzoeken via OmniRoute te routeren. U kunt gratis providers, API-sleutels of OAuth-accounts gebruiken.",
    "learnMore": "Meer informatie",
    "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 niveau-aanbieders",
    "freeTierLabel": "Gratis niveau beschikbaar",
    "freeTierProvidersDesc": "Providers met gratis niveaus: sommige vereisen een API-sleutelaanmelding, andere hebben helemaal geen inloggegevens nodig.",
    "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-beheerder",
    "monitorAnomaliesAndHealth": "Bewaak afwijkingen en systeemgezondheid",
    "flaggedAnomalies": "Gemarkeerde afwijkingen",
    "noAnomaliesDetected": "Geen afwijkingen gedetecteerd",
    "apiKey": "API-sleutel",
    "xpLastHour": "XP (1 uur)",
    "zScore": "Z-score",
    "tokensCommunityServers": "Gemeenschapsservers",
    "tokensServerNamePlaceholder": "Servernaam",
    "tokensApiKeyPlaceholder": "API-sleutel",
    "tokensTokenBalance": "Token-saldo",
    "tokensSendTokens": "Stuur tokens",
    "tokensRecipientApiKeyId": "Ontvanger API-sleutel-ID",
    "tokensRecipientApiKeyIdPlaceholder": "Voer de API-sleutel-ID van de ontvanger in",
    "tokensReasonOptional": "Reden (optioneel)",
    "tokensReasonPlaceholder": "bijv. bonus, beloning",
    "tokensTransactionHistory": "Transactiegeschiedenis",
    "tokensNoTransactionsYet": "Nog geen transacties",
    "tokensInviteCodes": "Uitnodigingscodes",
    "tokensMaxUses": "Maximaal gebruik",
    "tokensRedeemCode": "Code inwisselen",
    "tokensRedeemCodePlaceholder": "Voer de uitnodigingscode in",
    "tokensYourActiveInvites": "Uw actieve uitnodigingen",
    "tierCoverageTitle": "Niveau-dekking",
    "tierCoverageSubtitle": "Providers geconfigureerd per fallback-laag",
    "batchDetailCopyId": "Kopieer identiteitsbewijs",
    "batchDetailClose": "Sluiten",
    "batchDetailEndpoint": "Eindpunt",
    "batchDetailModel": "Model",
    "batchDetailWindow": "Venster",
    "batchDetailCreated": "Gemaakt",
    "providerTopologyEmpty": "Er zijn nog geen providers aangesloten",
    "badgeToastUnlocked": "Badge ontgrendeld!",
    "batchListSearchPlaceholder": "Zoeken op ID, eindpunt, model...",
    "batchListDeleteAllCompletedTitle": "Verwijder alle voltooide batches",
    "batchListBatchesTable": "Batches",
    "changelogViewerLoading": "Wijzigingslogboek laden vanuit GitHub...",
    "profileLoading": "Profiel laden...",
    "profileHowToEarn": "Hoe te verdienen",
    "bootstrapBannerDismiss": "Negeren",
    "batchListDeleteBatchTitle": "Verwijder batch en de bijbehorende bestanden",
    "leaderboardYourRank": "Jouw rang",
    "leaderboardLoading": "Leaderboard laden...",
    "batchFileDetailCopyId": "Kopieer identiteitsbewijs",
    "batchFileDetailClose": "Sluiten",
    "batchFileDetailFailedToLoad": "Kan de bestandsinhoud niet laden",
    "batchFilesListSearchPlaceholder": "Zoeken op ID of bestandsnaam…",
    "batchFilesListFilesTable": "Bestanden",
    "batchPageLoadingMore": "Meer laden…",
    "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": "Thuis",
    "dashboard": "Dashboard",
    "providers": "Aanbieders",
    "combos": "Combo's",
    "usage": "Gebruik",
    "analytics": "Analyses",
    "costs": "Kosten",
    "health": "Gezondheid",
    "proxy": "Proxy",
    "limits": "Limieten en quota's",
    "cliTools": "CLI-hulpmiddelen",
    "media": "Media",
    "settings": "Instellingen",
    "translator": "Vertaler",
    "playground": "Speeltuin",
    "searchTools": "Search Tools",
    "agents": "Agenten",
    "cloudAgents": "Cloudagenten",
    "memory": "Memory",
    "skills": "Skills",
    "omniSkills": "OmniSkills",
    "agentSkills": "Agentvaardigheden",
    "docs": "Documenten",
    "issues": "Problemen",
    "endpoints": "Eindpunten",
    "endpointsSubtitle": "Uw AI-verbindings-URL's",
    "apiManager": "API-beheerder",
    "apiManagerSubtitle": "Beheer API-sleutels en toegang",
    "embeddedServices": "__MISSING__:Embedded Services",
    "embeddedServicesSubtitle": "__MISSING__:Manage local proxy services",
    "logs": "Logboeken",
    "webhooks": "Webhaken",
    "webhooksSubtitle": "Blijf op de hoogte van evenementen",
    "combosSubtitle": "Groepsproviders voor failover",
    "batchSubtitle": "Meerdere aanvragen verwerken",
    "contextCavemanSubtitle": "Snelle compressie",
    "contextRtkSubtitle": "Uitgangsfiltering",
    "auditLog": "Auditlogboek",
    "shutdown": "Afsluiten",
    "restart": "Opnieuw opstarten",
    "shutdownConfirm": "OmniRoute afsluiten?",
    "restartConfirm": "OmniRoute opnieuw starten?",
    "version": "v{version}",
    "debug": "Foutopsporing",
    "system": "Systeem",
    "help": "Hulp",
    "primarySection": "Main",
    "cliSection": "CLI",
    "debugSection": "Debug",
    "systemSection": "System",
    "helpSection": "Help",
    "serverDisconnected": "Serververbinding verbroken",
    "serverDisconnectedMsg": "De proxyserver is gestopt of wordt opnieuw opgestart.",
    "expandSidebar": "Vouw zijbalk uit",
    "collapseSidebar": "Zijbalk samenvouwen",
    "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": "Gereedschap",
    "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-audit",
    "settingsGeneral": "General",
    "settingsAppearance": "Appearance",
    "settingsAi": "AI Settings",
    "settingsSecurity": "Security",
    "settingsFeatureFlags": "Functievlaggen",
    "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": "Schakel systeemmogelijkheden in",
    "settingsSidebar": "Sidebar",
    "settingsSidebarSubtitle": "Customize sidebar layout",
    "settingsAuthzSubtitle": "__MISSING__:Route inventory and bypass policy",
    "docsSubtitle": "Documentation",
    "issuesSubtitle": "Report a bug",
    "changelogSubtitle": "Release notes"
  },
  "webhooks": {
    "title": "Webhaken",
    "description": "Configureer HTTP-callbacks voor systeemgebeurtenissen.",
    "configuredWebhooks": "Geconfigureerde webhooks",
    "configuredWebhooksDesc": "Beheer bezorgingseindpunten, geabonneerde gebeurtenissen, status en testverzendingen.",
    "addWebhook": "Webhook toevoegen",
    "editWebhook": "Webhook bewerken",
    "name": "Naam",
    "namePlaceholder": "Controle van de productie",
    "unnamedWebhook": "Naamloze webhook",
    "url": "Eindpunt-URL",
    "events": "Evenementen",
    "allEvents": "Alle evenementen",
    "secret": "Geheim",
    "secretPlaceholder": "Laat dit leeg om automatisch een geheim te genereren",
    "secretEditPlaceholder": "Laat dit leeg om het huidige geheim te behouden",
    "status": "Status",
    "active": "Actief",
    "inactive": "Inactief",
    "errored": "Fout",
    "total": "Totaal",
    "lastTriggered": "Laatst geactiveerd",
    "actions": "Acties",
    "enabled": "Ingeschakeld",
    "enabledDesc": "Uitgeschakelde webhooks blijven opgeslagen, maar ontvangen geen leveringen.",
    "refresh": "Vernieuwen",
    "loading": "Webhooks laden...",
    "never": "Nooit",
    "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
    "testWebhook": "Test verzenden",
    "testSuccess": "Testwebhook succesvol verzonden.",
    "testFailed": "Testwebhook mislukt.",
    "saveSuccess": "Webhook succesvol opgeslagen.",
    "saveFailed": "Kan webhook niet opslaan.",
    "loadFailed": "Kan webhooks niet laden.",
    "delete": "Verwijderen",
    "deleteConfirm": "Weet u zeker dat u deze webhook wilt verwijderen?",
    "deleteSuccess": "Webhook is succesvol verwijderd.",
    "deleteFailed": "Kan webhook niet verwijderen.",
    "edit": "Bewerken",
    "enable": "Inschakelen",
    "disable": "Uitschakelen",
    "noWebhooks": "Er zijn nog geen webhooks geconfigureerd.",
    "signatureTitle": "Webhook-handtekeningen",
    "signatureDescription": "Elke levering bevat een X-Webhook-Signature-header ondertekend met HMAC-SHA256 met behulp van het webhook-geheim. Controleer de handtekening voordat u de payload vertrouwt.",
    "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": "Controle",
    "auditDescription": "Beoordeel nalevingsgebeurtenissen en MCP-toolaanroepen vanuit één operationeel overzicht.",
    "complianceTab": "Naleving",
    "mcpTab": "MCP-audit",
    "title": "Nalevingsaudit",
    "description": "Beleids-, toegang-, provider- en beveiligingsgebeurtenissen vastgelegd in het compliance-auditlogboek.",
    "eventType": "Evenementtype",
    "eventTypePlaceholder": "Filter op actie of gebeurtenistype",
    "severity": "Ernst",
    "allSeverities": "Alle ernst",
    "info": "Info",
    "warning": "Waarschuwing",
    "critical": "Kritisch",
    "sourceIp": "Bron-IP",
    "userOrKey": "Gebruiker / Sleutel",
    "action": "Actie",
    "result": "Resultaat",
    "details": "Details",
    "timestamp": "Tijdstempel",
    "from": "Van",
    "to": "Aan",
    "refresh": "Vernieuwen",
    "export": "Exporteren",
    "clearFilters": "Filters wissen",
    "loading": "Auditgebeurtenissen laden...",
    "showing": "Toont {count} van {total} evenementen",
    "policyViolation": "Beleidsschending",
    "accessDenied": "Toegang geweigerd",
    "injectionBlocked": "Injectie geblokkeerd",
    "noEvents": "Er zijn geen nalevingsgebeurtenissen geregistreerd.",
    "failedFetch": "Kan het compliance-auditlogboek niet ophalen.",
    "viewDetails": "Bekijk details",
    "closeDetails": "Details sluiten",
    "notAvailable": "—",
    "system": "systeem",
    "previous": "Vorige",
    "next": "Volgende",
    "mcpAudit": "MCP-audit",
    "mcpAuditDesc": "Auditinvoer voor tooloproepen opgenomen door de MCP-server.",
    "failedFetchMcpAudit": "Kan het MCP-auditlogboek niet ophalen.",
    "tool": "Gereedschap",
    "toolPlaceholder": "Filter op gereedschapsnaam",
    "duration": "Duur",
    "apiKey": "API-sleutel",
    "output": "Uitvoer",
    "allResults": "Alle resultaten",
    "success": "Succes",
    "failure": "Mislukking",
    "noMcpEvents": "Er zijn geen MCP-auditgebeurtenissen geregistreerd.",
    "a2aAudit": "A2A-audit",
    "a2aAuditDesc": "Audittrail voor taakuitvoering geregistreerd door de A2A-server.",
    "a2aShowingTasks": "Toont {count} van {total} taken",
    "a2aSkill": "Vaardigheid",
    "a2aSkillPlaceholder": "Filter op vaardigheidsnaam",
    "a2aState": "Staat",
    "a2aAllStates": "Alle staten",
    "a2aStateSubmitted": "Ingezonden",
    "a2aStateWorking": "Werken",
    "a2aStateCompleted": "Voltooid",
    "a2aStateFailed": "Mislukt",
    "a2aStateCancelled": "Geannuleerd",
    "a2aTaskId": "Taak-ID",
    "a2aEvents": "Evenementen",
    "a2aArtifacts": "Artefacten",
    "a2aNoTasks": "Geen A2A-taken geregistreerd.",
    "a2aLoadingTasks": "A2A-taken laden..."
  },
  "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": "Actief thema"
  },
  "header": {
    "logout": "Uitloggen",
    "language": "Taal",
    "providers": "Aanbieders",
    "providerDescription": "Beheer uw AI-providerverbindingen",
    "combos": "Combo's",
    "comboDescription": "Modelcombo's met fallback",
    "usage": "Gebruik en analyse",
    "usageDescription": "Bewaak uw API-gebruik, tokenverbruik en verzoeklogboeken",
    "analytics": "Analyses",
    "analyticsDescription": "Grafieken, trends en evaluatie-inzichten",
    "cliTools": "CLI-hulpmiddelen",
    "cliToolsDescription": "Configureer CLI-tools",
    "home": "Thuis",
    "homeDescription": "Welkom bij 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": "Instellingen",
    "settingsDescription": "Beheer uw voorkeuren",
    "openaiCompatible": "OpenAI-compatibel",
    "anthropicCompatible": "Antropisch compatibel",
    "media": "Media",
    "mediaDescription": "Genereer afbeeldingen, video's en muziek",
    "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-audit",
    "auditA2aDescription": "A2A-audittraject voor taakuitvoering, statusovergangen en records voor het aanroepen van vaardigheden",
    "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": "Functievlaggen",
    "featureFlagsDescription": "Besturingssysteemmogelijkheden en experimentele functies",
    "featureFlagsActive": "{count} actief",
    "featureFlagsInactive": "{count} inactief",
    "featureFlagsOverrides": "{count} DB-overschrijvingen",
    "featureFlagsSearch": "Vlaggen zoeken...",
    "featureFlagsCategoryAll": "Allemaal",
    "featureFlagsCategorySecurity": "Beveiliging",
    "featureFlagsCategoryNetwork": "Netwerk",
    "featureFlagsCategoryPolicies": "Beleid",
    "featureFlagsCategoryRuntime": "Looptijd",
    "featureFlagsCategoryCli": "CLI",
    "featureFlagsCategoryHealth": "Gezondheid",
    "featureFlagsSourceDb": "DB",
    "featureFlagsSourceEnv": "ENV",
    "featureFlagsSourceDefault": "DEF",
    "featureFlagsReset": "Opnieuw instellen",
    "featureFlagsResetAll": "Reset alle overschrijvingen",
    "featureFlagsResetAllConfirm": "Weet u zeker dat u alle functievlagoverschrijvingen wilt resetten? Hierdoor worden alle vlaggen teruggezet naar hun ENV- of standaardwaarden.",
    "featureFlagsRestartRequired": "Opnieuw opstarten vereist om te solliciteren",
    "featureFlagsNoResults": "Er zijn geen vlaggen die overeenkomen met uw zoekopdracht",
    "featureFlagsSaved": "Vlag bijgewerkt",
    "featureFlagsError": "Kan de vlag niet updaten",
    "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": "Snel beginnen",
    "quickStartDesc": "In 4 stappen aan de slag. Verbind providers, routemodellen, monitor alles.",
    "fullDocs": "Volledige documenten",
    "step1Title": "1. Maak een API-sleutel",
    "step1Desc": "Ga naar <endpoint>Eindpunt</endpoint> -> Geregistreerde sleutels. Genereer één sleutel per omgeving.",
    "step2Title": "2. Verbind aanbieders",
    "step2Desc": "Voeg accounts toe in <providers>Providers</providers>. Ondersteunt OAuth, API Key en gratis lagen.",
    "step3Title": "3. Wijs uw klant aan",
    "step3Desc": "Stel de basis-URL in op {url} in uw IDE- of API-client.",
    "step4Title": "4. Monitoren en optimaliseren",
    "step4Desc": "Houd tokens, kosten en fouten bij in <logs>Aanvraaglogboeken</logs> en <analytics>Analytics</analytics>.",
    "providersOverview": "Overzicht aanbieders",
    "configuredOf": "{configured} geconfigureerd van {total} beschikbare providers",
    "noModelsAvailable": "Er zijn geen modellen beschikbaar voor deze aanbieder.",
    "noProvidersConfigured": "Nog geen providers geconfigureerd",
    "addProvider": "Voeg een aanbieder toe",
    "configureFirst": "Configureer eerst een verbinding in {providers}",
    "configureProvider": "Configureer aanbieder",
    "modelAvailable": "{count} model beschikbaar",
    "modelsAvailable": "{count} modellen beschikbaar",
    "connectionsActive": "{count} verbinding actief",
    "connectionsActivePlural": "{count} verbindingen actief",
    "copyModelName": "Kopieer de modelnaam",
    "documentation": "Documentatie",
    "healthMonitor": "Gezondheidsmonitor",
    "reportIssue": "Probleem melden",
    "activeError": "{active} actief · {errors} fout",
    "oauthLabel": "OAuth",
    "apiKeyLabel": "API-sleutel",
    "requestsShort": "{count} vereisten",
    "providerModelsTitle": "{provider} - Modellen",
    "copiedModel": "Gekopieerd: {model}",
    "aliasLabel": "alias",
    "updateNow": "Nu bijwerken",
    "updating": "Updaten...",
    "updateAvailableDesc": "Er is een nieuwe versie beschikbaar. Klik om bij te werken.",
    "updateStarted": "Update gestart...",
    "reloadingPageAutomatically": "Pagina automatisch herladen...",
    "providerTopology": "Provider-topologie"
  },
  "analytics": {
    "title": "Analyses",
    "usageAnalyticsTitle": "__MISSING__:Usage Analytics",
    "diversityScoreTitle": "Diversiteit van aanbieders",
    "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": "Houd toezicht op uw API-gebruikspatronen, tokenverbruik, kosten en activiteitstrends voor alle providers en modellen.",
    "evalsDescription": "Voer evaluatiesuites uit om uw LLM-eindpunten te testen en te valideren. Vergelijk de modelkwaliteit, detecteer regressies en benchmark de latentie.",
    "overview": "Overzicht",
    "evals": "Evals",
    "utilization": "Benutting",
    "utilizationDescription": "Trends in quotagebruik van de provider en bijhouden van snelheidslimieten",
    "modelStatus": "Modelstatus",
    "modelStatusCooldown": "Afkoelen",
    "modelStatusUnavailable": "Niet beschikbaar",
    "modelStatusError": "Fout",
    "comboHealth": "Combo-gezondheid",
    "comboHealthDescription": "Quota op combo-niveau, gebruiksdistributie en prestatiegegevens",
    "compressionAnalyticsTitle": "Compression Analytics",
    "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
    "autoRoutingTotalAutoRequests": "Totaal aantal automatische verzoeken",
    "autoRoutingAvgSelectionScore": "Gemiddelde selectiescore",
    "autoRoutingExplorationRate": "Verkenningssnelheid",
    "autoRoutingLkgpHitRate": "LKGP-hitpercentage",
    "autoRoutingRequestsByVariant": "Verzoeken per variant",
    "autoRoutingTopRoutedProviders": "Toprouteerde providers",
    "comboHealthWorstQuotaLeft": "Slechtste quotum over",
    "comboHealthUsageSkew": "Gebruiksafwijking",
    "comboHealthSuccessRate": "Succespercentage",
    "comboHealthQuotaHealth": "Quotumgezondheid",
    "comboHealthRequests": "Verzoeken",
    "comboHealthTokens": "Tokens",
    "comboHealthAvgLatency": "Gem. latentie",
    "comboHealthTotalRequests": "Totaal aantal verzoeken",
    "comboHealthExecutionTargets": "Uitvoeringsdoelen",
    "comboHealthSuccess": "Succes",
    "comboHealthLatency": "Latentie",
    "comboHealthQuota": "Quotum",
    "comboHealthTitle": "Combinatie gezondheid",
    "comboHealthUnableToLoad": "Kan combo-gezondheid niet laden",
    "comboHealthGettingStarted": "Aan de slag",
    "compressionAnalyticsTotalRequests": "Totaal aantal verzoeken",
    "compressionAnalyticsTokensSaved": "Tokens opgeslagen",
    "compressionAnalyticsAvgSavings": "Gem. besparingen",
    "compressionAnalyticsAvgDuration": "Gem. duur",
    "compressionAnalyticsReceipts": "Ontvangsten",
    "compressionAnalyticsFallbacks": "Terugval",
    "compressionAnalyticsPromptTokens": "Prompt tokens",
    "compressionAnalyticsCompletionTokens": "Voltooiingstokens",
    "compressionAnalyticsTotalTokens": "Totaal tokens",
    "compressionAnalyticsCacheTokens": "Cachetokens",
    "compressionAnalyticsNoDataYet": "Nog geen compressiegegevens",
    "searchAnalyticsTotalSearches": "Totaal aantal zoekopdrachten",
    "searchAnalyticsCacheHitRate": "Cachehitpercentage",
    "searchAnalyticsTotalCost": "Totale kosten",
    "searchAnalyticsAvgResponse": "Gem. reactie",
    "searchAnalyticsNoSearchesYet": "Nog geen zoekopdrachten",
    "providerUtilizationTitle": "Gebruik van de provider",
    "providerUtilizationFailedToLoad": "Kan gebruiksgegevens niet laden",
    "providerUtilizationNoData": "Geen gebruiksgegevens beschikbaar",
    "providerUtilizationGettingStarted": "Aan de slag",
    "providerUtilizationLatestSnapshot": "Laatste momentopname van het quotum",
    "providerUtilizationRemainingCapacity": "Resterende capaciteit"
  },
  "apiManager": {
    "title": "API-sleutels",
    "createKey": "Maak een API-sleutel",
    "key": "Sleutel",
    "revokeKey": "Sleutel intrekken",
    "revokeConfirm": "Weet u zeker dat u deze API-sleutel wilt intrekken?",
    "noKeys": "Nog geen API-sleutels",
    "noKeysDesc": "Maak uw eerste API-sleutel om verzoeken aan uw eindpunt te verifiëren",
    "keyLabel": "Sleutellabel",
    "permissions": "Machtigingen",
    "expiresAt": "Verloopt",
    "never": "Nooit",
    "revoke": "Intrekken",
    "showKey": "Toon sleutel",
    "hideKey": "Sleutel verbergen",
    "copyKey": "Kopieer API-sleutel",
    "allModels": "Alle modellen",
    "selectedModels": "Geselecteerde modellen",
    "readOnly": "Alleen lezen",
    "fullAccess": "Volledige toegang",
    "keyManagement": "API-sleutelbeheer",
    "keyManagementDesc": "Maak en beheer API-sleutels voor het verifiëren van verzoeken aan uw eindpunt",
    "totalKeys": "Totaal aantal sleutels",
    "restricted": "Beperkt",
    "totalRequests": "Totaal aantal verzoeken",
    "modelsAvailable": "Modellen beschikbaar",
    "registeredKeys": "Geregistreerde sleutels",
    "keysRegistered": "{count} sleutels geregistreerd",
    "keyRegistered": "{count} sleutel geregistreerd",
    "keysSecurityNote": "Elke sleutel isoleert het volgen van het gebruik en kan onafhankelijk worden ingetrokken. Om veiligheidsredenen worden sleutels na het aanmaken gemaskeerd.",
    "createFirstKey": "Maak uw eerste sleutel",
    "name": "Naam",
    "usage": "Gebruik",
    "created": "Gemaakt",
    "actions": "Acties",
    "reqs": "verzoek",
    "neverUsed": "Nooit gebruikt",
    "deleteConfirm": "Deze API-sleutel verwijderen?",
    "usageTips": "Gebruikstips",
    "tipAuth": "Gebruik API-sleutels in de Authorization-header als Bearer YOUR_KEY",
    "tipSecure": "Sleutels worden tijdens het aanmaken slechts één keer getoond. Bewaar ze veilig",
    "tipSeparate": "Maak afzonderlijke sleutels voor verschillende klanten of omgevingen",
    "tipRestrict": "Beperk sleutels tot specifieke modellen voor betere beveiliging en kostenbeheersing",
    "keyName": "Sleutelnaam",
    "keyNamePlaceholder": "bijvoorbeeld productiesleutel, ontwikkelingssleutel",
    "keyNameDesc": "Kies een beschrijvende naam om het doel van deze sleutel te identificeren",
    "managementAccessDesc": "Sta deze API-sleutel toe de OmniRoute-configuratie te beheren.",
    "selfServiceVisibility": "Selfservice-zichtbaarheid",
    "selfServiceVisibilityDesc": "Bepaalt wat deze sleutel kan zien over het eigen gebruik en het gedeelde upstreamquotum.",
    "ownUsageVisibility": "Eigen kosten en tokengebruik",
    "ownUsageVisibilityDesc": "Sta deze sleutel toe het eigen statusendpoint aan te roepen voor eigen USD-gebruik, budgetpercentage en token-totalen.",
    "sharedAccountQuotaVisibility": "Gedeeld accountquotum",
    "sharedAccountQuotaVisibilityDesc": "Sta deze sleutel toe het gedeelde upstream-accountquotum te zien wanneer één expliciete verbinding is geconfigureerd.",
    "keyCreated": "API-sleutel gemaakt",
    "keyCreatedSuccess": "Sleutel succesvol aangemaakt!",
    "keyCreatedNote": "Kopieer en bewaar deze sleutel nu. Deze wordt niet meer weergegeven.",
    "done": "Klaar",
    "savePermissions": "Bewaar machtigingen",
    "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": "Alles toestaan",
    "restrict": "Beperken",
    "allowAllInfo": "Met deze sleutel heeft u toegang tot alle beschikbare modellen.",
    "restrictInfo": "Deze sleutel heeft toegang tot {selected} van {total} modellen.",
    "selected": "{count} geselecteerd",
    "all": "Allemaal",
    "clear": "Duidelijk",
    "searchModels": "Zoek modellen op naam of aanbieder...",
    "noModelsFound": "Geen modellen gevonden",
    "keyNameRequired": "Sleutelnaam is vereist",
    "keyNameTooLong": "De sleutelnaam mag maximaal {max} tekens bevatten",
    "keyNameInvalid": "De sleutelnaam mag alleen letters, cijfers, spaties, koppeltekens en onderstrepingstekens bevatten",
    "invalidKeyName": "Ongeldige sleutelnaam",
    "failedCreateKey": "Kan sleutel niet maken",
    "failedCreateKeyRetry": "Kan sleutel niet maken. Probeer het opnieuw.",
    "invalidKeyId": "Ongeldige sleutel-ID",
    "failedDeleteKey": "Kan de sleutel niet verwijderen",
    "failedDeleteKeyRetry": "Kan de sleutel niet verwijderen. Probeer het opnieuw.",
    "invalidModelsSelection": "Ongeldige modellenselectie",
    "cannotSelectMoreThanModels": "Kan niet meer dan {max} modellen selecteren",
    "failedUpdatePermissions": "Kan rechten niet updaten",
    "failedUpdatePermissionsRetry": "Kan rechten niet updaten. Probeer het opnieuw.",
    "unknownProvider": "onbekend",
    "copyMaskedKey": "Kopieer gemaskeerde sleutel",
    "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "lastUsedOn": "Laatste: {date}",
    "editPermissions": "Machtigingen bewerken",
    "deleteKey": "Sleutel verwijderen",
    "regenerateKey": "Sleutel opnieuw genereren",
    "regenerateConfirm": "Weet u zeker dat u deze API-sleutel opnieuw wilt genereren? De oude sleutel wordt onmiddellijk ongeldig verklaard.",
    "failedRegenerateKey": "Kan de API-sleutel niet opnieuw genereren",
    "failedRegenerateKeyRetry": "Kan de API-sleutel niet opnieuw genereren. Probeer het opnieuw.",
    "model": "{count}-model",
    "models": "{count} modellen",
    "permissionsTitle": "Machtigingen: {name}",
    "allowAllDesc": "Met deze sleutel heeft u toegang tot alle beschikbare modellen.",
    "restrictDesc": "Deze sleutel heeft toegang tot {selectedCount} van {totalModels} modellen.",
    "selectedCount": "{count} geselecteerd",
    "maxActiveSessions": "Max. actieve sessies",
    "apiManagerCustomRateLimits": "Aangepaste tarieflimieten",
    "apiManagerCustomRateLimitsDesc": "Overschrijf de algemene standaardlimieten. Laat leeg om standaardinstellingen te gebruiken.",
    "apiManagerRateLimitRequestsPlaceholder": "Verzoeken",
    "apiManagerRateLimitReqPer": "verzoek /",
    "apiManagerRateLimitSecondsPlaceholder": "Seconden",
    "apiManagerRemoveLimitTitle": "Limiet verwijderen",
    "apiManagerTimezonePlaceholder": "Amerika/Sao Paulo",
    "noLogPayloadPrivacy": "Payload-privacy zonder logboek",
    "bannedStatus": "Verboden status",
    "managementApiAccess": "Beheer-API-toegang",
    "expirationDate": "Vervaldatum",
    "managementAccess": "Beheertoegang",
    "allowedConnections": "Toegestane verbindingen",
    "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": "Auditlogboek",
    "searchPlaceholder": "Zoekacties...",
    "action": "Actie",
    "actor": "Acteur",
    "target": "Doel",
    "ipAddress": "IP-adres",
    "timestamp": "Tijdstempel",
    "noEntries": "Geen auditgegevens gevonden",
    "filterByAction": "Filter op actie...",
    "filterByActor": "Filter op acteur...",
    "filterEntriesAria": "Filter auditlogboekvermeldingen",
    "filterByActionTypeAria": "Filter op actietype",
    "filterByActorAria": "Filter op acteur",
    "refreshAuditLogAria": "Vernieuw het auditlogboek",
    "tableAria": "Auditlogboekvermeldingen",
    "failedFetchAuditLog": "Kan het auditlogboek niet ophalen",
    "notAvailable": "—",
    "description": "Administratieve acties en beveiligingsgebeurtenissen",
    "showing": "{count} items tonen (offset {offset})",
    "previous": "Vorige"
  },
  "media": {
    "title": "Media-werkplaats",
    "subtitle": "Genereer afbeeldingen, video’s en muziek",
    "model": "Model",
    "prompt": "Prompt",
    "generate": "Genereren",
    "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": "Kopieer",
    "resetToDefault": "Resetten naar standaard",
    "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-hulpmiddelen",
    "noActiveProviders": "Geen actieve aanbieders",
    "noActiveProvidersDesc": "Voeg eerst providers toe en verbind ze om CLI-tools te configureren.",
    "mapModels": "Kaartmodellen",
    "testConnection": "Verbinding testen",
    "connectionStatus": "Verbindingsstatus",
    "configureEndpoint": "Eindpunt configureren",
    "instructions": "Instructies",
    "modelMapping": "Modeltoewijzing",
    "baseUrl": "Basis-URL",
    "apiKey": "API-sleutel",
    "configured": "Geconfigureerd",
    "notConfigured": "Niet geconfigureerd",
    "notInstalled": "Niet geïnstalleerd",
    "custom": "Aangepast",
    "unknown": "Onbekend",
    "lastSavedAt": "Laatst opgeslagen: {date}",
    "never": "Nooit",
    "justNow": "zojuist",
    "minutesAgoShort": "{count}m geleden",
    "hoursAgoShort": "{count}u geleden",
    "daysAgoShort": "{count}d geleden",
    "monthsAgoShort": "{count}mo geleden",
    "yearsAgoShort": "{count}y geleden",
    "runtimeCheckFailed": "Runtimecontrole is mislukt",
    "yourApiKeyPlaceholder": "jouw-api-sleutel",
    "modelPlaceholder": "provider/model-id",
    "configurationSaved": "Configuratie succesvol opgeslagen.",
    "failedToSave": "Kan configuratie niet opslaan.",
    "noApiKeysCreateOne": "Geen API-sleutels - Maak er een op de pagina Sleutels",
    "defaultOmnirouteKey": "sk_omniroute (standaard)",
    "selectModel": "Selecteer Model",
    "selectModelForAlias": "Selecteer model voor {alias}",
    "selectModelForTool": "Selecteer model voor {tool}",
    "select": "Selecteer",
    "clear": "Duidelijk",
    "comingSoon": "Binnenkort beschikbaar",
    "checkingRuntime": "Runtimestatus controleren...",
    "guideOnlyIntegration": "Alleen-gids-integratie (geen lokale runtime vereist)",
    "cliRuntimeDetected": "CLI-runtime gedetecteerd en gereed",
    "cliFoundNotRunnable": "CLI gevonden maar niet uitvoerbaar{reason}",
    "cliRuntimeNotDetected": "CLI-runtime niet gedetecteerd",
    "binary": "Binair",
    "configPath": "Configuratiepad",
    "configPathShort": "Configuratie",
    "failedCheckRuntimeStatus": "Kan de runtimestatus niet controleren.",
    "copy": "Kopieer",
    "copied": "Gekopieerd",
    "copyConfig": "Kopieer configuratie",
    "saveConfig": "Configuratie opslaan",
    "selectionSaved": "Selectie opgeslagen",
    "guide": "Gids",
    "detected": "Gedetecteerd",
    "notReady": "Niet klaar",
    "active": "Actief",
    "inactive": "Inactief",
    "startMitm": "MITM starten",
    "stopMitm": "Stop MITM",
    "mitmStarted": "MITM is succesvol gestart!",
    "mitmStopped": "MITM is succesvol gestopt!",
    "failedStart": "Kan MITM niet starten",
    "failedStop": "Kan MITM niet stoppen",
    "saveMappings": "Bewaar toewijzingen",
    "mappingsSaved": "Kaarten opgeslagen!",
    "failedSaveMappings": "Kan toewijzingen niet opslaan",
    "howItWorks": "Hoe het werkt:",
    "antigravityHowWorksDesc": "Antigravity stuurt verzoeken naar het eindpunt van Google. MITM onderschept ze en stuurt ze door naar OmniRoute.",
    "antigravityStep1": "1. Start MITM om aanvragen via OmniRoute te routeren.",
    "antigravityStep2Prefix": "2. Toevoegen",
    "antigravityStep2Suffix": "naar uw hosts-bestand als 127.0.0.1.",
    "antigravityStep3": "3. Open Antigravity en verzoeken zullen worden geproxyd.",
    "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-wachtwoord vereist",
    "sudoPasswordHint": "Het beheerderswachtwoord is vereist om de hosts-bestand- en systeemproxy-instellingen te wijzigen.",
    "enterSudoPassword": "Voer het sudo-wachtwoord in",
    "sudoPasswordRequiredError": "Sudo-wachtwoord is vereist.",
    "cancel": "Annuleer",
    "confirm": "Bevestig",
    "settingsApplied": "Instellingen succesvol toegepast!",
    "failedApplySettings": "Kan instellingen niet toepassen",
    "settingsReset": "Instellingen opnieuw ingesteld!",
    "failedResetSettings": "Kan de instellingen niet resetten",
    "backupRestored": "Back-up hersteld!",
    "failedRestore": "Herstellen is mislukt",
    "checkingCli": "{tool} CLI controleren...",
    "cliNotRunnable": "{tool} CLI geïnstalleerd maar kan niet worden uitgevoerd",
    "cliNotInstalled": "{tool} CLI niet geïnstalleerd",
    "cliNotDetected": "{tool} CLI niet gedetecteerd",
    "cliDetectedReady": "{tool} CLI gedetecteerd en gereed",
    "cliFoundFailedHealthcheck": "{tool} CLI is gevonden, maar de runtime-gezondheidscontrole{reason} is mislukt.",
    "installCliPrompt": "Installeer {tool} CLI om deze functie te gebruiken.",
    "installCodexPrompt": "Installeer Codex CLI om de functie voor automatisch toepassen te gebruiken.",
    "hide": "Verbergen",
    "howToInstall": "Hoe te installeren",
    "installationGuide": "Installatiehandleiding",
    "platforms": "macOS/Linux/Windows:",
    "afterInstallationRun": "Na de installatie uitvoeren",
    "toVerify": "verifiëren.",
    "current": "Huidig",
    "baseUrlPlaceholder": "https://.../v1",
    "resetToDefault": "Resetten naar standaard",
    "providerModelPlaceholder": "provider/model-id",
    "apply": "Toepassen",
    "reset": "Opnieuw instellen",
    "manualConfig": "Handmatige configuratie",
    "backups": "Back-ups",
    "configBackups": "Back-ups configureren",
    "noBackupsYet": "Nog geen back-ups. Er worden automatisch back-ups gemaakt vóór elke toepassing of reset.",
    "restore": "Herstellen",
    "backupRestoredReloading": "Back-up hersteld! Status herladen...",
    "failedRestoreBackup": "Kan back-up niet herstellen",
    "applied": "Toegepast!",
    "failed": "Mislukt",
    "resetDone": "Opnieuw instellen!",
    "omnirouteConfiguredOpenAiCompatible": "OmniRoute is geconfigureerd als OpenAI-compatibele provider",
    "provider": "Aanbieder",
    "model": "Model",
    "providers": "Aanbieders",
    "auth": "Aut",
    "noApiKeysAvailable": "Geen API-sleutels beschikbaar",
    "usingDefaultOmniroute": "Standaard gebruiken: sk_omniroute",
    "updateConfig": "Configuratie bijwerken",
    "applyConfig": "Configuratie toepassen",
    "noBackupsAvailable": "Geen back-ups beschikbaar.",
    "profileSaved": "Profiel \"{name}\" opgeslagen!",
    "failedSaveProfile": "Kan profiel niet opslaan",
    "profileActivated": "Profiel geactiveerd!",
    "failedActivateProfile": "Kan profiel niet activeren",
    "profiles": "Profielen",
    "savedProfiles": "Opgeslagen profielen",
    "noProfilesYet": "Nog geen profielen opgeslagen. Sla de huidige configuratie op als profiel hieronder.",
    "activate": "Activeer",
    "deleteProfile": "Profiel verwijderen",
    "profileNamePlaceholder": "Profielnaam (bijv. Persoonlijk account)",
    "saveCurrent": "Bewaar huidige",
    "codexAuthNotePrefix": "Codex-gebruik",
    "codexAuthNoteMiddle": "met",
    "codexAuthNoteSuffix": "Klik op \"Toepassen\" om automatisch te configureren.",
    "claudeManualConfiguration": "Claude CLI - Handmatige configuratie",
    "codexManualConfiguration": "Codex CLI - Handmatige configuratie",
    "droidManualConfiguration": "Factory Droid - Handmatige configuratie",
    "openClawManualConfiguration": "Open Claw - Handmatige configuratie",
    "clineManualConfiguration": "Cline handmatige configuratie",
    "kiloManualConfiguration": "Kilocode handmatige configuratie",
    "whenToUseLabel": "Wanneer te gebruiken",
    "openToolDocs": "Gereedschapsdocumentatie openen",
    "toolUseCases": {
      "claude": "Gebruik deze optie als u krachtige planningsworkflows en lange refactoren van meerdere bestanden wilt met Claude Code.",
      "codex": "Gebruik wanneer uw team is gestandaardiseerd op OpenAI Codex CLI-stromen en op profielen gebaseerde authenticatie.",
      "droid": "Gebruik deze wanneer u een lichtgewicht terminalagent nodig heeft die zich richt op snelle codering en opdrachtuitvoeringslussen.",
      "openclaw": "Gebruik dit wanneer u een codeeragent in Open Claw-stijl wilt, maar gerouteerd via OmniRoute-beleid.",
      "cline": "Gebruik deze optie wanneer u codeeragenten in editors configureert en begeleide installatie wilt met OmniRoute-modellen.",
      "kilo": "Gebruik dit wanneer uw workflow afhankelijk is van Kilo Code-opdrachten en snelle iteratieve bewerkingen.",
      "cursor": "Gebruik dit bij het coderen in Cursor en u hebt aangepaste OpenAI-compatibele modellen nodig via OmniRoute.",
      "continue": "Gebruik dit wanneer u Doorgaan in IDE's uitvoert en u een draagbare, op JSON gebaseerde providerconfiguratie nodig hebt.",
      "opencode": "Gebruik dit wanneer u de voorkeur geeft aan terminal-native agentruns en scriptautomatisering via OpenCode.",
      "kiro": "Te gebruiken bij het integreren van Kiro en het centraal beheren van modelrouting vanuit OmniRoute.",
      "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
      "antigravity": "Gebruik wanneer Antigravity/Kiro-verkeer moet worden onderschept via MITM en naar OmniRoute moet worden gerouteerd.",
      "copilot": "Gebruik wanneer u UX in Copilot-chatstijl wilt terwijl u OmniRoute-sleutels en routeringsregels afdwingt.",
      "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": "Gebruik deze wanneer u een lichtgewicht terminal-native AI-assistent nodig heeft voor snelle taken.",
      "hermes-agent": "__MISSING__:Use when you need Hermes Agent (by Nousresearch) with default, delegation, vision and auxiliary models routed through OmniRoute.",
      "custom": "Gebruik voor aangepaste toolimplementaties of generieke OpenAI-compatibele configuraties."
    },
    "toolDescriptions": {
      "antigravity": "Google Antigravity IDE met MITM",
      "claude": "Antropische Claude Code CLI",
      "codex": "OpenAI Codex-CLI",
      "droid": "Factory Droid AI-assistent",
      "openclaw": "Open Claw AI-assistent",
      "cline": "Cline AI Coderingsassistent CLI",
      "kilo": "Kilocode AI Assistent CLI",
      "cursor": "Cursor AI-code-editor",
      "continue": "Ga door met AI-assistent",
      "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": "Generieke OpenAI-compatibele CLI- of SDK-configuratiegenerator"
    },
    "guides": {
      "cursor": {
        "notes": {
          "0": "Vereist Cursor Pro-account om deze functie te gebruiken.",
          "1": "Cursor routeert verzoeken via zijn eigen server, dus lokaal eindpunt wordt niet ondersteund. Schakel Cloud Endpoint in via Instellingen."
        },
        "steps": {
          "1": {
            "title": "Instellingen openen",
            "desc": "Ga naar Instellingen -> Modellen"
          },
          "2": {
            "title": "Schakel de OpenAI-API in",
            "desc": "Schakel de optie \"OpenAI API-sleutel\" in"
          },
          "3": {
            "title": "Basis-URL"
          },
          "4": {
            "title": "API-sleutel"
          },
          "5": {
            "title": "Aangepast model toevoegen",
            "desc": "Klik op 'Alle modellen bekijken' -> 'Aangepast model toevoegen'"
          },
          "6": {
            "title": "Selecteer Model"
          }
        }
      },
      "continue": {
        "steps": {
          "1": {
            "title": "Configuratie openen",
            "desc": "Open het configuratiebestand Doorgaan"
          },
          "2": {
            "title": "API-sleutel"
          },
          "3": {
            "title": "Selecteer Model"
          },
          "4": {
            "title": "Modelconfiguratie toevoegen",
            "desc": "Voeg de volgende configuratie toe aan uw modellenarray:"
          }
        },
        "notes": {
          "0": "Doorgaan gebruikt het JSON-configuratiebestand."
        }
      },
      "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 vereist API-sleutelconfiguratie.",
          "1": "Stel de basis-URL in op uw OmniRoute-eindpunt."
        }
      },
      "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": "Voor Kiro is een Amazon-account vereist."
        }
      },
      "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": "Aangepaste CLI",
    "toolCategories": "Tool Categories",
    "visibleToolsCount": "{count} tools beschikbaar",
    "customCliBuilderTitle": "OpenAI-compatibele CLI-builder",
    "customCliBuilderDescription": "Genereer env vars en JSON-fragmenten voor elke CLI of SDK die een OpenAI-compatibele basis-URL, API-sleutel en model-ID accepteert.",
    "customCliNoModels": "Verbind ten minste één provider om de modelkiezers te vullen.",
    "customCliNameLabel": "CLI-naam",
    "customCliNamePlaceholder": "bijv. Mijn team-CLI",
    "customCliDefaultModelLabel": "Standaardmodel",
    "customCliDefaultModelHelp": "Gebruik elke OmniRoute-model-ID of -combinatie. De meeste OpenAI-compatibele CLI's hebben alleen de /v1-basis-URL plus een modeltekenreeks nodig.",
    "customCliKeyHelper": "Voor lokale installaties kan OmniRoute sk_omniroute gebruiken. Kies in de cloudmodus een van uw beheer-API-sleutels.",
    "customCliAliasMappingsLabel": "Aliastoewijzingen",
    "customCliAliasMappingsHelp": "Optionele helperaliassen voor wrapperscripts of configuratiebestanden die stabiele verkorte namen willen.",
    "customCliAddAlias": "Alias toevoegen",
    "customCliNoMappings": "Nog geen aliastoewijzingen. Voeg er een toe als uw wrapper- of teamscripts stabiele korte namen gebruiken.",
    "customCliAliasPlaceholder": "bijv. beoordeling",
    "customCliTargetModelLabel": "Doelmodel",
    "customCliEndpointHintLabel": "Hoe het eindpunt te bedraden",
    "customCliEndpointHint": "Verwijs een OpenAI-compatibele client naar de OmniRoute /v1-basis-URL. Het onbewerkte eindpunt voor het voltooien van chats is {endpoint}. Gebruik het JSON-blok wanneer de tool een providerobject wil, of het env-script wanneer het OPENAI_*-variabelen leest.",
    "customCliEnvBlockTitle": "Env/shell-fragment",
    "customCliJsonBlockTitle": "Provider JSON-blok",
    "copilotConfigGenerator": "GitHub Copilot-configuratiegenerator",
    "copilotApiKey": "API-sleutel",
    "copilotFilterModelsPlaceholder": "Modellen filteren...",
    "copilotMaxInputTokens": "Max. invoertokens",
    "copilotMaxOutputTokens": "Maximale uitvoertokens",
    "copilotToolCalling": "Gereedschap bellen",
    "copilotPasteInto": "Plakken in: ",
    "wireApiChatCompletions": "Chatvoltooiingen (/chat/voltooiingen)",
    "wireApiResponses": "Reacties-API (/reacties)"
  },
  "combos": {
    "title": "Combo's",
    "description": "Creëer modelcombinaties met gewogen routing en fallback-ondersteuning",
    "autoCatalogTitle": "Catalogus voor automatische routering",
    "autoCatalogTemplateCount": "{count} sjablonen",
    "autoCatalogDescription": "Ingebouwde auto/*-combinaties die dynamisch worden opgelost door aangesloten providers. Gebruik een van deze ID's als modelveld; er is geen configuratie nodig.",
    "autoCatalogExpand": "Vouw de autoroutingcatalogus uit",
    "autoCatalogCollapse": "Catalogus voor automatische routering samenvouwen",
    "createCombo": "Combinatie maken",
    "editCombo": "Combinatie bewerken",
    "deleteCombo": "Combinatie verwijderen",
    "noModels": "Geen modellen",
    "noModelsYet": "Er zijn nog geen modellen toegevoegd",
    "addModel": "Model toevoegen",
    "addModelToCombo": "Model toevoegen aan combo",
    "routingStrategy": "Routeringsstrategie",
    "maxRetries": "Maximaal aantal nieuwe pogingen",
    "timeout": "Time-out (ms)",
    "healthcheck": "Gezondheidscontrole",
    "priority": "Prioriteit",
    "fallback": "Terugval",
    "roundRobin": "Ronde Robin",
    "random": "Willekeurig",
    "leastLatency": "Minste latentie",
    "comboName": "Combinatienaam",
    "comboNamePlaceholder": "mijn-combo",
    "deleteConfirm": "Deze combinatie verwijderen?",
    "noCombosYet": "Nog geen combo's",
    "comboCreated": "Combinatie is succesvol aangemaakt",
    "comboUpdated": "Combo is succesvol bijgewerkt",
    "comboDeleted": "Combinatie verwijderd",
    "failedCreate": "Kan combo niet maken",
    "failedUpdate": "Kan combo niet updaten",
    "errorCreating": "Fout bij maken van combo",
    "errorUpdating": "Fout bij updaten van combo",
    "errorDeleting": "Fout bij verwijderen van combo",
    "testFailed": "Testverzoek is mislukt",
    "failedToggle": "Kan combo niet schakelen",
    "testResults": "Testresultaten — {name}",
    "resolvedBy": "Opgelost door:",
    "more": "+{count} meer",
    "reqs": "verzoek",
    "success": "succes",
    "proxyConfigured": "Proxy geconfigureerd",
    "copyComboName": "Kopieer de combonaam",
    "enableCombo": "Combinatie inschakelen",
    "disableCombo": "Combinatie uitschakelen",
    "testCombo": "Combinatie testen",
    "duplicate": "Duplicaat",
    "proxyConfig": "Proxy-configuratie",
    "nameRequired": "Naam is vereist",
    "nameInvalid": "Alleen letters, cijfers, -, _, / en . toegestaan",
    "nameHint": "Letters, cijfers, -, _, / en . toegestaan",
    "priorityDesc": "Sequentiële fallback: probeert eerst model 1, dan 2, etc.",
    "weightedDesc": "Verdeelt verkeer op basis van gewichtspercentage met terugval",
    "roundRobinDesc": "Circulaire distributie: elke aanvraag gaat roulerend naar het volgende model",
    "contextRelay": "Context Relay",
    "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
    "randomDesc": "Uniforme willekeurige selectie en vervolgens terugvallen op de resterende modellen",
    "leastUsedDesc": "Kiest het model met de minste verzoeken, waarbij de belasting in de loop van de tijd wordt verdeeld",
    "costOptimizedDesc": "Routes eerst naar het goedkoopste model op basis van prijzen",
    "resetAware": "Reset-bewuste RR",
    "resetAwareDesc": "Brengt het resterende quotum in evenwicht met 5 uur en wekelijkse resets, waarna vergelijkbare scores worden afgerond",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
    "models": "Modellen",
    "autoBalance": "Automatische balans",
    "advancedSettings": "Geavanceerde instellingen",
    "retryDelay": "Vertraging opnieuw proberen (ms)",
    "concurrencyPerModel": "Gelijktijdigheid / model",
    "queueTimeout": "Wachtrijtime-out (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": "Laat leeg om globale standaardwaarden te gebruiken. Deze overschrijven de instellingen per provider.",
    "failoverBeforeRetry": "Failover vóór nieuwe poging",
    "maxSetRetries": "Max. aantal nieuwe pogingen",
    "setRetryDelayMs": "Vertraging voor opnieuw proberen instellen (ms)",
    "moveUp": "Ga omhoog",
    "moveDown": "Ga naar beneden",
    "removeModel": "Verwijderen",
    "saving": "Opslaan...",
    "weighted": "Gewogen",
    "leastUsed": "Minst gebruikt",
    "costOpt": "Kosten-opt",
    "strategyGuideTitle": "Hoe deze strategie te gebruiken",
    "strategyGuideWhen": "Wanneer te gebruiken",
    "strategyGuideAvoid": "Vermijd wanneer",
    "strategyGuideExample": "Voorbeeld",
    "strategyGuide": {
      "priority": {
        "when": "U heeft één voorkeursmodel en wilt alleen terugvallen op mislukkingen.",
        "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": "U routeert over meerdere accounts met quota-telemetrie en verschillende reset-vensters.",
        "avoid": "Quota-telemetrie is voor de meeste accounts niet beschikbaar.",
        "example": "Geef de voorkeur aan een wekelijkse account van 60% die morgen wordt gereset boven een account van 80% die later wordt gereset."
      },
      "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": "Gebruik dit wanneer u het quotum van de ene provider volledig wilt benutten voordat u naar de volgende overstapt.",
        "avoid": "Vermijd wanneer u taakverdeling op verzoekniveau tussen providers nodig heeft.",
        "example": "Voorbeeld: Gebruik alle $200 Deepgram-credits voordat je terugvalt naar Groq."
      },
      "auto": {
        "when": "Gebruik deze optie wanneer u multi-factor scoring-routing nodig heeft op basis van kosten, latentie en kwaliteit.",
        "avoid": "Vermijd wanneer u een strikte prioriteitsvolgorde of historische persistentie nodig heeft.",
        "example": "Voorbeeld: Verdeel verzoeken over modellen met verschillende sterktes."
      },
      "lkgp": {
        "when": "Gebruik dit wanneer u wilt routeren op basis van historische succespercentages en prestaties.",
        "avoid": "Vermijd wanneer historische gegevens beperkt of onbetrouwbaar zijn.",
        "example": "Voorbeeld: Route naar modellen met een goed trackrecord op specifieke taken."
      },
      "context-optimized": {
        "when": "Gebruik dit wanneer u het gebruik van contextvensters in verschillende modellen wilt optimaliseren.",
        "avoid": "Vermijd wanneer modellen een vergelijkbare contextlengte hebben of taken eenvoudig zijn.",
        "example": "Voorbeeld: Verdeel lange gesprekken over modellen met grotere contextvensters."
      }
    },
    "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": "Indien ingeschakeld, activeert elke upstream-fout onmiddellijke failover naar het volgende combo-doel, waarbij alle nieuwe pogingen en reserve-URL's worden overgeslagen.",
      "maxSetRetries": "Aantal keren dat de volledige doelset opnieuw moet worden geprobeerd als elk doel mislukt. 0 = geen nieuwe poging op ingesteld niveau.",
      "setRetryDelayMs": "Vertraging tussen nieuwe pogingen op ingesteld niveau, waardoor tijdelijke problemen de tijd krijgen om op te lossen."
    },
    "templatesTitle": "Quick templates",
    "templatesDescription": "Apply a starting profile, then adjust models and config.",
    "templateApply": "Apply template",
    "templateHighAvailability": "High availability",
    "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
    "templateCostSaver": "Cost saver",
    "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
    "templateBalanced": "Balanced load",
    "templateBalancedDesc": "Least-used routing to spread demand over time.",
    "usageGuideHide": "Hide",
    "usageGuideDontShowAgain": "Don't show again",
    "usageGuideShow": "Show guide",
    "quickTestTitle": "Combo ready to validate",
    "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
    "testNow": "Test now",
    "pricingCoverage": "Pricing coverage",
    "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
    "pricingAvailable": "Pricing available",
    "pricingMissing": "No pricing",
    "pricingAvailableShort": "priced",
    "pricingMissingShort": "no-price",
    "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
    "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
    "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
    "filterAll": "All",
    "filterIntelligent": "Intelligent",
    "filterDeterministic": "Deterministic",
    "filterEmptyTitle": "No combos match this strategy filter.",
    "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
    "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
    "readinessTitle": "Klaar om te besparen?",
    "readinessDescription": "Bekijk de checklist voordat u deze combo maakt of bijwerkt.",
    "readinessCheckName": "Combinatienaam is geldig",
    "readinessCheckModels": "Er is minimaal één model geselecteerd",
    "readinessCheckWeights": "Gewogen totaal is 100%",
    "readinessCheckWeightsOptional": "Gewichtsregel niet vereist",
    "readinessCheckPricing": "Er zijn prijsgegevens beschikbaar",
    "readinessCheckPricingOptional": "Prijsregel is niet vereist",
    "saveBlockedTitle": "Opslaan is geblokkeerd totdat de volgende items zijn opgelost:",
    "saveBlockName": "Definieer een combonaam.",
    "saveBlockModels": "Voeg ten minste één model toe.",
    "saveBlockWeighted": "Stel de gewichten in op 100% (huidig: {total}%).",
    "saveBlockPricing": "Voeg prijzen toe voor ten minste één model of kies een andere strategie.",
    "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": "Resetbewuste accountrotatie",
        "description": "Verdeelt het resterende providerquotum tegen de reset-timing.",
        "tip1": "Gebruik expliciete accountstappen of routering van accounttags voor providers met quota-telemetrie.",
        "tip2": "Stem de sessie af op de wekelijkse gewichten wanneer uitputting op korte termijn riskanter is.",
        "tip3": "Houd de band klein, zodat gelijkwaardige accounts nog steeds eerlijk roteren."
      },
      "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": "Voer de quota's van leveranciers opeenvolgend uit voordat u terugvalt.",
        "tip1": "Gebruik voor op quota gebaseerde routering met duidelijke fallback-ketens.",
        "tip2": "Stel quota nauwkeurig in om voortijdige terugval te voorkomen.",
        "tip3": "Werkt het beste met providers die gratis niveaus of kredietbuckets aanbieden.",
        "title": "Quota-uitputting"
      },
      "auto": {
        "description": "Route gebaseerd op realtime scores voor kosten, latentie, kwaliteit en gezondheid.",
        "tip1": "Laat de motor meerdere factoren automatisch in evenwicht brengen.",
        "tip2": "Controleer welke factoren routeringsbeslissingen bepalen in logboeken.",
        "tip3": "Gebruik voor complexe workloads waarbij geen enkele factor domineert.",
        "title": "Multi-factor optimalisatie"
      },
      "lkgp": {
        "description": "Route gebaseerd op historische prestatie- en succespatronen.",
        "tip1": "Vereist voldoende aanvraaggeschiedenis voor nauwkeurige voorspellingen.",
        "tip2": "Goed voor workloads met consistente modelprestatiepatronen.",
        "tip3": "Bewaak de nauwkeurigheid van de voorspelling en pas de gewichten indien nodig aan.",
        "title": "Op geschiedenis gebaseerde routering"
      },
      "context-optimized": {
        "description": "Optimaliseer routering op basis van contextvenstergebruik en tokenefficiëntie.",
        "tip1": "Leid lange gesprekken naar modellen met grotere contextvensters.",
        "tip2": "Bewaak het contextgebruik om tokenverspilling te voorkomen.",
        "tip3": "Het beste voor conversatie-AI die uitgebreide contextretentie vereist.",
        "title": "Contextoptimalisatie"
      },
      "context-relay": {
        "description": "Het beste wanneer accountrotatie wordt verwacht en het volgende account een vereenvoudigde taaksamenvatting moet overnemen.",
        "tip1": "Gebruiken met providers die accounts wisselen voor dezelfde modelfamilie.",
        "tip2": "Stel de overdrachtsdrempel in onder de harde quotalimieten voor de tijd voor het genereren van samenvattingen.",
        "tip3": "Stel alleen een speciaal samenvattend model in als de primaire te duur of onstabiel is.",
        "title": "Prioriteit voor sessiecontinuïteit"
      },
      "p2c": {
        "description": "Route naar de provider met de laagste stroombelasting op basis van realtime statistieken.",
        "tip1": "Bewaak de statusstatistieken van de provider voor een nauwkeurige beoordeling van de belasting.",
        "tip2": "Werkt het beste met homogene providerpools.",
        "tip3": "Pas de gevoeligheid aan om oscillatie tijdens verkeerspieken te voorkomen.",
        "title": "Kracht van twee keuzes"
      }
    },
    "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": "Deze exacte provider/model/account-stap zit al in de combo.",
    "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": "Voltooi elke fase om combo's te definiëren, stappen te bouwen, routeringsstrategie te selecteren en de resultaten te bekijken.",
    "builderStepsDescription": "Bouw elke combinatiestap op volgorde: provider, model en vervolgens account. Hierdoor kunt u dezelfde provider en hetzelfde model voor verschillende accounts hergebruiken.",
    "selectProvider": "Selecteer Aanbieder",
    "selectProviderPlaceholder": "Selecteer een aanbieder",
    "selectModel": "Selecteer Model",
    "selectModelPlaceholder": "Selecteer eerst een aanbieder",
    "selectAccount": "Selecteer Account",
    "selectComboToReference": "Selecteer combo om te verwijzen",
    "comboReference": "Combinatiereferentie",
    "addComboReference": "Combinatiereferentie toevoegen",
    "addStepBeforeContinue": "Voeg minimaal één stap toe voordat u doorgaat naar de volgende fase.",
    "previewNextStep": "Bekijk een voorbeeld van de volgende stap",
    "autoSelectAccount": "Selecteer automatisch een account tijdens runtime",
    "modePackBalanced": "Evenwichtig",
    "modePackBudget": "Begroting",
    "modePackPerformance": "Prestaties",
    "modePackCustom": "Aangepast",
    "browseLegacyCatalog": "Blader door de oude combocatalogus",
    "agentFeaturesTitle": "Agent-functies",
    "agentFeaturesDescription": "Schakel geavanceerde functies in voor agenten die deze combinatie gebruiken",
    "agentFeaturesSystemMessageOverride": "Systeembericht negeren",
    "agentFeaturesSystemMessagePlaceholder": "Jij bent een deskundige assistent...",
    "agentFeaturesSystemMessageHint": "Systeembericht negeren voor agenten",
    "agentFeaturesToolFilterRegex": "/regex-patroon/",
    "agentFeaturesToolFilterHint": "Toolfilterregex voor agenten",
    "agentFeaturesContextCacheHint": "Schakel in-context cache in voor agenttools",
    "agentFeaturesContextCacheProtection": "Bescherm de cache tegen mutaties in agenttools",
    "agentFeaturesContextLength": "Contextlengte",
    "agentFeaturesContextLengthPlaceholder": "bijv. 128000",
    "agentFeaturesContextLengthHint": "Definieert het contextvenster voor deze combo in /v1/models.",
    "agentFeaturesContextLengthErrorInteger": "De contextlengte moet een geldig geheel getal zijn",
    "agentFeaturesContextLengthErrorRange": "De contextlengte moet tussen 1000 en 2000000 liggen",
    "compressionOverride": "Compressie opheffen",
    "modePack": "Moduspakket"
  },
  "costs": {
    "title": "Kosten",
    "pageDescription": "Houd uitgaven bij, analyseer trends en beheer uw AI-budget voor alle providers",
    "overview": "Overzicht",
    "budget": "Begroting",
    "totalCost": "Totale kosten",
    "breakdown": "Kostenverdeling",
    "noData": "Geen kostengegevens",
    "byModel": "Per model",
    "byProvider": "Door aanbieder",
    "range7d": "7 dagen",
    "range30d": "30 dagen",
    "range90d": "90 dagen",
    "rangeAll": "Altijd",
    "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": "Tokengebruik",
    "totalTokens": "Totaal tokens",
    "inputTokens": "Invoertokens",
    "outputTokens": "Uitvoertokens",
    "inputOutputRatio": "Invoer/uitvoerverhouding",
    "tokens": "tokens",
    "routingEfficiency": "Routeringsefficiëntie",
    "fallbackCount": "Terugvalverzoeken",
    "fallbackRate": "Terugvalpercentage",
    "modelCoverage": "Modeldekking",
    "modelCoverageDesc": "% verzoeken met expliciet model",
    "outOfRequests": "van {total} verzoeken",
    "costByApiKey": "Kosten per API-sleutel",
    "costByAccount": "Kosten per rekening",
    "apiKeyName": "API-sleutel",
    "account": "Rekening",
    "requests": "Verzoeken",
    "cost": "Kosten",
    "dayStreak": "dagstreep",
    "weeklyUsagePattern": "Wekelijks gebruikspatroon",
    "activityHeatmap": "Activiteit (365 dagen)",
    "less": "Minder",
    "more": "Meer",
    "monthlyForecast": "Maandelijkse voorspelling",
    "forecastBasis": "Gebaseerd op de afgelopen {days} dagen",
    "avgDailyCost": "Gem. dagelijkse kosten",
    "daysRemaining": "Nog {days} dagen resterend",
    "periodComparison": "Periodevergelijking",
    "previousPeriod": "Vorige helft",
    "currentPeriod": "Huidige helft",
    "exportCSV": "Exporteren als CSV",
    "exportJSON": "Exporteren als JSON",
    "legacyFreeLabel": "__MISSING__:Legacy / Free",
    "costExplorerTitle": "Kostenverkenner",
    "costExplorerDescription": "Verken uitgaven per provider, model, API-sleutel, account of serviceniveau.",
    "groupProvider": "Aanbieder",
    "groupModel": "AI-model",
    "groupApiKey": "API-sleutel",
    "groupAccount": "Gebruikersaccount",
    "groupServiceTier": "Serviceniveau",
    "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": "Dimensie",
    "share": "Aandeel",
    "legacyOrFree": "Legacy / gratis",
    "filterRows": "Rijen filteren…",
    "filterCostExplorerRows": "Rijen van Kostenverkenner filteren",
    "noMatchingCostRows": "Geen overeenkomende kostenrijen",
    "noMatchingCostRowsDescription": "Pas de zoektekst, groepering of geselecteerde tijdsperiode aan.",
    "showingCostRows": "Toont {shown} van {total} overeenkomende rijen.",
    "showingTopCostRows": "Toont {shown} van {total} overeenkomende rijen (top 50)."
  },
  "endpoint": {
    "title": "API-eindpunt",
    "available": "Beschikbare eindpunten",
    "cloudProxy": "Cloud-proxy",
    "disableConfirm": "Weet u zeker dat u cloudproxy wilt uitschakelen?",
    "baseUrl": "Basis-URL",
    "apiKeyLabel": "API-sleutel",
    "registeredKeys": "Geregistreerde sleutels",
    "chatCompletions": "Chat-voltooiingen",
    "responses": "Reacties",
    "listModels": "Lijstmodellen",
    "usingCloudProxy": "Cloudproxy gebruiken",
    "usingLocalServer": "Lokale server gebruiken",
    "machineId": "Machine-ID: {id}...",
    "disableCloud": "Schakel Cloud uit",
    "enableCloud": "Schakel Cloud in",
    "modelsAcrossEndpoints": "{models} modellen voor {endpoints} eindpunten",
    "loadingModels": "Loading available models...",
    "chatDesc": "Streaming & non-streaming chat met alle providers",
    "embeddings": "Inbedding",
    "embeddingsDesc": "Tekstinsluitingen voor zoek- en RAG-pijplijnen",
    "imageGeneration": "Beeld genereren",
    "imageDesc": "Genereer afbeeldingen op basis van tekstprompts",
    "rerank": "Herschikken",
    "rerankDesc": "Herschik documenten op relevantie voor een zoekopdracht",
    "audioTranscription": "Audiotranscriptie",
    "audioTranscriptionDesc": "Audiobestanden omzetten naar tekst (Whisper)",
    "textToSpeech": "Tekst naar spraak",
    "textToSpeechDesc": "Converteer tekst naar natuurlijk klinkende spraak",
    "musicGeneration": "Music Generation",
    "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
    "moderations": "Moderaties",
    "moderationsDesc": "Contentmoderatie en veiligheidsclassificatie",
    "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": "Kern-API's",
    "categoryMedia": "Media & Multi-Modaal",
    "categorySearch": "Search & Discovery",
    "categoryUtility": "Hulpmiddelen & Beheer",
    "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": "Schakel Cloudproxy in",
    "whatYouGet": "Wat je krijgt",
    "cloudBenefitAccess": "Krijg overal ter wereld toegang tot uw API",
    "cloudBenefitShare": "Deel het eindpunt eenvoudig met uw team",
    "cloudBenefitPorts": "U hoeft geen poorten te openen of een firewall te configureren",
    "cloudBenefitEdge": "Snel wereldwijd edge-netwerk",
    "cloudSessionNote": "Cloud bewaart uw authentificatiesessie gedurende 1 dag. Als het niet wordt gebruikt, wordt het automatisch verwijderd.",
    "cloudUnstableNote": "De cloud is momenteel in sommige gevallen instabiel met Claude Code OAuth.",
    "cloudConnected": "Cloudproxy verbonden!",
    "connectingToCloud": "Verbinding maken met de cloud...",
    "verifyingConnection": "Verbinding verifiëren...",
    "connecting": "Verbinden...",
    "verifying": "Verifiëren...",
    "connected": "Verbonden!",
    "disableCloudTitle": "Schakel Cloudproxy uit",
    "disableWarning": "Alle authentificatiesessies worden uit de cloud verwijderd.",
    "syncingData": "Laatste gegevens synchroniseren...",
    "disablingCloud": "Cloud uitschakelen...",
    "syncing": "Synchroniseren...",
    "disabling": "Uitschakelen...",
    "cloudConnectedVerified": "Cloud Proxy verbonden en geverifieerd!",
    "connectedVerificationPending": "Verbonden - verificatie in behandeling",
    "connectedVerificationPendingWithError": "Verbonden — verificatie in behandeling: {error}",
    "cloudDisabledSuccess": "Cloud is succesvol uitgeschakeld",
    "syncedSuccess": "Gesynchroniseerd",
    "failedDisable": "Kan de cloud niet uitschakelen",
    "failedEnable": "Kan cloud niet inschakelen",
    "cloudRequestTimeout": "Time-out van cloudverzoek",
    "cloudRequestFailed": "Cloudverzoek mislukt",
    "cloudWorkerUnreachable": "Kon de cloudwerker niet bereiken. Zorg ervoor dat de cloudservice actief is (npm run dev in /cloud).",
    "connectionFailed": "Verbinding mislukt",
    "syncFailed": "Synchroniseren van cloudgegevens is mislukt",
    "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} — Modellen",
    "noModelsForProvider": "Er zijn geen modellen beschikbaar voor deze aanbieder.",
    "chat": "Chatten",
    "embedding": "Inbedding",
    "image": "Afbeelding",
    "custom": "gewoonte",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "sectionTitle": "Integration Surface",
    "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
    "tabApis": "OpenAI-compatible APIs",
    "tabProtocols": "Protocols",
    "tabsAria": "Endpoint sections",
    "protocolsTitle": "Protocols",
    "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
    "mcpCardTitle": "MCP Server",
    "mcpCardDescription": "Model Context Protocol over stdio",
    "a2aCardTitle": "A2A Server",
    "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
    "protocolToolsLabel": "Tools",
    "protocolTasksLabel": "Tasks",
    "protocolActiveStreamsLabel": "Active streams",
    "protocolLastActivity": "Last activity",
    "quickStart": "Quick Start",
    "openMcpDashboard": "Open MCP management",
    "openA2aDashboard": "Open A2A management",
    "mcpQuickStartTitle": "MCP Quick Start",
    "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
    "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
    "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
    "a2aQuickStartTitle": "A2A Quick Start",
    "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
    "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
    "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
    "completionsLegacy": "Completions (Legacy)",
    "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
    "messagesApi": "Berichten",
    "messagesApiDesc": "Native Anthropic Messages API-indeling voor Claude-compatibele providers",
    "imageEdits": "Afbeeldingsbewerkingen",
    "imageEditsDesc": "Bewerk en wijzig bestaande afbeeldingen met AI (inpainting, outpainting, variaties)",
    "batchApi": "Batch-API",
    "batchApiDesc": "Verwerk grote batches verzoeken asynchroon (OpenAI-compatibel)",
    "filesApi": "Bestanden-API",
    "filesApiDesc": "Upload en beheer bestanden voor batchverwerking",
    "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-wachtwoord (vereist op macOS/Linux)",
    "ngrokTitle": "ngrok-tunnel",
    "ngrokRunning": "Rennen",
    "ngrokStarting": "Beginnen",
    "ngrokStoppedState": "Gestopt",
    "ngrokNeedsAuth": "Vereist authenticatie",
    "ngrokNotInstalled": "Niet geïnstalleerd",
    "ngrokUnsupported": "Niet ondersteund",
    "ngrokError": "Fout",
    "ngrokEnable": "Tunnel inschakelen",
    "ngrokDisable": "Stoptunnel",
    "ngrokUrlNotice": "Creëert een openbare ngrok-tunnel.",
    "ngrokAuthTokenLabel": "Authtoken (vereist als NGROK_AUTHTOKEN niet is ingesteld)",
    "ngrokAuthTokenPlaceholder": "Voer uw ngrok-authtoken in",
    "ngrokLastError": "Laatste fout: {error}",
    "ngrokStarted": "ngrok-tunnel begonnen",
    "ngrokStopped": "ngrok-tunnel gestopt",
    "ngrokRequestFailed": "Kan de ngrok-tunnel niet updaten",
    "tokenSaverSubtitle": "Geef bij elk verzoek minder tokens uit.",
    "tokenSaverToolOutput": "Gereedschapsuitvoer",
    "tokenSaverLlmOutput": "LLM-uitvoer",
    "tokenSaverInputCompression": "Invoercompressie",
    "apiEndpointsCatalogUnavailable": "API-catalogus niet beschikbaar",
    "apiEndpointsSearchPlaceholder": "Eindpunten zoeken...",
    "apiEndpointsRequiresAuth": "Vereist autorisatie",
    "apiEndpointsNoMatch": "Er zijn geen eindpunten die overeenkomen met uw filter",
    "localServer": "Lokale server",
    "cloudOmniroute": "Cloud OmniRoute",
    "copyUrl": "Kopieer 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": "Kopieer 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": "Agentenkaart",
    "agentCardPath": "__MISSING__:/.well-known/agent.json",
    "version": "Versie",
    "url": "URL",
    "capabilities": "Mogelijkheden",
    "agentCardNotAvailable": "Agentenkaart niet beschikbaar.",
    "quickValidation": "Snelle validatie",
    "quickValidationDescription": "Voert rookoproepen uit via het live `/a2a` eindpunt.",
    "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": "bericht/verzenden",
    "rpcMethodStream": "bericht/stream",
    "rpcMethodGet": "taken/krijgen",
    "rpcMethodCancel": "taken/annuleren",
    "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": "Pijplijn OK ({latencyMs}ms)",
    "pipelineError": "Pijplijnfout",
    "healthUnknown": "Gezondheid onbekend",
    "checkingHealth": "Controleren…",
    "checkHealth": "Controleer de gezondheid",
    "pageInfo": "Pagina {page} van {totalPages} ({total} totaal)",
    "previous": "Vorige",
    "next": "Volgende",
    "cancel": "Annuleer",
    "save": "Opslaan",
    "keyPlaceholder": "bijv. gebruikersvoorkeuren.thema",
    "contentPlaceholder": "Waarde- of JSON-inhoud om te onthouden"
  },
  "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": "Filter vaardigheden op naam, beschrijving of tag",
    "allModes": "Alle modi",
    "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": "Vaardighedenmarktplaats",
    "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": "Vaardigheid installeren"
  },
  "health": {
    "title": "Systeemgezondheid",
    "description": "Realtime monitoring van uw OmniRoute-instantie",
    "healthy": "Gezond",
    "degraded": "Gedegradeerd",
    "down": "Naar beneden",
    "uptime": "Uptime",
    "memory": "Geheugen",
    "memoryRss": "Geheugen (RSS)",
    "heap": "Hoop",
    "cpu": "CPU",
    "database": "Database",
    "version": "Versie",
    "lastCheck": "Laatste controle",
    "providerHealth": "Gezondheid van de aanbieder",
    "systemMetrics": "Systeemstatistieken",
    "tokenHealth": "Tokengezondheid",
    "refreshAll": "Alles vernieuwen",
    "checkNow": "Controleer nu",
    "loadingHealth": "Gezondheidsgegevens laden...",
    "failedToLoad": "Kan gezondheidsgegevens niet laden: {error}",
    "retry": "Opnieuw proberen",
    "allOperational": "Alle systemen operationeel",
    "issuesDetected": "Systeemproblemen gedetecteerd",
    "updatedAt": "{time} bijgewerkt",
    "latency": "Latentie",
    "latencyP50": "p50",
    "latencyP95": "p95",
    "latencyP99": "p99",
    "millisecondsShort": "{value}ms",
    "notAvailable": "—",
    "totalRequests": "Totaal aantal verzoeken",
    "noDataYet": "Nog geen gegevens",
    "promptCache": "Snelle cache",
    "entries": "Inzendingen",
    "hitRate": "Hitpercentage",
    "hitsMisses": "Hits / missers",
    "signatureCache": "Handtekeningcache",
    "signatureDefaults": "Standaardwaarden",
    "signatureTool": "Gereedschap",
    "signatureFamily": "Familie",
    "signatureSession": "Sessie",
    "recovering": "Herstellend",
    "noCBData": "Er zijn geen stroomonderbrekergegevens beschikbaar. Doe eerst een aantal verzoeken.",
    "providerHealthStatusAria": "Gezondheidsstatus van de provider",
    "issuesLabel": "Problemen gedetecteerd",
    "operational": "Operationeel",
    "providers": "Aanbieders",
    "configuredProvidersLabel": "Geconfigureerd in dashboard",
    "configuredProvidersHint": "Providers met inloggegevens opgeslagen in /dashboard/providers, ongeacht de runtimestatus.",
    "activeProviders": "{count} active",
    "activeProvidersHint": "Geconfigureerde providers die momenteel zijn ingeschakeld voor het routeren van verzoeken.",
    "monitoredProviders": "{count} monitored",
    "monitoredProvidersHint": "Providers worden momenteel gevolgd door gezondheidsmonitors van stroomonderbrekers.",
    "healthyCount": "{count} gezond",
    "nodeVersion": "Knooppunt {version}",
    "failures": "{count} fout",
    "failuresPlural": "{count} fouten",
    "lastFailure": "Laatste",
    "rateLimitStatus": "Status van tarieflimiet",
    "activeLimiters": "{count} actieve limiter",
    "activeLimitersPlural": "{count} actieve limiters",
    "queued": "In de wachtrij",
    "queuedCount": "{count} staat in de wachtrij",
    "running": "rennen",
    "runningCount": "{count} actief",
    "ok": "Oké",
    "activeLockouts": "Actieve vergrendelingen",
    "resetConfirm": "Alle stroomonderbrekers resetten naar een gezonde status? Hiermee worden alle foutaantallen gewist en worden alle providers teruggezet naar de operationele status.",
    "resetAllTitle": "Reset alle stroomonderbrekers naar de gezonde status",
    "resetting": "Resetten...",
    "resetAll": "Alles resetten",
    "until": "Tot {time}",
    "limitExhausted": "Exhausted",
    "learnedFromHeaders": "Learned from headers",
    "remainingOfLimit": "{remaining}/{limit} remaining",
    "throttleStatus": "Throttle: {value}",
    "lastHeaderUpdate": "Header update: {age}",
    "databaseHealth": "Databasestatus",
    "stickyBoundSessions": "Vastgebonden sessies",
    "sessionsByApiKey": "Sessies per API-sleutel",
    "noActiveSessionsTracked": "Er zijn nog geen actieve sessies bijgehouden.",
    "noSessionQuotaMonitorsActive": "Er zijn geen sessiequotamonitors actief.",
    "gracefulDegradationStatus": "Sierlijke degradatiestatus",
    "additionalModels": "+{count} meer modellen",
    "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": "Systeemtelemetrie",
    "description": "Rolling request-, runtime-, sessie- en geheugensignalen van dit OmniRoute-proces.",
    "uptime": "Uptime",
    "totalRequests": "Totaal aantal verzoeken",
    "avgLatency": "Gem. latentie",
    "errorRate": "Foutpercentage",
    "activeConnections": "Actieve verbindingen",
    "memoryUsage": "Geheugengebruik",
    "latencyTrend": "Latentietrend",
    "throughputTrend": "Doorvoertrend",
    "memoryTrend": "Geheugentrend",
    "refresh": "Vernieuwen",
    "updatedAt": "{time} bijgewerkt",
    "loadFailed": "Kan telemetrie niet laden.",
    "partialData": "Telemetrie is gedeeltelijk beschikbaar: {error}"
  },
  "mitm": {
    "title": "MITM-proxy",
    "description": "Transparante proxy voor het onderscheppen en routeren van klantverzoeken.",
    "enable": "MITM-proxy inschakelen",
    "enableDesc": "Start of stop het lokale onderscheppingsproces en de DNS-overschrijving.",
    "status": "Status",
    "running": "Rennen",
    "stopped": "Gestopt",
    "start": "Begin",
    "stop": "Stop",
    "refresh": "Vernieuwen",
    "port": "Proxy-poort",
    "apiKey": "Router-API-sleutel",
    "apiKeyPlaceholder": "Optioneel; valt terug op een lokale sleutel",
    "sudoPassword": "Sudo-wachtwoord",
    "cachedPassword": "Gecacht voor dit proces",
    "saveSettings": "Instellingen opslaan",
    "settingsSaved": "MITM-instellingen opgeslagen.",
    "startedSuccess": "MITM-proxy gestart.",
    "stoppedSuccess": "MITM-proxy gestopt.",
    "saveFailed": "Kan MITM-instellingen niet updaten.",
    "loadFailed": "Kan MITM-instellingen niet laden.",
    "invalidPort": "Voor transparante MITM-interceptie is momenteel poort 443 vereist.",
    "certificate": "CA-certificaat",
    "certificateReady": "Certificaat is beschikbaar voor installatie van clientvertrouwen.",
    "certificateMissing": "Certificaat is nog niet gegenereerd.",
    "available": "Beschikbaar",
    "missing": "Ontbreekt",
    "downloadCert": "CA-certificaat downloaden",
    "regenerateCert": "Certificaat opnieuw genereren",
    "regenerateConfirm": "Dit maakt het bestaande klantvertrouwen ongeldig. Doorgaan?",
    "regenerateSuccess": "MITM-certificaat opnieuw gegenereerd.",
    "regenerateFailed": "Kan het MITM-certificaat niet opnieuw genereren.",
    "targetRoutes": "Doelroutes",
    "interceptedRequests": "Onderschepte verzoeken",
    "activeConnections": "Actieve verbindingen",
    "dnsConfigured": "DNS geconfigureerd",
    "pid": "PID",
    "lastIntercept": "Laatste onderschepping",
    "target": "Doel",
    "host": "Gastheer",
    "localPort": "Lokale haven",
    "endpoints": "Eindpunten",
    "enabled": "Ingeschakeld",
    "configured": "Geconfigureerd",
    "yes": "Ja",
    "no": "Nee",
    "noTargets": "Geen doelroutes geconfigureerd."
  },
  "limits": {
    "title": "Limieten en quota's",
    "rateLimit": "Tarieflimiet",
    "remaining": "Resterend",
    "requestsPerMinute": "Verzoeken/min",
    "tokensPerMinute": "Munten/min",
    "dailyLimit": "Dagelijkse limiet"
  },
  "logs": {
    "title": "Logboeken",
    "requestLogs": "Logboeken aanvragen",
    "proxyLogs": "Proxylogboeken",
    "auditLog": "Auditlogboek",
    "console": "Console",
    "auditLogDesc": "Administratieve acties en beveiligingsgebeurtenissen",
    "loading": "Laden...",
    "refresh": "Vernieuwen",
    "filterByAction": "Filter op actie...",
    "filterByActor": "Filter op acteur...",
    "filterEntriesAria": "Filter auditlogboekvermeldingen",
    "filterByActionTypeAria": "Filter op actietype",
    "filterByActorAria": "Filter op acteur",
    "refreshAuditLogAria": "Vernieuw het auditlogboek",
    "tableAria": "Auditlogboekvermeldingen",
    "failedFetchAuditLog": "Kan het auditlogboek niet ophalen",
    "showing": "{count} items tonen (offset {offset})",
    "search": "Zoeken",
    "timestamp": "Tijdstempel",
    "action": "Actie",
    "actor": "Acteur",
    "target": "Doel",
    "details": "Details",
    "ipAddress": "IP-adres",
    "notAvailable": "—",
    "noEntries": "Geen auditlogboekvermeldingen gevonden",
    "previous": "Vorige",
    "next": "Volgende",
    "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": "Alles wissen",
    "confirmClearActiveRequests": "Alle actieve verzoeken wissen?",
    "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": "Welkom",
    "security": "Beveiliging",
    "test": "Testen",
    "ready": "Klaar!",
    "setPassword": "Wachtwoord instellen",
    "addProvider": "Voeg uw eerste provider toe",
    "getStarted": "Aan de slag",
    "skip": "Overslaan",
    "skipWizard": "Sla de wizard geheel over",
    "skipPassword": "Wachtwoordconfiguratie overslaan",
    "skipAndContinue": "Overslaan en doorgaan",
    "passwordLabel": "Wachtwoord",
    "confirmPassword": "Bevestig wachtwoord",
    "enterPassword": "Voer wachtwoord in",
    "confirmPasswordPlaceholder": "Bevestig wachtwoord",
    "passwordsMismatch": "Wachtwoorden komen niet overeen",
    "setupComplete": "Installatie voltooid!",
    "goToDashboard": "Ga naar Dashboard →",
    "welcomeDesc": "OmniRoute is uw lokale AI API-proxy. Het stuurt verzoeken door naar meerdere AI-providers met taakverdeling, failover en gebruiksregistratie.",
    "multiProvider": "Meerdere aanbieders",
    "usageTracking": "Gebruik volgen",
    "securityDesc": "Stel een wachtwoord in om uw dashboard te beschermen, of sla dit voorlopig over.",
    "providerDesc": "Sluit uw eerste AI-provider aan. Je kunt later meer toevoegen.",
    "apiKeyRequired": "API-sleutel (vereist)",
    "customUrlOptional": "Aangepaste URL (optioneel)",
    "testDesc": "Laten we controleren of uw providerverbinding werkt.",
    "runTest": "Voer de verbindingstest uit",
    "testingConnection": "Verbinding testen...",
    "connectionSuccessful": "Verbinding succesvol! Uw provider is er klaar voor.",
    "noProviderFound": "Geen aanbieder gevonden. U kunt er later een toevoegen via het dashboard.",
    "testFailed": "Test mislukt, maar u kunt dit later configureren.",
    "couldNotTest": "Kon nu niet testen. U kunt testen vanaf het dashboard.",
    "doneDesc": "Je bent helemaal klaar! Uw OmniRoute-instantie is geconfigureerd en klaar om AI-verzoeken te proxyeren.",
    "yourEndpoint": "Uw eindpunt:",
    "continue": "Ga door",
    "retry": "Opnieuw proberen",
    "failedSetPassword": "Kan wachtwoord niet instellen. Probeer het opnieuw.",
    "failedAddProvider": "Kan provider niet toevoegen. Probeer het opnieuw.",
    "connectionError": "Verbindingsfout. Probeer het opnieuw.",
    "provider": "Aanbieder",
    "apiKeyHelp": "Een API-sleutel is een wachtwoord voor AI-diensten. Haal er een op via de website van uw provider (bijvoorbeeld platform.openai.com, console.anthropic.com).",
    "tier": {
      "subtitle": "OmniRoute organiseert providers in drie niveaus, zodat routering de voorkeur geeft aan het meest betrouwbare en goedkoopste pad eerst.",
      "tier1": {
        "label": "Premium-klanten",
        "description": "Eersteklas CLI's met native authenticatiestromen en redeneermodellen."
      },
      "tier2": {
        "label": "Kostengeoptimaliseerd",
        "description": "Goedkope providers met hoge doorvoer die worden gebruikt voor het dagelijkse verkeer."
      },
      "tier3": {
        "label": "Terugval & specialiteit",
        "description": "Lokaal gehoste of speciale eindpunten die als fallback worden gebruikt."
      },
      "configure": "Configureer aanbieders"
    },
    "tierFlowDiagramAlt": "OmniRoute fallback-diagram met 3 niveaus",
    "apiKeyMgmt": "API-sleutelbeheer"
  },
  "providers": {
    "title": "Aanbieders",
    "allProviders": "Alle aanbieders",
    "audioProviders": "Audioproviders",
    "showFreeOnly": "Alleen gratis",
    "addProvider": "Aanbieder toevoegen",
    "addFirstProvider": "Voeg uw eerste provider toe",
    "addFirstProviderDesc": "Sluit een AI-provider aan om verzoeken via OmniRoute te routeren. U kunt gratis providers, API-sleutels of OAuth-accounts gebruiken.",
    "learnMore": "Meer informatie",
    "editProvider": "Aanbieder bewerken",
    "deleteProvider": "Aanbieder verwijderen",
    "noProviders": "Geen providers geconfigureerd",
    "modelAvailability": "Beschikbaarheid van modellen",
    "accounts": "Rekeningen",
    "newAccount": "Nieuw account",
    "deleteConfirm": "Weet u zeker dat u deze aanbieder wilt verwijderen?",
    "testing": "Testen...",
    "testConnection": "Verbinding testen",
    "testSuccess": "Verbinding succesvol",
    "testFailed": "Verbinding mislukt",
    "available": "Beschikbaar",
    "cooldown": "Afkoelen",
    "unavailable": "Niet beschikbaar",
    "unknown": "Onbekend",
    "oauthLabel": "OAuth",
    "compatibleLabel": "Compatibel",
    "chat": "Chatten",
    "responses": "Reacties",
    "messages": "Berichten",
    "oauthProviders": "OAuth-providers",
    "freeProviders": "Gratis aanbieders",
    "apiKeyProviders": "API-sleutelproviders",
    "compatibleProviders": "API-sleutel-compatibele providers",
    "testAll": "Alles testen",
    "testAllOAuth": "Test alle OAuth-verbindingen",
    "testAllFree": "Test alle vrije verbindingen",
    "testAllApiKey": "Test alle API Key-verbindingen",
    "testAllCompatible": "Test alle compatibele verbindingen",
    "connected": "{count} Verbonden",
    "errorCount": "{count} Fout ({code})",
    "errorCountNoCode": "{count} Fout",
    "warningCount": "{count} Waarschuwing",
    "noConnections": "Geen verbindingen",
    "expiredBadge": "Expired",
    "expiringSoonBadge": "Expiring Soon",
    "freeTier": "Gratis niveau",
    "freeTierAvailable": "Gratis niveau beschikbaar",
    "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": "Afgekeurd",
    "deprecatedProvider": "Deze aanbieder is beëindigd",
    "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": "Uitgeschakeld",
    "enableProvider": "Aanbieder inschakelen",
    "disableProvider": "Schakel aanbieder uit",
    "testResults": "Testresultaten",
    "noCompatibleYet": "Er zijn nog geen compatibele providers toegevoegd",
    "compatibleHint": "Gebruik de knoppen hierboven om OpenAI- of Anthropic-compatibele eindpunten toe te voegen",
    "addOpenAICompatible": "Voeg OpenAI-compatibel toe",
    "addAnthropicCompatible": "Antropisch compatibel toevoegen",
    "addNewProvider": "Nieuwe aanbieder toevoegen",
    "backToProviders": "Terug naar Aanbieders",
    "configureNewProvider": "Configureer een nieuwe AI-provider voor gebruik met uw toepassingen.",
    "providerLabel": "Aanbieder",
    "selectProvider": "Selecteer een aanbieder",
    "selectedProvider": "Geselecteerde aanbieder",
    "authMethod": "Authenticatiemethode",
    "apiKeyLabel": "API-sleutel",
    "apiKeyRequired": "API-sleutel is vereist",
    "selectProviderRequired": "Selecteer een aanbieder",
    "enterApiKey": "Voer uw API-sleutel in",
    "apiKeySecure": "Uw API-sleutel wordt gecodeerd en veilig opgeslagen.",
    "oauth2Connect": "Maak verbinding met OAuth2",
    "oauth2Label": "OAuth2",
    "oauth2Desc": "Verbind uw account met OAuth2-authenticatie.",
    "displayName": "Weergavenaam",
    "displayNamePlaceholder": "bijvoorbeeld productie-API, ontwikkelomgeving",
    "displayNameHint": "Optioneel. Een beschrijvende naam om deze configuratie te identificeren.",
    "active": "Actief",
    "activeDescription": "Schakel deze provider in voor gebruik in uw applicaties",
    "cancel": "Annuleer",
    "createProvider": "Aanbieder maken",
    "failedCreate": "Kan provider niet maken",
    "errorOccurred": "Er is een fout opgetreden. Probeer het opnieuw.",
    "modelStatus": "Modelstatus",
    "showConfiguredOnly": "Configured only",
    "allModelsOperational": "Alle modellen operationeel",
    "modelsWithIssues": "{count} model(len) met problemen",
    "allModelsNormal": "Alle modellen reageren normaal.",
    "cooldownCleared": "Afkoelperiode gewist voor {model}",
    "failedClearCooldown": "Kan de cooldown niet wissen",
    "loadingAvailability": "Beschikbaarheid van modellen laden...",
    "clearCooldown": "Duidelijk",
    "clearing": "Wissen...",
    "until": "Tot {time}",
    "providerTestFailed": "Providertest mislukt",
    "providerTestTimeout": "Provider test timed out — too many connections to test at once",
    "modeTest": "{mode} Testen",
    "passedCount": "{count} geslaagd",
    "failedCount": "{count} mislukt",
    "testedCount": "{count} getest",
    "millisecondsAbbr": "{value}ms",
    "okShort": "Oké",
    "errorShort": "FOUT",
    "noActiveConnectionsInGroup": "Er zijn geen actieve verbindingen gevonden voor deze groep.",
    "allTestsPassed": "Alle {total} tests zijn geslaagd",
    "testSummary": "{passed}/{total} geslaagd, {failed} mislukt",
    "nameLabel": "Naam",
    "prefixLabel": "Voorvoegsel",
    "baseUrlLabel": "Basis-URL",
    "apiTypeLabel": "API-type",
    "prefixHint": "Vereist. Uniek voorvoegsel voor modelnamen.",
    "nameHint": "Vereist. Een vriendelijk label voor dit knooppunt.",
    "baseUrlHint": "Vereist.  Basis-URL van de provider-API.",
    "anthropicPrefixPlaceholder": "ac-prod",
    "openaiPrefixPlaceholder": "oc-prod",
    "anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
    "openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
    "validateConnection": "Valideer verbinding",
    "validating": "Valideren...",
    "connectionValid": "Verbinding is geldig!",
    "connectionFailed": "Verbinding mislukt. Controleer URL en sleutel.",
    "testKeyLabel": "API-sleutel testen",
    "testKeyPlaceholder": "sk-... (alleen ter validatie)",
    "providerNotFound": "Aanbieder niet gevonden",
    "deleteConnectionConfirm": "Deze verbinding verwijderen?",
    "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": "Kan alias niet instellen",
    "failedSaveConnection": "Kan de verbinding niet opslaan",
    "failedSaveConnectionRetry": "Kan de verbinding niet opslaan. Probeer het opnieuw.",
    "failedRetestConnection": "Kan de verbinding niet opnieuw testen",
    "deleteCompatibleNodeConfirm": "Dit {type} compatibele knooppunt verwijderen?",
    "anthropicCompatibleDetails": "Antropische compatibele details",
    "openaiCompatibleDetails": "OpenAI-compatibele details",
    "messagesApi": "Berichten-API",
    "responsesApi": "Reacties-API",
    "embeddings": "Embeddings",
    "audioTranscriptions": "Audio Transcriptions",
    "audioSpeech": "Audio Speech",
    "imagesGenerations": "Images Generations",
    "chatCompletions": "Chat-voltooiingen",
    "importingModels": "Importeren...",
    "importFromModels": "Importeren uit /modellen",
    "modelsImported": "{count} models imported",
    "allModelsAlreadyImported": "Alle modellen zijn al geïmporteerd",
    "noNewModelsToImport": "Geen nieuwe modellen om te importeren — alle modellen staan al in het register of de lijst met aangepaste modellen",
    "skippingExistingModels": "{count} bestaande modellen overgeslagen",
    "autoSync": "Automatische synchronisatie",
    "autoSyncTooltip": "Modellijst automatisch elke 24 uur vernieuwen (configureerbaar via MODEL_SYNC_INTERVAL_HOURS)",
    "autoSyncEnabled": "Automatische synchronisatie ingeschakeld: modellen worden periodiek vernieuwd",
    "autoSyncDisabled": "Automatische synchronisatie uitgeschakeld",
    "autoSyncToggleFailed": "Kan automatische synchronisatie niet in- of uitschakelen",
    "clearAllModels": "Wis alle modellen",
    "clearAllModelsConfirm": "Weet u zeker dat u alle modellen voor deze aanbieder wilt verwijderen? Dit kan niet ongedaan worden gemaakt.",
    "clearAllModelsSuccess": "Alle modellen gewist",
    "clearAllModelsFailed": "Kan modellen niet wissen",
    "addConnectionToImport": "Voeg een verbinding toe om importeren mogelijk te maken.",
    "noModelsConfigured": "Geen modellen geconfigureerd",
    "connectionCount": "{count} verbinding(en)",
    "fetchingModels": "Beschikbare modellen ophalen...",
    "failedFetchModels": "Kan modellen niet ophalen",
    "noModelsFound": "Geen modellen gevonden",
    "importFailed": "Importeren is mislukt",
    "noNewModelsAdded": "Er zijn geen nieuwe modellen toegevoegd.",
    "adding": "Toevoegen...",
    "close": "Close",
    "importingModelsTitle": "Modellen importeren",
    "copyModel": "Kopieermodel",
    "filterModels": "Modellen filteren…",
    "modelsActive": "actief",
    "showModel": "Model tonen",
    "hideModel": "Model verbergen",
    "removeModel": "Model verwijderen",
    "rateLimitProtected": "Beschermd",
    "rateLimitUnprotected": "Onbeschermd",
    "enableRateLimitProtection": "Klik om de snelheidslimietbescherming in te schakelen",
    "disableRateLimitProtection": "Klik om de snelheidslimietbescherming uit te schakelen",
    "productionKey": "Productie sleutel",
    "enterNewApiKey": "Voer een nieuwe API-sleutel in",
    "codexApplyModalTitle": "Toepassen op de Lokale Codex",
    "codexApplyTargetLabel": "Doelpad",
    "codexApplyBackupLabel": "Back-ups",
    "codexApplyWarning": "Dit vervangt de bestaande auth.json. Doorgaan?",
    "codexApplyConfirmCheckbox": "Ik bevestig dat ik de bestaande auth.json wil vervangen",
    "codexApply": "Toepassen",
    "bulkTabSingle": "Enkel",
    "bulkTabBulkAdd": "Bulk toevoegen",
    "bulkAddFormatHint": "Eén sleutel per regel. Formaat: naam|apiKey of gewoon apiKey (automatisch benoemd door index).",
    "bulkValidateKeys": "Valideer elke sleutel voordat u deze opslaat (langzamer)",
    "bulkAddAllKeys": "Voeg alle sleutels toe",
    "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
    "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
    "optional": "Optioneel",
    "anthropicCompatibleName": "Antropisch compatibel",
    "openaiCompatibleName": "OpenAI-compatibel",
    "failedImportModels": "Kan modellen niet importeren",
    "noModelsReturnedFromEndpoint": "Er zijn geen modellen geretourneerd door het /models-eindpunt.",
    "importingModelsProgress": "Importeren van {current} van {total} modellen...",
    "foundModelsStartingImport": "{count} modellen gevonden. Importeren starten...",
    "importingModelById": "{modelId} importeren...",
    "importSuccessCount": "Succesvol geïmporteerd {count, plural, one {# model} other {# models}}!",
    "noNewModelsAddedExisting": "Er zijn geen nieuwe modellen toegevoegd (ze bestaan allemaal al).",
    "importDoneCount": "✓ Klaar! {count, plural, one {# model imported.} other {# models imported.}}",
    "unexpectedErrorOccurred": "Er is een onverwachte fout opgetreden",
    "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
    "messagesPath": "berichten",
    "responsesPath": "reacties",
    "chatCompletionsPath": "chat/voltooiingen",
    "add": "Toevoegen",
    "edit": "Bewerken",
    "delete": "Verwijderen",
    "anthropic": "Antropisch",
    "openai": "OpenAI",
    "singleConnectionPerCompatible": "Per compatibel knooppunt is slechts één verbinding toegestaan. Voeg nog een knooppunt toe als u meer verbindingen nodig heeft.",
    "connections": "Verbindingen",
    "providerProxyTitleConfigured": "Providerproxy: {host}",
    "configured": "geconfigureerd",
    "providerProxyConfigureHint": "Configureer proxy voor alle verbindingen van deze provider",
    "providerProxy": "Proxy van aanbieder",
    "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": "Nog geen verbindingen",
    "addFirstConnectionHint": "Voeg uw eerste verbinding toe om aan de slag te gaan",
    "addConnection": "Verbinding toevoegen",
    "availableModels": "Beschikbare modellen",
    "builtInModels": "Built-in models",
    "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
    "pageAutoRefresh": "Pagina wordt automatisch vernieuwd...",
    "statusDisabled": "uitgeschakeld",
    "statusConnected": "verbonden",
    "statusRuntimeIssue": "runtime-probleem",
    "statusAuthFailed": "verificatie is mislukt",
    "statusRateLimited": "tarief beperkt",
    "statusNetworkIssue": "netwerk probleem",
    "statusTestUnsupported": "test niet ondersteund",
    "statusUnavailable": "niet beschikbaar",
    "statusFailed": "mislukt",
    "statusError": "fout",
    "oauthAccount": "OAuth-account",
    "errorTypeRuntime": "Lokale looptijd",
    "errorTypeUpstreamAuth": "Upstream-auth",
    "errorTypeMissingCredential": "Ontbrekende legitimatie",
    "errorTypeRefreshFailed": "Vernieuwen mislukt",
    "errorTypeTokenExpired": "Token verlopen",
    "errorTypeRateLimited": "Tarief beperkt",
    "errorTypeUpstreamUnavailable": "Stroomopwaarts niet beschikbaar",
    "errorTypeNetworkError": "Netwerkfout",
    "errorTypeTestUnsupported": "Test niet ondersteund",
    "errorTypeUpstreamError": "Stroomopwaartse fout",
    "proxySourceGlobal": "Globaal",
    "proxySourceProvider": "Aanbieder",
    "proxySourceKey": "Sleutel",
    "proxyConfiguredBySource": "Proxy ({source}): {host}",
    "autoPriority": "Automatisch: {priority}",
    "proxy": "Proxy",
    "retestAuthentication": "Test de authenticatie opnieuw",
    "retest": "Opnieuw testen",
    "disableConnection": "Verbinding uitschakelen",
    "enableConnection": "Verbinding inschakelen",
    "reauthenticateConnection": "Authenticeer deze verbinding opnieuw",
    "proxyConfig": "Proxy-configuratie",
    "aliasExistsAlert": "Alias \"{alias}\" bestaat al. Gebruik een ander model of bewerk de bestaande alias.",
    "openRouterAnyModelHint": "OpenRouter ondersteunt elk model. Voeg modellen toe en maak aliassen voor snelle toegang.",
    "modelIdFromOpenRouter": "Model-ID (van OpenRouter)",
    "openRouterModelPlaceholder": "antropisch/claude-3-opus",
    "customModels": "Aangepaste modellen",
    "customModelsHint": "Voeg model-ID's toe die niet in de standaardlijst staan. Deze zullen beschikbaar zijn voor routering.",
    "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": "Quotum per model wisselen",
    "modelId": "Model-ID",
    "customModelPlaceholder": "bijv. gpt-4.5-turbo",
    "loading": "Laden...",
    "removeCustomModel": "Aangepast model verwijderen",
    "noCustomModels": "Er zijn nog geen aangepaste modellen toegevoegd.",
    "allSuggestedAliasesExist": "Alle voorgestelde aliassen bestaan al. Kies een ander model of verwijder conflicterende aliassen.",
    "failedSaveCustomModel": "Kan aangepast model niet opslaan",
    "modelAddedSuccess": "Model {modelId} is succesvol toegevoegd",
    "failedAddModelTryAgain": "Kan model niet toevoegen. Probeer het opnieuw.",
    "failedSaveImportedModel": "Kan het geïmporteerde model niet opslaan in de aangepaste database",
    "failedImportModelsTryAgain": "Kan modellen niet importeren. Probeer het opnieuw.",
    "failedRemoveModelFromDatabase": "Kan het model niet uit de database verwijderen",
    "modelRemovedSuccess": "Model succesvol verwijderd",
    "failedDeleteModelTryAgain": "Kan model niet verwijderen. Probeer het opnieuw.",
    "compatibleModelsDescription": "Voeg {type}-compatibele modellen handmatig toe of importeer ze vanaf het /models-eindpunt.",
    "anthropicCompatibleModelPlaceholder": "claude-3-opus-20240229",
    "openaiCompatibleModelPlaceholder": "gpt-4o",
    "apiKeyValidationFailed": "Validatie van API-sleutel mislukt. Controleer uw sleutel en probeer het opnieuw.",
    "addProviderApiKeyTitle": "Voeg {provider} API-sleutel toe",
    "checking": "Controleren...",
    "check": "Controleer",
    "valid": "Geldig",
    "invalid": "Ongeldig",
    "creating": "Creëren...",
    "validationChecksAnthropicCompatible": "Validatiecontroles {provider} door de API-sleutel te verifiëren.",
    "validationChecksOpenAiCompatible": "Validatiecontroles {provider} via /models op uw basis-URL.",
    "priorityLabel": "Prioriteit",
    "saving": "Opslaan...",
    "save": "Opslaan",
    "editConnection": "Verbinding bewerken",
    "accountName": "Accountnaam",
    "email": "E-mail",
    "healthCheckMinutes": "Gezondheidscontrole (min)",
    "healthCheckHint": "Proactief tokenvernieuwingsinterval. 0 = uitgeschakeld.",
    "selectAllModels": "Select all",
    "deselectAllModels": "Deselect all",
    "modelsActiveCount": "{active}/{total} active",
    "noModelsMatch": "No models match \"{filter}\"",
    "groupLabel": "Environment",
    "groupPlaceholder": "e.g. eKaizen, Personal",
    "failedTestConnection": "Kan de verbinding niet testen",
    "failed": "Mislukt",
    "leaveBlankKeepCurrentApiKey": "Laat dit leeg om de huidige API-sleutel te behouden.",
    "editCompatibleTitle": "Bewerk {type} Compatibel",
    "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
    "apiKeyForCheck": "API-sleutel (ter controle)",
    "compatibleProdPlaceholder": "{type} Compatibel (product)",
    "tokenRefreshed": "Token refreshed successfully",
    "tokenRefreshFailed": "Token refresh failed",
    "applyCodexAuthLocal": "Apply auth",
    "exportCodexAuthFile": "Export auth",
    "applyClaudeAuthLocal": "Autorisatie toepassen",
    "exportClaudeAuthFile": "Autorisatie exporteren",
    "importClaudeAuth": "Autorisatie importeren",
    "claudeApplyModalTitle": "Toepassen op lokale Claude Code",
    "claudeApplyTargetLabel": "Doelpad",
    "claudeApplyBackupLabel": "Back-ups",
    "claudeApplyMcpHint": "De bestaande MCP OAuth-status blijft behouden.",
    "claudeApplyWarning": "Dit vervangt de bestaande claudeAiOauth-sectie. Doorgaan?",
    "claudeApplyConfirmCheckbox": "Ik bevestig dat ik de bestaande claudeAiOauth-sectie wil vervangen",
    "claudeApply": "Toepassen",
    "claudeAuthAppliedLocal": "Claude-authenticatie lokaal toegepast",
    "claudeAuthApplyFailed": "Kan Claude-authenticatie niet lokaal toepassen",
    "claudeAuthExported": "Claude-authenticatiebestand geëxporteerd",
    "claudeAuthExportFailed": "Kan het Claude-authenticatiebestand niet exporteren",
    "claudeImportModalTitle": "Importeer Claude Auth",
    "claudeImportTabSingle": "Enkel",
    "claudeImportTabBulk": "Bulk",
    "claudeImportTabUpload": "Bestand uploaden",
    "claudeImportTabPaste": "Plak JSON",
    "claudeImportFileLabel": "Kies .credentials.json",
    "claudeImportPasteLabel": "Plak de JSON-inhoud",
    "claudeImportEmailLabel": "Account-e-mailadres",
    "claudeImportNameLabel": "Verbindingsnaam (optioneel)",
    "claudeImportOverwriteLabel": "Vervang bestaande verbinding als account al bestaat",
    "claudeImportSubmit": "Importeren",
    "claudeImportSuccess": "Claude-verbinding geïmporteerd",
    "claudeImportInvalidJson": "Kan het bestand niet parseren als JSON",
    "claudeImportInvalidShape": "Het bestand is geen geldige .credentials.json",
    "claudeImportDuplicate": "Account bestaat al. Schakel 'Bestaand vervangen' in om te overschrijven",
    "claudeImportIdentityUnverified": "Bootstrap kan het account niet verifiëren. Schakel 'Bestaand vervangen' in of geef een e-mailadres op.",
    "claudeImportFailed": "Kan Claude-authenticatie niet importeren",
    "claudeImportBulkModeUpload": "Bestanden uploaden",
    "claudeImportBulkModePaste": "Plak de JSON-array",
    "claudeImportBulkModeZip": "ZIP uploaden",
    "claudeImportBulkUploadHint": "Plaats of haal maximaal 50 .credentials.json-bestanden op (elk 256 KB, totaal 10 MB).",
    "claudeImportBulkPasteHint": "Plak een array met objecten: [{ json, name?, email? }, ...]",
    "claudeImportBulkZipHint": "ZIP met .json-vermeldingen. Max. 50 inzendingen, 10 MB uitgepakt.",
    "claudeImportBulkSubmit": "Importeer alles",
    "claudeImportBulkSuccess": "Geïmporteerde {count} Claude-verbindingen",
    "claudeImportBulkFailed": "Sommige vermeldingen konden niet worden geïmporteerd",
    "claudeImportBulkZipExtracting": "ZIP uitpakken...",
    "claudeImportBulkZipError": "Kan ZIP niet uitpakken",
    "applyGeminiAuthLocal": "Autorisatie toepassen",
    "exportGeminiAuthFile": "Autorisatie exporteren",
    "importGeminiAuth": "Autorisatie importeren",
    "geminiApplyModalTitle": "Toepassen op lokale Gemini CLI",
    "geminiApplyTargetLabel": "Doelpad",
    "geminiApplyBackupLabel": "Back-ups",
    "geminiApplyAccountsHint": "Het actieve account google_accounts.json wordt bijgewerkt zodat deze overeenkomt met deze verbinding.",
    "geminiApplyWarning": "Hiermee wordt de bestaande oauth_creds.json vervangen en google_accounts.json bijgewerkt. Doorgaan?",
    "geminiApplyConfirmCheckbox": "Ik bevestig dat ik de bestaande oauth_creds.json wil vervangen",
    "geminiApply": "Toepassen",
    "geminiAuthAppliedLocal": "Gemini-authenticatie lokaal toegepast",
    "geminiAuthApplyFailed": "Kan Gemini-authenticatie lokaal niet toepassen",
    "geminiAuthExported": "Gemini-authenticatiebestand geëxporteerd",
    "geminiAuthExportFailed": "Kan het Gemini-authenticatiebestand niet exporteren",
    "geminiImportModalTitle": "Importeer Gemini-auth",
    "geminiImportTabSingle": "Enkel",
    "geminiImportTabBulk": "Bulk",
    "geminiImportTabUpload": "Bestand uploaden",
    "geminiImportTabPaste": "Plak JSON",
    "geminiImportFileLabel": "Kies oauth_creds.json",
    "geminiImportPasteLabel": "Plak de JSON-inhoud",
    "geminiImportEmailLabel": "Account-e-mailadres",
    "geminiImportNameLabel": "Verbindingsnaam (optioneel)",
    "geminiImportOverwriteLabel": "Vervang bestaande verbinding als account al bestaat",
    "geminiImportSubmit": "Importeren",
    "geminiImportSuccess": "Gemini-verbinding succesvol geïmporteerd",
    "geminiImportInvalidJson": "Kan het bestand niet parseren als JSON",
    "geminiImportInvalidShape": "Het bestand is geen geldige oauth_creds.json",
    "geminiImportDuplicate": "Account bestaat al. Schakel 'Bestaand vervangen' in om te overschrijven",
    "geminiImportIdentityUnverified": "Kan identiteit van id_token niet verifiëren. Schakel 'Bestaand vervangen' in of geef een e-mailadres op.",
    "geminiImportFailed": "Kan Gemini-authenticatie niet importeren",
    "geminiImportBulkModeUpload": "Bestanden uploaden",
    "geminiImportBulkModePaste": "Plak de JSON-array",
    "geminiImportBulkModeZip": "ZIP uploaden",
    "geminiImportBulkUploadHint": "Plaats of haal maximaal 50 oauth_creds.json-bestanden op (elk 256 KB, totaal 10 MB).",
    "geminiImportBulkPasteHint": "Plak een array met objecten: [{ json, name?, email? }, ...]",
    "geminiImportBulkZipHint": "ZIP met oauth_creds.json-vermeldingen. Max. 50 inzendingen, 10 MB uitgepakt.",
    "geminiImportBulkSubmit": "Importeer alles",
    "geminiImportBulkSuccess": "Geïmporteerde {count} Gemini-verbindingen",
    "geminiImportBulkFailed": "Sommige vermeldingen konden niet worden geïmporteerd",
    "geminiImportBulkZipExtracting": "ZIP uitpakken...",
    "geminiImportBulkZipError": "Kan ZIP niet uitpakken",
    "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": "Autorisatie importeren",
    "codexImportModalTitle": "Codex-authenticatie importeren",
    "codexImportTabSingle": "Enkel",
    "codexImportTabBulk": "Bulk",
    "codexImportTabUpload": "Bestand uploaden",
    "codexImportTabPaste": "Plak JSON",
    "codexImportFileLabel": "Kies auth.json",
    "codexImportFileHint": "Selecteer het auth.json-bestand dat is geëxporteerd vanuit Codex of vanuit OmniRoute.",
    "codexImportPasteLabel": "Plak de JSON-inhoud",
    "codexImportEmailLabel": "Account-e-mailadres",
    "codexImportEmailHint": "Automatisch gedetecteerd uit het bestand; bewerk indien nodig.",
    "codexImportNameLabel": "Verbindingsnaam (optioneel)",
    "codexImportOverwriteLabel": "Vervang bestaande verbinding als account al bestaat",
    "codexImportSubmit": "Importeren",
    "codexImportSuccess": "Codex-verbinding geïmporteerd",
    "codexImportInvalidJson": "Kan het bestand niet parseren als JSON",
    "codexImportInvalidShape": "Het bestand is geen geldige Codex auth.json",
    "codexImportDuplicate": "Account bestaat al. Schakel 'Bestaand vervangen' in om te overschrijven",
    "codexImportFailed": "Kan Codex-authenticatie niet importeren",
    "codexImportDetectedEmail": "Gedetecteerd: {email}",
    "codexImportNoEmailDetected": "Geen e-mail gedetecteerd in bestand",
    "codexImportBulkModeUpload": "Bestanden uploaden",
    "codexImportBulkModePaste": "Lijst plakken",
    "codexImportBulkModeZip": "ZIP-archief",
    "codexImportBulkUploadHint": "Selecteer meerdere .json-bestanden of slepen en neerzetten",
    "codexImportBulkPasteHint": "JSON-array [ {...}, {...} ] of meerdere JSON's gescheiden door --- op een eigen regel",
    "codexImportBulkZipHint": "Upload een .zip met auth.json-bestanden (max. 50 bestanden, 10 MB)",
    "codexImportBulkSubmit": "Importeer {count} accounts",
    "codexImportBulkLimit": "Maximaal 50 bestanden per import",
    "codexImportBulkSuccess": "{count} geïmporteerd",
    "codexImportBulkFailed": "{count} mislukt",
    "codexImportBulkZipExtracting": "ZIP uitpakken...",
    "codexImportBulkZipError": "Kan ZIP niet uitpakken",
    "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": "Onderneming en 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": "Aanbieders van cloudagenten",
    "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": "Open t3.chat → DevTools → Applicatie → Lokale opslag → https://t3.chat, kopieer 'convex-session-id'. Open vervolgens DevTools → Netwerk en kopieer de volledige Cookie-header van elk chatverzoek. Plak beide waarden in de onderstaande velden.",
    "t3ChatWebCookiePlaceholder": "convexe-sessie-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": "Uw Google Cloud-project-ID. Vereist voor accounts met uitzonderingen. Voer uw GCP-project-ID in die u wilt gebruiken met Gemini CLI.",
    "geminiCliProjectIdLabel": "Google Cloud-project-ID",
    "geminiCliProjectIdPlaceholder": "mijn-gcp-project-id",
    "antigravityProjectIdHint": "Optionele overschrijving voor Antigravity Cloud Code-verzoeken. Laat dit veld leeg om het project te gebruiken dat tijdens Google OAuth is ontdekt.",
    "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": "mijn-gcp-project-id",
    "grokWebCookieHint": "Grok Web Cookie Hint",
    "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
    "herokuBaseUrlHint": "Heroku Base Url Hint",
    "hideEmail": "Hide Email",
    "imageProviders": "Image Providers",
    "videoProviders": "Videogeneratie",
    "embeddingRerankProviders": "Insluitingen en herrangschikking",
    "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": "Zoekaanbieders...",
    "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 niveau-aanbieders",
    "freeTierLabel": "Gratis niveau beschikbaar",
    "freeTierProvidersDesc": "Providers met gratis niveaus: sommige vereisen een API-sleutelaanmelding, andere hebben helemaal geen inloggegevens nodig.",
    "providerSummaryAll": "Totaal",
    "ideProviders": "IDE-providers",
    "ideProvidersDesc": "Editors met ingebouwd AI-abonnement. Gebruik de providerpagina om inloggegevens rechtstreeks vanuit de IDE-sleutelhanger te importeren.",
    "noIdeProviders": "Er zijn geen IDE-providers die overeenkomen met de huidige filters.",
    "providerDetailFastTierTooltip": "Pas de Codex Fast-laag standaard toe op alle Codex-verbindingen",
    "providerDetailFastDefaultLabel": "Snelle standaard",
    "providerDetailBrowserManualConnect": "Browser/handmatig verbinden",
    "providerDetailAuthUrl": "Verificatie-URL",
    "providerDetailCallbackUrl": "Terugbel-URL",
    "providerDetailValidClaudeCredentialsFile": "Geldig Claude-inloggegevensbestand",
    "providerDetailPathAutoDetectedAllOs": "Het pad wordt automatisch gedetecteerd per besturingssysteem (Linux/Mac/Windows).",
    "providerDetailMyClaudeAccountPlaceholder": "Mijn Claude-account",
    "providerDetailPathAutoDetected": "Het pad wordt automatisch gedetecteerd per besturingssysteem (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": "Deze providers gebruiken browserwebsessies, cookies of webtokens in plaats van API-sleutels. Open een provider om de vereiste sessiereferenties toe te voegen.",
    "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": "Onboarding-wizard voor providers",
    "onboardingWizardShort": "Onboarding-wizard",
    "onboardingWizardDescription": "Verbind API-sleutel-, op maat compatibele en OAuth-providers met validatie, persistentie en een onmiddellijke verbindingstest.",
    "onboardingStepType": "Typ",
    "onboardingStepProvider": "Aanbieder",
    "onboardingStepCredentials": "Referenties",
    "onboardingStepResult": "Resultaat",
    "onboardingTypeApiKeyTitle": "API-sleutelprovider",
    "onboardingTypeApiKeyText": "Gebruik ingebouwde providers zoals OpenAI, Anthropic, Gemini, Groq, Azure en meer.",
    "onboardingTypeCustomTitle": "Op maat compatibele provider",
    "onboardingTypeCustomText": "Maak een OpenAI-, Anthropic- of Claude Code-compatibel eindpunt en voeg de sleutel ervan toe.",
    "onboardingTypeOAuthTitle": "OAuth-provider",
    "onboardingTypeOAuthText": "Hergebruik de bestaande OAuth-, apparaatcode- of lokale importstromen voor coderingsproviders.",
    "onboardingChooseOAuthProvider": "Kies een OAuth-provider",
    "onboardingChooseApiKeyProvider": "Kies een API-sleutelprovider",
    "onboardingChooseProviderDescription": "Selecteer een provider, waarna de wizard u door de inloggegevens en het testen leidt.",
    "onboardingChangeType": "Type wijzigen",
    "onboardingChangeProvider": "Verander van aanbieder",
    "onboardingSearchProviders": "Zoekproviders…",
    "onboardingApiKeyOptional": "API-sleutel optioneel",
    "onboardingProviderConnected": "Aanbieder aangesloten",
    "onboardingProviderSavedWithWarnings": "Provider opgeslagen met waarschuwingen",
    "onboardingProviderFinished": "Onboarding van de provider is voltooid",
    "onboardingYourProviderConnection": "Uw providerverbinding",
    "onboardingTestPassed": "Test geslaagd",
    "onboardingTestFailed": "Test mislukt",
    "onboardingOpenProviderDetails": "Providergegevens openen",
    "onboardingTryInPlayground": "Probeer het in de speeltuin",
    "onboardingDefaultConnectionName": "{provider} Primair",
    "onboardingTestingConnection": "Providerverbinding testen…",
    "onboardingValidatingCredentials": "Inloggegevens valideren...",
    "onboardingSavingConnection": "Providerverbinding opslaan…",
    "onboardingProviderFailed": "Onboarding van provider is mislukt",
    "onboardingCreatingCompatibleProvider": "Compatibele provider maken…",
    "onboardingSavingCompatibleConnection": "Compatibele providerverbinding opslaan…",
    "onboardingCustomProviderFallbackName": "Aangepaste aanbieder",
    "onboardingCustomProviderFailed": "Onboarding van aangepaste provider is mislukt",
    "onboardingLoadingOAuthConnection": "OAuth-verbinding laden…",
    "onboardingOAuthNoConnectionFound": "OAuth is voltooid, maar er is geen providerverbinding gevonden.",
    "onboardingOAuthFailed": "OAuth-onboarding is mislukt",
    "onboardingAddProvider": "Voeg {provider} toe",
    "onboardingConnectionName": "Verbindingsnaam",
    "onboardingApiKeyOptionalLabel": "API-sleutel (optioneel)",
    "onboardingBaseUrlOverride": "Basis-URL overschrijven",
    "onboardingBaseUrlOverrideHint": "Optioneel. Opgeslagen als providerSpecificData.baseUrl.",
    "onboardingRegion": "Regio",
    "onboardingSearchCx": "Zoek CX / Engine-ID",
    "onboardingProviderSpecificIdPlaceholder": "Optionele providerspecifieke ID",
    "onboardingCustomUserAgent": "Aangepaste user-agent",
    "onboardingWorking": "Werken…",
    "onboardingValidateSaveTest": "Valideren, opslaan en testen",
    "onboardingBack": "Terug",
    "onboardingCreateCustomCompatibleProvider": "Maak een aangepaste compatibele provider",
    "onboardingCreateCustomCompatibleDescription": "De wizard maakt eerst een providerknooppunt en slaat vervolgens de API-sleutelverbinding op en test deze.",
    "onboardingProtocol": "Protocol",
    "onboardingOpenAiCompatible": "OpenAI-compatibel",
    "onboardingAnthropicCompatible": "Antropisch compatibel",
    "onboardingClaudeCodeCompatible": "Claude Code-compatibel",
    "onboardingProviderPrefix": "Voorvoegsel van aanbieder",
    "onboardingProviderPrefixHint": "Wordt gebruikt om de beheerde provider-ID te genereren.",
    "onboardingChatPath": "Chatpad",
    "onboardingModelsPath": "Modellen pad",
    "onboardingCreateSaveTest": "Creëer, bewaar en test",
    "onboardingConnectProvider": "Verbind {provider}",
    "onboardingOAuthFlowDescription": "OmniRoute opent de bestaande OAuth-stroom voor deze provider. Na het inloggen laadt de wizard de opgeslagen verbinding opnieuw en voert dezelfde verbindingstest uit als de providerpagina.",
    "onboardingStartOAuthFlow": "Start de OAuth-stroom",
    "passthroughModelsDescription": "{provider} accepteert provider-native model-ID's. Importeer uit /models of voeg aangepaste ID's toe voor routering.",
    "bedrockModelsDescription": "Amazon Bedrock-modellen zijn afgestemd op de AWS-regio. Importeer uit /models of voeg Bedrock-model-ID's toe die zijn ingeschakeld in de geselecteerde regio.",
    "bedrockModelPlaceholder": "antropisch.claude-sonnet-4-6",
    "addProviderSessionCookieTitle": "Voeg {provider} sessiecookie toe",
    "addProviderWebTokenTitle": "Voeg {provider} webtoken toe",
    "addProviderConnectionTitle": "Voeg {provider}-verbinding toe",
    "webTokenCredentialLabel": "Token voor websessie",
    "webNoAuthCredentialLabel": "Geen legitimatie vereist",
    "webCookieCredentialHint": "Vereist cookie: {credential}. Plak de Cookie-headerwaarde uit uw eigen ingelogde {provider} websessie. Voeg het voorvoegsel Cookie: niet toe.",
    "webTokenCredentialHint": "Inloggegevens: {credential}. Plak de tokenwaarde uit uw eigen ingelogde {provider} websessie, of uit een DevTools HAR-export als de provider dit ondersteunt.",
    "webCookieEditHint": "Laat dit leeg om de huidige sessiecookie te behouden. Vereist cookie: {credential}.",
    "webTokenEditHint": "Laat dit leeg om het huidige websessietoken te behouden. Inloggegevens: {credential}.",
    "webSessionGuideTitle": "Hoe u de sessiereferenties kunt verkrijgen",
    "webSessionGuideIntro": "{provider} gebruikt een browserwebsessie in plaats van een API-sleutel.",
    "webCookieRequiredCredential": "Vereist cookie: {credential}",
    "webTokenRequiredCredential": "Vereist token: {credential}",
    "webSessionGuideStep1": "Meld u aan bij {provider} in uw browser.",
    "webSessionGuideStep2": "Open de browserontwikkelaarstools en inspecteer een verzoek van de webapp.",
    "webSessionGuideStep3": "Kopieer de vereiste inloggegevens uit het eigen domein van de provider. Kopieer voor cookies alleen de waarde van de Cookie-header en laat Cookie: weg.",
    "webSessionGuideStep4": "Plak het hier en controleer de verbinding. Als het niet meer werkt, logt u opnieuw in en vervangt u het door een nieuwe waarde.",
    "webSessionSecurityHint": "Behandel dit als een wachtwoord: het heeft toegang tot uw ingelogde webaccount totdat het verloopt of wordt ingetrokken.",
    "webNoAuthGuideTitle": "Geen legitimatie vereist",
    "webNoAuthGuideBody": "{provider} heeft geen API-sleutel of cookie nodig. Sla de verbinding op om het gratis webeindpunt te gebruiken.",
    "webSessionCredentialValidationFailed": "Validatie van sessiegegevens is mislukt. Meld u opnieuw aan, kopieer een nieuwe referentie en probeer het opnieuw.",
    "checkCookie": "Controleer koekje",
    "checkWebToken": "Controleer token"
  },
  "settings": {
    "title": "Instellingen",
    "general": "Algemeen",
    "security": "Beveiliging",
    "appearance": "Uiterlijk",
    "routing": "Routering",
    "cache": "Cache",
    "resilience": "Veerkracht",
    "routingSettingsIntro": "Bepaalt hoe uw verzoeken worden gerouteerd, getransformeerd en verzonden naar AI-providers.",
    "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": "Automatisch opnieuw proberen, afkoelen en terugvallen als providers falen.",
    "aiSettingsIntro": "AI-specifieke instellingen voor denkbudget, modelgedrag en compressie.",
    "systemPrompt": "Systeemprompt",
    "thinkingBudget": "Denkbudget",
    "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": "Prijzen",
    "storage": "Opslag",
    "policies": "Beleid",
    "ipFilter": "IP-filter",
    "comboDefaults": "Combo-standaardinstellingen",
    "fallbackChains": "Terugvalketens",
    "changePassword": "Wachtwoord wijzigen",
    "enablePassword": "Wachtwoord inschakelen",
    "darkMode": "Donkere modus",
    "lightMode": "Lichtmodus",
    "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": "zojuist",
    "modelsDevStats": "Sync Statistics",
    "modelsDevStatsDesc": "Current models.dev data coverage",
    "providers": "Aanbieders",
    "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": "Systeem Thema",
    "debugToggle": "Enable Debug Mode",
    "sidebarVisibilityToggle": "Show Sidebar Items",
    "enableCache": "Cache inschakelen",
    "cacheTTL": "TTL cachen",
    "maxCacheSize": "Maximale cachegrootte",
    "clearCache": "Cache wissen",
    "cacheCleared": "Cache cleared successfully",
    "clearCacheFailed": "Failed to clear cache",
    "cacheHits": "Cache-hits",
    "cacheMisses": "Cache-missers",
    "hitRate": "Hitpercentage",
    "cacheEntries": "Cache-invoer",
    "cacheSettings": "Cache Settings",
    "semanticCache": "Semantic Cache",
    "maxEntries": "Max Entries",
    "ttlMinutes": "TTL (minutes)",
    "promptCache": "Snelle cache",
    "strategy": "Strategy",
    "preserveClientCache": "Preserve Client Cache",
    "enabled": "Enabled",
    "loading": "Loading...",
    "saving": "Opslaan...",
    "save": "Save",
    "circuitBreaker": "Stroomonderbreker",
    "retryPolicy": "Beleid voor opnieuw proberen",
    "maxRetries": "Maximaal aantal nieuwe pogingen",
    "retryDelay": "Vertraging opnieuw proberen",
    "timeoutMs": "Time-out (ms)",
    "enableSystemPrompt": "Systeemprompt inschakelen",
    "systemPromptText": "Systeemprompttekst",
    "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": "Deze pagina configureert alleen gedrag. De status van de live-breker wordt weergegeven op de Gezondheidspagina. Combo-specifieke nieuwe pogingen en round-robin slotcontrole blijven op de combo-instellingen staan.",
    "enableThinking": "Maak het denken mogelijk",
    "maxThinkingTokens": "Max Thinking-tokens",
    "enableProxy": "Schakel proxy in",
    "proxyUrl": "Proxy-URL",
    "pricingRates": "Formaat prijstarieven",
    "currentPricing": "Actueel prijsoverzicht",
    "loadingPricing": "Prijsgegevens laden...",
    "noPricing": "Geen prijsgegevens beschikbaar",
    "input": "Invoer",
    "output": "Uitvoer",
    "cached": "In cache opgeslagen",
    "reasoning": "Redenering",
    "cacheCreation": "Cache-creatie",
    "customPricing": "Aangepaste prijzen",
    "databaseSize": "Databasegrootte",
    "backupDb": "Back-updatabase",
    "restoreDb": "Database herstellen",
    "exportData": "Gegevens exporteren",
    "importData": "Gegevens importeren",
    "clearData": "Wis alle gegevens",
    "clearDataConfirm": "Hierdoor worden alle gegevens definitief verwijderd. Weet je het zeker?",
    "enableRequestLogs": "Schakel aanvraaglogboeken in",
    "logRetention": "Logboekbehoud",
    "ipWhitelist": "IP-witte lijst",
    "ipBlacklist": "IP-zwarte lijst",
    "addIP": "IP toevoegen",
    "savedSuccessfully": "Instellingen succesvol opgeslagen",
    "ai": "AI",
    "advanced": "Geavanceerd",
    "localMode": "Lokale modus — Alle gegevens die op uw machine zijn opgeslagen",
    "settingsSectionsAria": "Instellingensecties",
    "switchThemes": "Wissel tussen lichte en donkere thema's",
    "themeSelectionAria": "Thema selectie",
    "themeLight": "Licht",
    "themeDark": "Donker",
    "themeSystem": "Systeem",
    "endpointTunnelVisibility": "Zichtbaarheid van eindpunttunnels",
    "endpointTunnelVisibilityDesc": "Verberg tunnelbesturingselementen op de pagina Eindpunt zonder de tunnelstatus te wijzigen.",
    "showCloudflareTunnel": "Cloudflare snelle tunnel",
    "showCloudflareTunnelDesc": "Toon Cloudflare Quick Tunnel-besturingselementen op de Endpoint-pagina.",
    "showTailscaleFunnel": "Staartschaal trechter",
    "showTailscaleFunnelDesc": "Toon Tailscale Funnel-besturingselementen op de eindpuntpagina.",
    "showNgrokTunnel": "ngrok-tunnel",
    "showNgrokTunnelDesc": "Toon ngrok Tunnel-besturingselementen op de eindpuntpagina.",
    "sidebarVisibility": "Hide sidebar items",
    "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
    "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
    "hideHealthLogs": "Statuschecklogboeken verbergen",
    "hideHealthLogsDesc": "Indien AAN: onderdruk [HealthCheck]-berichten in de serverconsole",
    "themeAccent": "Themakleur",
    "themeAccentDesc": "Kies een vooraf ingestelde kleur of maak je eigen thema met één kleur",
    "themeCreate": "Thema maken",
    "themeCustom": "Aangepast thema",
    "themeBlue": "Blauw",
    "themeRed": "Rood",
    "themeGreen": "Groen",
    "themeViolet": "Violet",
    "themeOrange": "Oranje",
    "themeCyan": "Cyaan",
    "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": "Cache leegmaken",
    "flushing": "Doorspoelen…",
    "size": "Grootte",
    "hits": "Hits",
    "evictions": "Uitzettingen",
    "loadingCacheStats": "Cachestatistieken laden…",
    "globalProxy": "Mondiale proxy",
    "globalProxyDesc": "Configureer een globale uitgaande proxy voor alle API-aanroepen. Individuele providers, combo's en sleutels kunnen dit overschrijven.",
    "noGlobalProxy": "Geen globale proxy geconfigureerd",
    "globalLabel": "Globaal",
    "configure": "Configureer",
    "globalSystemPrompt": "Globale systeemprompt",
    "saved": "Opgeslagen",
    "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} tekens",
    "thinkingBudgetTitle": "Denkbudget",
    "thinkingBudgetDesc": "Beheer het gebruik van AI-redeneringstokens voor alle verzoeken",
    "passthrough": "Doorvoer",
    "passthroughDesc": "Geen wijzigingen – de klant bepaalt het denkbudget",
    "auto": "Automatisch",
    "autoDesc": "Verwijder alle denkconfiguraties – laat de provider beslissen",
    "custom": "Aangepast",
    "customDesc": "Stel een vast tokenbudget in voor alle verzoeken",
    "adaptive": "Adaptief",
    "adaptiveDesc": "Schaal het budget op basis van de complexiteit van de aanvraag",
    "effortNone": "Geen (0 tokens)",
    "effortLow": "Laag (1K-tokens)",
    "effortMedium": "Medium (10K-tokens)",
    "effortHigh": "Hoog (128K tokens)",
    "tokenBudget": "Tokenbudget",
    "tokens": "tokens",
    "baseEffortLevel": "Basisinspanningsniveau",
    "adaptiveHint": "De adaptieve modus schaalt vanaf dit basisniveau op basis van het aantal berichten, het gebruik van tools en de lengte van de prompt.",
    "requireLogin": "Inloggen vereisen",
    "requireLoginDesc": "Indien AAN vereist het dashboard een wachtwoord. Wanneer UIT: toegang zonder inloggen.",
    "currentPassword": "Huidig wachtwoord",
    "enterCurrentPassword": "Voer het huidige wachtwoord in",
    "newPassword": "Nieuw wachtwoord",
    "enterNewPassword": "Voer een nieuw wachtwoord in",
    "confirmPassword": "Bevestig nieuw wachtwoord",
    "confirmPasswordPlaceholder": "Bevestig nieuw wachtwoord",
    "passwordsNoMatch": "Wachtwoorden komen niet overeen",
    "passwordUpdated": "Wachtwoord succesvol bijgewerkt",
    "failedUpdatePassword": "Kan wachtwoord niet updaten",
    "errorOccurred": "Er is een fout opgetreden",
    "updatePassword": "Wachtwoord bijwerken",
    "setPassword": "Wachtwoord instellen",
    "apiEndpointProtection": "API-eindpuntbeveiliging",
    "requireAuthModels": "API-sleutel vereisen voor /models",
    "requireAuthModelsDesc": "Indien AAN, retourneert het /v1/models eindpunt 404 voor niet-geverifieerde verzoeken. Voorkomt modeldetectie door ongeautoriseerde gebruikers.",
    "authModelHeading": "Actief autorisatiemodel",
    "authModelClient": "Client-API-eindpunten (/v1/*, /chat/*, /responses/*, /codex/*, /messages/*) vereisen een Bearer API-sleutel.",
    "authModelManagement": "Voor beheereindpunten (/dashboard, /api/*) is een dashboardsessie of beheerreferentie vereist.",
    "authModelPublic": "Alleen login-, gezondheids- en bootstraproutes zijn openbaar.",
    "bruteForceProtection": "Bescherming tegen brute kracht bij inloggen",
    "bruteForceProtectionDesc": "Beperk en vergrendel /api/auth/login na herhaalde fouten vanaf hetzelfde IP-adres.",
    "corsAllowedOrigins": "CORS stond oorsprong toe",
    "corsAllowedOriginsDesc": "Door komma's gescheiden lijst met browseroorsprongen die deze server mogen aanroepen. Lege lijst = geen browser CORS-toegang (server-naar-server werkt nog steeds). Gebruik CORS_ALLOW_ALL=true env var alleen voor ontwikkeling.",
    "blockedProviders": "Geblokkeerde aanbieders",
    "blockedProvidersDesc": "Verberg specifieke providers in het antwoord /v1/models. Geblokkeerde aanbieders verschijnen niet in modeloverzichten.",
    "providersBlocked": "{count} provider(s) geblokkeerd voor /models",
    "blockProviderTitle": "Blokkeer {provider}",
    "unblockProviderTitle": "Deblokkeer {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": "Systeemblok-transformatiepijplijn",
    "systemTransformsDesc": "Per provider bestelde pijplijn met transformaties die op de aanvraagtekst worden toegepast voordat deze wordt doorgestuurd. Ondersteunt elke provider-ID.",
    "systemTransformsAddProvider": "Aanbieder toevoegen",
    "systemTransformsAddProviderPlaceholder": "Selecteer een aanbieder…",
    "systemTransformsAddProviderAllConfigured": "Alle providers zijn al geconfigureerd",
    "systemTransformsRemoveProvider": "Aanbieder verwijderen",
    "systemTransformsNoProviders": "Geen providers geconfigureerd. Voeg een provider toe om aan de slag te gaan.",
    "systemTransformsOpMoveUp": "Ga omhoog",
    "systemTransformsOpMoveDown": "Ga naar beneden",
    "systemTransformsOpDelete": "Verwijder op",
    "routingStrategy": "Routeringsstrategie",
    "routingAdvancedGuideTitle": "Geavanceerde routebegeleiding",
    "routingAdvancedGuideHint1": "Gebruik Fill First voor voorspelbare prioriteit, Round Robin voor eerlijkheid en P2C voor latency-veerkracht.",
    "routingAdvancedGuideHint2": "Als aanbieders variëren in kwaliteit/kosten, begin dan met Kosten Opt voor achtergrondwerk en Minst Gebruikt voor evenwichtige slijtage.",
    "fillFirst": "Vul eerst",
    "fillFirstDesc": "Gebruik accounts in prioriteitsvolgorde",
    "roundRobin": "Ronde Robin",
    "roundRobinDesc": "Blader door alle accounts",
    "p2c": "P2C",
    "p2cDesc": "Kies er 2 willekeurig, gebruik de gezondere",
    "random": "Willekeurig",
    "randomDesc": "Willekeurig account bij elk verzoek",
    "leastUsed": "Minst gebruikt",
    "leastUsedDesc": "Kies het minst recent gebruikte account",
    "costOpt": "Kosten opt",
    "costOptDesc": "Geef de voorkeur aan het goedkoopste beschikbare account",
    "resetAware": "Reset-bewuste RR",
    "resetAwareDesc": "Geef de voorkeur aan accounts met een gezond resterend quotum en een bijna-reset",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
    "stickyLimit": "Kleverige limiet",
    "stickyLimitDesc": "Gesprekken per account voordat u overstapt",
    "modelAliases": "Modelaliassen",
    "modelAliasesTitle": "Model Aliases",
    "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
    "addCustomAlias": "Aangepast Alias Toevoegen",
    "deprecatedModelId": "Verouderd model-ID",
    "newModelId": "Nieuw model-ID",
    "customAliases": "Aangepaste Aliases",
    "builtInAliases": "Ingebouwde Aliases",
    "backgroundDegradationTitle": "Achtergrondtaak Degradatie",
    "backgroundDegradationDesc": "Detecteert automatisch achtergrondtaken (titels, samenvattingen) en routeert naar goedkopere modellen",
    "enableDegradation": "Achtergrond Degradatie Inschakelen",
    "enableDegradationHint": "Wanneer ingeschakeld, worden achtergrondtaken zoals titelgeneratie en samenvattingen automatisch naar goedkopere modellen gerouteerd",
    "tasksDetected": "Taken gedetecteerd",
    "degradationMap": "Model Degradatie Kaart",
    "premiumModel": "Premium model",
    "cheapModel": "Goedkoop model",
    "detectionPatterns": "Detectiepatronen",
    "newPattern": "bijv. \"genereer een titel\"",
    "aliasPatternPlaceholder": "claude-sonnet-*",
    "aliasTargetPlaceholder": "claude-sonnet-4-20250514",
    "pattern": "Patroon",
    "targetModel": "Doelmodel",
    "add": "+ Toevoegen",
    "session": "Sessie",
    "sessionDetailsAria": "Sessiedetails",
    "status": "Status",
    "authenticated": "Geauthenticeerd",
    "guest": "Gast",
    "loginTime": "Inlogtijd",
    "sessionAge": "Sessie leeftijd",
    "browser": "Browser",
    "clearLocalData": "Lokale gegevens wissen",
    "logout": "Uitloggen",
    "clearLocalDataConfirm": "Alle lokale gegevens wissen? Hiermee worden uw voorkeuren opnieuw ingesteld.",
    "unknown": "Onbekend",
    "systemActor": "systeem",
    "ipAccessControl": "IP-toegangscontrole",
    "ipAccessControlDesc": "Blokkeer of sta specifieke IP-adressen toe",
    "ipModeDisabled": "Uitgeschakeld",
    "ipModeBlacklist": "Zwarte lijst",
    "ipModeWhitelist": "Witte lijst",
    "ipModeWhitelistPriority": "WL-prioriteit",
    "addIpAddress": "IP-adres toevoegen",
    "ipAddressPlaceholder": "192.168.1.0/24 of 10.0.*.*",
    "block": "+ Blok",
    "allow": "+ Toestaan",
    "blocked": "Geblokkeerd ({count})",
    "allowed": "Toegestaan ({count})",
    "temporaryBans": "Tijdelijke verbanningen ({count})",
    "minLeft": "{min}m over",
    "auditLog": "Auditlogboek",
    "searchAuditLogs": "Auditlogboeken zoeken...",
    "failedLoadAuditLog": "Kan het auditlogboek niet laden",
    "noAuditEvents": "Geen auditgebeurtenissen gevonden",
    "action": "Actie",
    "actor": "Acteur",
    "details": "Details",
    "time": "Tijd",
    "fallbackChainsTitle": "Terugvalketens",
    "fallbackChainsDesc": "Definieer de terugvalvolgorde van de provider per model",
    "addChain": "+ Ketting toevoegen",
    "modelName": "Modelnaam",
    "modelNamePlaceholder": "claude-sonnet-4-20250514",
    "providersCommaSeparated": "Providers (door komma's gescheiden, in prioriteitsvolgorde)",
    "providersCommaSeparatedPlaceholder": "antropisch, openai, gemini",
    "createChain": "Creëer keten",
    "noFallbackChains": "Geen terugvalketens",
    "noFallbackChainsDesc": "Maak een keten om de terugvalvolgorde van de provider voor een model te definiëren.",
    "loadingFallbackChains": "Terugvalketens laden...",
    "deleteChainConfirm": "Terugvalketen voor \"{model}\" verwijderen?",
    "chainCreated": "Keten gemaakt voor {model}",
    "chainDeleted": "Keten verwijderd voor {model}",
    "failedCreateChain": "Kan keten niet maken",
    "failedDeleteChain": "Kan keten niet verwijderen",
    "deleteChain": "Ketting verwijderen",
    "fillModelAndProviders": "Vul de modelnaam en leveranciers in",
    "addAtLeastOneProvider": "Voeg ten minste één aanbieder toe",
    "comboDefaultsTitle": "Combo-standaardinstellingen",
    "comboDefaultsGuideTitle": "Combo-standaardinstellingen afstemmen",
    "comboDefaultsGuideHint1": "Houd het aantal nieuwe pogingen laag bij stromen met lage latentie; verhoog de time-out alleen voor lange generatietaken.",
    "comboDefaultsGuideHint2": "Gebruik provideroverschrijvingen wanneer een provider ander time-out/opnieuw gedrag nodig heeft dan de algemene standaardwaarden.",
    "globalComboConfig": "Globale combo-configuratie",
    "defaultStrategy": "Standaardstrategie",
    "defaultStrategyDesc": "Toegepast op nieuwe combo's zonder expliciete strategie",
    "comboStrategyAria": "Combinatiestrategie",
    "priority": "Prioriteit",
    "weighted": "Gewogen",
    "contextRelay": "Context Relay",
    "contextRelayDesc": "Hands off context between providers with automatic summarization",
    "maxRetriesLabel": "Maximaal aantal nieuwe pogingen",
    "retryDelayLabel": "Vertraging opnieuw proberen (ms)",
    "timeoutLabel": "Time-out (ms)",
    "healthCheck": "Gezondheidscontrole",
    "healthCheckDesc": "Controleer vooraf de beschikbaarheid van de provider",
    "trackMetrics": "Houd statistieken bij",
    "trackMetricsDesc": "Registreer verzoekstatistieken per combinatie",
    "providerOverrides": "Provideroverschrijvingen",
    "providerOverridesDesc": "Time-out en nieuwe pogingen per provider negeren. Providerinstellingen overschrijven de algemene standaardwaarden.",
    "providerMaxRetriesAria": "{provider} max. nieuwe pogingen",
    "providerTimeoutAria": "{provider} time-out ms",
    "removeProviderOverrideAria": "Verwijder de overschrijving van {provider}",
    "newProviderNamePlaceholder": "bijv. google, open...",
    "newProviderNameAria": "Nieuwe providernaam",
    "retries": "nieuwe pogingen",
    "ms": "mevrouw",
    "saveComboDefaults": "Bewaar combo-standaardinstellingen",
    "maxNestingDepth": "Maximale nestdiepte",
    "concurrencyPerModel": "Gelijktijdigheid / model",
    "queueTimeout": "Wachtrijtime-out (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": "Providerprofielen",
    "providerProfilesDesc": "Afzonderlijke veerkrachtinstellingen voor OAuth (sessiegebaseerd) en API Key (gemeten) providers. OAuth-providers hanteren strengere drempels vanwege lagere tarieflimieten.",
    "oauthProviders": "OAuth-providers",
    "apiKeyProviders": "API-sleutelproviders",
    "transientCooldown": "Tijdelijke afkoeling",
    "rateLimitCooldown": "Afkoelperiode van snelheidslimiet",
    "maxBackoffLevel": "Maximaal uitstelniveau",
    "cbThreshold": "CB-drempel",
    "cbResetTime": "CB-resettijd",
    "rateLimiting": "Tariefbeperking",
    "rateLimitingDesc": "API-sleutelproviders zijn automatisch beperkt in snelheid met veilige standaardinstellingen. Limieten worden geleerd uit antwoordheaders en worden in de loop van de tijd aangepast.",
    "defaultSafetyNet": "Standaard veiligheidsnet",
    "rpm": "toerental",
    "minGap": "Min. kloof",
    "maxConcurrent": "Maximaal gelijktijdig",
    "activeLimiters": "Actieve begrenzers",
    "noActiveLimiters": "Nog geen actieve snelheidsbegrenzers.",
    "reservoir": "Reservoir",
    "running": "Rennen",
    "queued": "In de wachtrij",
    "circuitBreakers": "Stroomonderbrekers",
    "breakerStateClosed": "Gesloten",
    "breakerStateOpen": "Openen",
    "breakerStateHalfOpen": "Halfopen",
    "tripped": "{count} is geactiveerd",
    "healthy": "{count} gezond",
    "resetAll": "Alles resetten",
    "noCircuitBreakers": "Er zijn nog geen stroomonderbrekers actief. Ze worden automatisch gemaakt wanneer aanvragen via de combo-pijplijn stromen.",
    "failures": "{count} fout(en)",
    "policiesLocked": "Beleid en vergrendelde identificatiegegevens",
    "allOperational": "Alle systemen operationeel — geen vergrendelingen of geactiveerde onderbrekers",
    "loadingPolicies": "Beleid laden...",
    "lockedIdentifiers": "Vergrendelde identificatiegegevens",
    "unlockedIdentifier": "Ontgrendeld: {identifier}",
    "sinceDate": "sinds {date}",
    "forceUnlock": "Forceer ontgrendeling",
    "unlocking": "Ontgrendelen...",
    "failedUnlock": "Ontgrendelen is mislukt",
    "failedLoadWithStatus": "Kan niet laden: {status}",
    "failedLoadResilience": "Kan de veerkrachtstatus niet laden",
    "saveFailed": "Opslaan mislukt",
    "resetFailed": "Resetten mislukt",
    "loadingResilience": "Veerkrachtstatus laden...",
    "retry": "Opnieuw proberen",
    "systemStorage": "Systeem en opslag",
    "allDataLocal": "Alle gegevens lokaal opgeslagen op uw machine",
    "databasePath": "Databasepad",
    "exportDatabase": "Database exporteren",
    "exportAll": "Alles exporteren (.tar.gz)",
    "importDatabase": "Database importeren",
    "confirmDbImport": "Bevestig database-import",
    "confirmDbImportDesc": "Hierdoor worden alle huidige gegevens vervangen door de inhoud van {file}. Er wordt automatisch een back-up gemaakt vóór de import.",
    "yesImport": "Ja, importeren",
    "lastBackup": "Laatste back-up",
    "noBackupYet": "Nog geen back-up",
    "backupNow": "Maak nu een back-up",
    "backupRestore": "Back-up en herstel",
    "viewBackups": "Back-ups bekijken",
    "hide": "Verbergen",
    "backupRetentionDesc": "Database-snapshots worden automatisch gemaakt vóór herstel en elke 15 minuten wanneer gegevens veranderen. Retentie: 24 uur per dag + 30 dagelijkse back-ups met slimme rotatie.",
    "loadingBackups": "Back-ups laden...",
    "noBackupsYet": "Er zijn nog geen back-ups beschikbaar. Er worden automatisch back-ups gemaakt als gegevens veranderen.",
    "backupsAvailable": "{count} back-up(s) beschikbaar",
    "refresh": "Vernieuwen",
    "confirm": "Bevestigen?",
    "yes": "Ja",
    "no": "Nee",
    "restore": "Herstellen",
    "invalidFileType": "Ongeldig bestandstype. Alleen .sqlite-bestanden worden geaccepteerd.",
    "exportFailed": "Exporteren is mislukt",
    "exportFailedWithError": "Exporteren mislukt: {error}",
    "fullExportFailedWithError": "Volledige export mislukt: {error}",
    "backupCreated": "Back-up gemaakt: {file}",
    "restoreSuccess": "Hersteld! {connections} verbindingen, {nodes} knooppunten, {combos} combo's, {apiKeys} API-sleutels.",
    "importSuccess": "Database geïmporteerd! {connections} verbindingen, {nodes} knooppunten, {combos} combo's, {apiKeys} API-sleutels.",
    "minutesAgo": "{count}m geleden",
    "hoursAgo": "{count}u geleden",
    "daysAgo": "{count}d geleden",
    "backupReasonManual": "handleiding",
    "backupReasonPreRestore": "vooraf herstellen",
    "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
    "noChangesSinceBackup": "Geen wijzigingen sinds de laatste back-up",
    "backupFailed": "Back-up mislukt",
    "restoreFailed": "Herstellen mislukt",
    "importFailed": "Importeren is mislukt",
    "errorDuringRestore": "Er is een fout opgetreden tijdens het herstellen",
    "errorDuringImport": "Er is een fout opgetreden tijdens het importeren",
    "modelPricing": "Modelprijzen",
    "modelPricingDesc": "Kostentarieven per model configureren • Alle tarieven in $/1M tokens",
    "registry": "Register",
    "priced": "Geprijsd",
    "searchProvidersModels": "Zoekaanbieders of modellen...",
    "showAll": "Toon alles",
    "noProvidersMatch": "Er zijn geen aanbieders die overeenkomen met uw zoekopdracht.",
    "howPricingWorks": "Hoe prijzen werken",
    "cacheWrite": "Cache schrijven",
    "unsaved": "niet opgeslagen",
    "resetDefaults": "Standaardwaarden opnieuw instellen",
    "saveProvider": "Aanbieder opslaan",
    "model": "Model",
    "models": "modellen",
    "moreProviders": "{count} meer aanbieders",
    "withPricing": "met geconfigureerde prijzen",
    "policiesCircuitBreakers": "Beleid en stroomonderbrekers",
    "activeIssuesDetected": "Actieve problemen gedetecteerd",
    "off": "Uit",
    "resetPricingConfirm": "Alle prijzen voor {provider} terugzetten naar de standaardwaarden?",
    "pricingDescInput": "Invoer: tokens verzonden naar het model",
    "pricingDescOutput": "Uitvoer: tokens gegenereerd",
    "pricingDescCached": "In cache opgeslagen: hergebruikte invoer (~50% van invoersnelheid)",
    "pricingDescReasoning": "Redeneren: denktokens (valt terug naar Output)",
    "pricingDescCacheWrite": "Cache Write: cache-items maken (valt terug naar Input)",
    "pricingDescFormula": "Kosten = (invoer × invoer_snelheid) + (uitvoer × uitvoer_snelheid) + (in cache opgeslagen × in cache opgeslagen_snelheid) per miljoen tokens.",
    "pricingSettingsTitle": "Prijsinstellingen",
    "totalModels": "Totaal modellen",
    "active": "Actief",
    "costCalculation": "Kostenberekening",
    "costCalculationDesc": "De kosten worden berekend op basis van tokengebruik en prijstarieven die voor elk model zijn geconfigureerd.",
    "pricingFormat": "Prijsformaat",
    "pricingFormatDesc": "Alle tarieven zijn in $/1 miljoen tokens (dollars per miljoen tokens).",
    "tokenTypes": "Tokentypen",
    "inputTokenDesc": "Standaard prompttokens",
    "outputTokenDesc": "Voltooiing/antwoordtokens",
    "cachedTokenDesc": "Invoertokens in cache (meestal 50% van invoersnelheid)",
    "reasoningTokenDesc": "Speciale redeneer-/denkfiches (terugval op uitvoersnelheid)",
    "cacheCreationTokenDesc": "Tokens die worden gebruikt om cache-items te maken (terugval op invoersnelheid)",
    "customPricingNote": "U kunt de standaardprijzen voor specifieke modellen overschrijven. Aangepaste overschrijvingen hebben voorrang op automatisch gedetecteerde prijzen.",
    "editPricing": "Prijzen bewerken",
    "viewFullDetails": "Bekijk volledige details",
    "themeCoral": "Koraal",
    "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": "Kan de prijzen niet wissen: {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": "Kan de prijzen niet opnieuw instellen: {reason}",
    "tab": "Tab",
    "pricingSavedProvider": "Prijzen opgeslagen voor {provider}",
    "pricingSyncFailed": "Pricing Sync Failed",
    "pricingSaveFailedWithReason": "Kan prijzen niet opslaan: {reason}",
    "pricingResetProvider": "Prijsreset voor {provider}",
    "nextSync": "Next Sync",
    "pricingSyncFailedWithReason": "Synchronisatie van prijzen mislukt: {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": "Agressieve motorconfiguratie",
    "compressionAggressiveConfigDesc": "Verfijn de samenvatting, gereedschapscompressie en verouderingsdrempels",
    "compressionUltraConfig": "Ultra-motorconfiguratie",
    "compressionUltraConfigDesc": "Verfijn heuristisch snoeien, SLM-fallback en drempelwaarden per bericht",
    "compressionUltraRate": "Houd koers",
    "compressionUltraMinScore": "Minimale scoredrempel",
    "compressionUltraSlmFallback": "Terugval naar agressief",
    "compressionUltraModelPath": "SLM-modelpad",
    "compressionSummarizerEnabled": "Schakel Samenvattend in",
    "compressionMaxTokensPerMessage": "Max. aantal tokens per bericht",
    "compressionMinSavings": "Minimale besparingsdrempel",
    "compressionAgingThresholds": "Verouderingsdrempels",
    "compressionAgingThresholdsDesc": "Aantal recente berichten dat op elke verouderingslaag wordt bewaard (hoger = beter bewaard)",
    "compressionToolStrategies": "Tool Resultaatstrategieën",
    "compressionToolStrategiesDesc": "Schakel compressiestrategieën in voor verschillende typen toolresultaten",
    "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": "minuten",
    "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": "Optioneel",
    "current": "Huidig",
    "remove": "Verwijderen",
    "search": "Zoeken",
    "oneproxyTitle": "1proxy Gratis proxymarktplaats",
    "oneproxyTotalProxies": "Totaal proxy's",
    "oneproxyAvgQuality": "Gemiddelde kwaliteit",
    "resilienceScope": "Toepassingsgebied:",
    "resilienceTrigger": "Trigger:",
    "resilienceEffect": "Effect:",
    "resilienceRequestQueueTitle": "Request Queue & Rate",
    "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
    "resilienceRequestsPerMinute": "Requests per minute",
    "resilienceMinTimeBetweenRequests": "Minimum time between requests",
    "resilienceConcurrentRequests": "Concurrent requests",
    "resilienceMaxQueueWaitTime": "Maximale wachtrijwachttijd",
    "resilienceBaseCooldown": "Base cooldown",
    "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
    "resilienceDefaultPerProvider": "Default (per provider)",
    "resilienceAlwaysOn": "Always on",
    "resilienceAlwaysOff": "Always off",
    "routingRemoveEntry": "Invoer verwijderen",
    "routingNeedlesSubstrings": "Naalden (substrings die overeenkomen)",
    "routingCaseSensitive": "Hoofdlettergevoelig",
    "routingPrefixes": "Voorvoegsels",
    "routingMatch": "Overeenkomen",
    "routingReplacement": "Vervanging",
    "routingReplaceAllOccurrences": "Vervang alle exemplaren",
    "routingPatternRegex": "Patroon (regex)",
    "routingFlags": "Vlaggen",
    "routingNeedles": "Naalden",
    "routingBlockText": "Blok tekst",
    "routingIdempotencyKey": "Idempotentie sleutel",
    "routingEntrypoint": "Ingangspunt",
    "routingVersionFormat": "Versieformaat",
    "routingCchAlgorithm": "CCH-algoritme",
    "routingWordsToObfuscate": "Woorden om te verdoezelen (ZWJ ingevoegd na het eerste teken)",
    "logsSettingsTitle": "Logboekinstellingen",
    "detailedLogsLabel": "Gedetailleerde logboeken ingeschakeld",
    "detailedLogsDesc": "Schakel gedetailleerde logboekregistratie van verzoeken/antwoorden in",
    "callLogPipelineLabel": "Pijplijn voor oproeplogboeken",
    "callLogPipelineDesc": "Pijplijn voor verwerking van oproeplogboeken inschakelen",
    "maxDetailSizeLabel": "Maximale detailgrootte (KB)",
    "maxDetailSizeDesc": "Maximale grootte voor gedetailleerde logboekvermeldingen",
    "ringBufferSizeLabel": "Ringbuffergrootte",
    "ringBufferSizeDesc": "Grootte van de ringbuffer voor houtblokken",
    "semanticCacheEnabledLabel": "Semantische cache ingeschakeld",
    "semanticCacheMaxSizeLabel": "Semantische cache maximale grootte",
    "semanticCacheMaxSizeDesc": "Maximaal aantal semantische cache-items",
    "semanticCacheTTLLabel": "Semantische cache TTL",
    "promptCacheEnabledLabel": "Promptcache ingeschakeld",
    "promptCacheEnabledDesc": "Schakel promptcaching in",
    "promptCacheStrategyLabel": "Prompt Cache-strategie",
    "promptCacheStrategyDesc": "Strategie voor snelle caching",
    "alwaysPreserveClientCacheLabel": "Bewaar altijd de clientcache",
    "alwaysPreserveClientCacheDesc": "Behoudsbeleid voor clientcache",
    "logRetentionPolicyTitle": "Beleid voor het bewaren van logboeken",
    "resilienceUseUpstream429HintsForBreaker": "Gebruik upstream 429-hints (breker)",
    "appearanceLogoPreviewAlt": "Logovoorbeeld",
    "appearanceFaviconPreviewAlt": "Favicon-voorbeeld",
    "oneproxyLastSync": "Laatste synchronisatie",
    "oneproxyAllProtocols": "Alle protocollen",
    "oneproxyCountryCodePlaceholder": "Landcode (bijvoorbeeld VS)",
    "oneproxyMinQualityPlaceholder": "Min. kwaliteit",
    "oneproxyLoadingProxies": "Proxy's laden...",
    "oneproxyLastSyncLabel": "Laatste synchronisatie:",
    "oneproxyProxiesFetched": "Proxy's opgehaald:",
    "oneproxyConsecutiveFailures": "Opeenvolgende mislukkingen:",
    "oneproxyErrorLabel": "Fout:",
    "oneproxyNever": "Nooit",
    "oneproxySyncStatusTitle": "Synchronisatiestatus",
    "oneproxySuccess": "Succes",
    "oneproxyFailed": "Mislukt",
    "routingAntigravitySignatureTitle": "Antigravity Signature Cache-modus",
    "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": "Headervingerafdruk (per provider)",
    "routingServerRejectedSave": "⚠ Server geweigerd opslaan:",
    "routingAddTransformOp": "Voeg een transformatieop",
    "routingClientCacheControlTitle": "Beheer van clientcache",
    "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 automatische routering",
    "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": "Standaard automatische variant",
    "visionBridge": "Visie Brug",
    "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": "Brugmodel",
    "visionBridgeModelPlaceholder": "openai/gpt-4o-mini",
    "visionBridgeModelHint": "__MISSING__:Any OmniRoute model ID that supports vision can be used here.",
    "visionBridgePrompt": "Brugprompt",
    "visionBridgePromptPlaceholder": "Beschrijf dit beeld beknopt.",
    "visionBridgePromptHint": "__MISSING__:Sent to the vision model before the extracted description is injected back into the original request.",
    "visionBridgeTimeoutMs": "Time-out (ms)",
    "visionBridgeMaxImagesPerRequest": "Max. aantal afbeeldingen per aanvraag",
    "resilienceMaxBackoffSteps": "Max backoff steps",
    "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
    "resilienceFailureThreshold": "Failure threshold",
    "resilienceResetTimeout": "Time-out opnieuw instellen",
    "resilienceFailureThresholdLabel": "Mislukkingsdrempel",
    "resilienceResetTimeoutLabel": "Time-out opnieuw instellen",
    "resilienceConnectionCooldownTitle": "Connection Cooldown",
    "resilienceUseUpstreamRetryHintsLabel": "Gebruik upstream-tips voor opnieuw proberen",
    "resilienceUseUpstream429BreakerLabel": "Gebruik upstream 429-hints (breker)",
    "resilienceMaxBackoffStepsLabel": "Max. uitstelstappen",
    "resilienceYes": "Ja",
    "resilienceNo": "Nee",
    "resilienceDefault": "Default",
    "storageDatabaseBackupRetention": "Bewaren van databaseback-ups",
    "storagePurgeData": "Gegevens opschonen",
    "retentionQuotaSnapshots": "Momentopnamen van quota (dagen)",
    "retentionMcpAudit": "MCP-audit (dagen)",
    "retentionA2aEvents": "A2A-evenementen (dagen)",
    "retentionCallLogs": "Oproeplogboeken (dagen)",
    "retentionUsageHistory": "Gebruiksgeschiedenis (dagen)",
    "retentionMemoryEntries": "Geheugeninvoer (dagen)",
    "storageAutoVacuumMode": "Automatische vacuümmodus",
    "storageScheduledVacuum": "Gepland vacuüm",
    "storageVacuumHour": "Vacuümuur (0-23)",
    "storagePageSize": "Paginagrootte (bytes)",
    "storageDatabaseSize": "Databasegrootte",
    "storagePageCount": "Aantal pagina's",
    "storageFreelistCount": "Vrije lijst telling",
    "storageLastVacuum": "Laatste vacuüm",
    "storageLastOptimization": "Laatste optimalisatie",
    "storageIntegrityCheck": "Integriteitscontrole",
    "storageIntegrityOk": "✓ Oké",
    "storageIntegrityError": "✗ Fout",
    "storageUsageTokenBuffer": "Gebruikstokenbuffer",
    "compressionSettingsAutoTriggerMode": "Automatische triggermodus",
    "compressionSettingsMcpDescriptionCompression": "MCP-beschrijving compressie",
    "compressionSettingsCavemanIntensity": "De intensiteit van de holbewoner",
    "compressionSettingsCavemanOutputMode": "Holbewoner-uitvoermodus",
    "compressionSettingsOutputIntensity": "Uitgangsintensiteit",
    "compressionSettingsAutoClarityBypass": "Automatische helderheidsbypass",
    "resilienceWaitForCooldown": "Wacht op afkoelen",
    "resilienceEnableServerSideWait": "Wachten op de server inschakelen",
    "resilienceMaximumRetries": "Maximaal aantal nieuwe pogingen",
    "resilienceMaximumWaitPerRetry": "Maximale wachttijd per nieuwe poging",
    "memorySkillsSkillsmpMarketplace": "SkillsMP-marktplaats",
    "memorySkillsFailedToSave": "Kan niet opslaan",
    "memorySkillsApiKey": "API-sleutel",
    "memorySkillsActiveSkillsProvider": "Actieve vaardigheidsaanbieder",
    "cliproxyapiFallback": "CLIProxyAPI-terugval",
    "cliproxyapiEnableFallback": "Schakel CLIProxyAPI Fallback in",
    "cliproxyapiUrl": "CLIProxyAPI-URL",
    "cliproxyapiStatus": "CLIProxyAPI-status",
    "cliproxyapiNotDetected": "Niet gedetecteerd",
    "payloadRulesTitle": "Payload-regels",
    "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": "Modellen in cooldown",
    "modelCooldownsEmpty": "Er zijn momenteel geen modellen in cooldown.",
    "codexFastTierTitle": "Codex Fast-laag",
    "codexFastTierDesc": "Injecteer wereldwijd service_tier=priority voor OpenAI Codex-verzoeken.",
    "codexFastTierHint": "Indien ingeschakeld, voegt OmniRoute service_tier=priority toe aan uitgaande Codex-aanvragen voor verbindingen die nog geen laag specificeren. Prioriteitslaag vereist een OpenAI Enterprise API-sleutel of het ChatGPT-auth Codex-pad; andere sleuteltypen ontvangen een laaggerelateerde fout van OpenAI. Instellingen per verbinding op de Codex-providerpagina hebben voorrang.",
    "codexFastTierSaveError": "Kan Codex Fast Tier-instelling niet updaten",
    "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 snelle modus",
    "claudeFastModeDesc": "Zet geselecteerde Claude-verzoeken in de Anthropic Fast-modus (snelheid: \"snel\").",
    "claudeFastModeHint": "Anthropic ondersteunt officieel geen snelle modus voor SDK-achtige clients. Indien ingeschakeld, stuurt OmniRoute een X-CPA-Force-Fast-Mode-header door, zodat een gekoppelde CLIProxyAPI-build zich kan aanmelden voor spoofing van het toegangspunt. Alleen de vermelde Opus-modellen worden gecontroleerd door de client-side controle van Anthropic. Abonnementsniveau, Max-abonnement en tegoedsaldo in de Snelle modus worden nog steeds aan de serverzijde afgedwongen. Anthropic kan out_of_credits retourneren, zelfs als de schakelaar is ingeschakeld.",
    "claudeFastModeModelsLabel": "Toegepast op modellen ({count})",
    "claudeFastModeModelCheckbox": "Schakel de snelle modus in voor {model}",
    "claudeFastModeSaveError": "Kan de Claude Fast Mode-instelling niet updaten",
    "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": "Basis afkoeling",
    "scopeLabel": "Reikwijdte",
    "triggerLabel": "Trigger",
    "effectLabel": "Effect",
    "statusEnabled": "Ingeschakeld",
    "statusDisabled": "Uitgeschakeld",
    "resilienceRequestQueueScope": "Per aanvraagwachtrij",
    "resilienceRequestQueueTrigger": "Voordat het naar de upstream wordt verzonden",
    "resilienceRequestQueueEffect": "Zet verzoeken in de wachtrij, beperkt de gelijktijdigheid en spreidt oproepen uit",
    "resilienceRequestQueueDesc": "Deze laag regelt alleen wachtrijen en tempo. Er worden geen cooldowns of open stroomonderbrekers opgeslagen.",
    "resilienceAutoEnableApiKeyProvidersDesc": "Schakelt standaard wachtrijbeveiliging in voor actieve API-sleutelverbindingen.",
    "resilienceMaxQueueWait": "Maximale wachtrijwachttijd",
    "resilienceConnectionCooldownScope": "Individuele verbinding",
    "resilienceConnectionCooldownTrigger": "Wanneer een verbinding een tijdelijke stroomopwaartse fout retourneert",
    "resilienceConnectionCooldownEffect": "Sla die verbinding tijdelijk over en vergroot de back-off bij herhaalde fouten",
    "resilienceConnectionCooldownDesc": "De basiscooldown dekt tijdelijke verbindingsfouten. Wanneer hints voor opnieuw proberen upstream zijn ingeschakeld, overschrijft het expliciete venster van de provider de lokale cooldown.",
    "resilienceUseUpstreamRetryHintsDesc": "Gebruikt waarden voor opnieuw proberen na/reset van de upstreamprovider, indien beschikbaar.",
    "resilienceUseUpstream429BreakerHints": "Gebruik upstream 429-hints voor het afkoelen van de onderbreker",
    "resilienceUseUpstream429BreakerHintsShort": "Gebruik upstream 429-hints",
    "resilienceUseUpstream429BreakerHintsDesc": "Pas Retry-After/quota-uitgeput-signalen toe van 429 reacties op de afkoeltijd van de stroomonderbreker. Standaard gebruikt een beleid per provider: directe cloudproviders zijn standaard ingeschakeld; reverse-proxy, zelf-gehoste en CLI-ondersteunde providers zijn standaard uitgeschakeld. Onafhankelijk van \"Gebruik upstream-tips voor opnieuw proberen\".",
    "resilienceProviderBreakerScope": "Gehele aanbieder",
    "resilienceProviderBreakerTrigger": "Laatste transport-/serverfouten nadat de terugval van de verbinding is uitgeput",
    "resilienceProviderBreakerEffect": "Blokkeert die provider tijdelijk totdat de resettijd is verstreken",
    "resilienceProviderBreakerDesc": "De status van de live-breker wordt alleen weergegeven op de pagina Gezondheid. Verbindingsgerichte 429-snelheidslimieten blijven in verbindingscooldown en schakelen de provideronderbreker niet uit.",
    "resilienceResetTime": "Tijd opnieuw instellen",
    "resilienceWaitForCooldownTitle": "Wacht op afkoeling",
    "resilienceWaitForCooldownScope": "Huidig klantverzoek",
    "resilienceWaitForCooldownTrigger": "Als alle kandidaatverbindingen al aan het afkoelen zijn",
    "resilienceWaitForCooldownEffect": "Wacht op de server en probeert het opnieuw wanneer de eerste cooldown is verstreken",
    "resilienceWaitForCooldownDesc": "Dit heeft alleen invloed op het huidige verzoek. Er wordt geen verbindings- of providerstatus opgeslagen.",
    "resilienceEnableServerWait": "Wachten op de server inschakelen",
    "resilienceEnableServerWaitDesc": "Indien ingeschakeld, wacht OmniRoute tot de eerste cooldown is verstreken en probeert het automatisch opnieuw.",
    "resilienceMaxAttempts": "Maximale pogingen",
    "resilienceMaxWaitPerAttempt": "Maximale wachttijd per poging",
    "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
    "forcedFingerprintBadge": "Required",
    "codexSessionAffinityTitle": "Affiniteit met codexsessies",
    "codexSessionAffinityDesc": "Houdt één Codex-gesprek gedurende dit aantal seconden op hetzelfde account. 0 schakelt het uit.",
    "codexSessionAffinityTtl": "Affiniteit TTL (seconden)",
    "resetAwareQuotaCacheTitle": "Resetbewuste quotacache",
    "resetAwareQuotaCacheDesc": "Slaat quota-telemetrie op in het cachegeheugen voor alleen reset-bewuste bestellingen. Quota-preflight beschermt nog steeds verzoeken. 0/0 blijft live ophalen.",
    "resetAwareQuotaCacheTtl": "Verse TTL (seconden)",
    "resetAwareQuotaCacheMaxStale": "Max oud (seconden)",
    "qdrantCleanupSuccess": "OK: {count} punt(en) verwijderd (retentie: {days} dagen)",
    "qdrantCleanupFailed": "Opschonen is mislukt",
    "qdrantCleanupError": "Fout: {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": "Filtercatalogus",
    "filterCatalogDesc": "Beschikbare uitvoerfilters per categorie",
    "guidedConfig": "Configuratie",
    "guidedConfigDesc": "Pas aan hoe RTK uw terminaluitvoer filtert",
    "maxLines": "Max lines",
    "maxChars": "Max chars",
    "deduplicateThreshold": "Drempel ontdubbelen",
    "customFilters": "Aangepaste filters",
    "detectedType": "Gedetecteerd type",
    "confidence": "Vertrouwen",
    "beforeAfter": "Voor / Na",
    "trustProjectFilters": "Vertrouw projectfilters",
    "rawOutputRetention": "Retentie van onbewerkte uitvoer",
    "rawOutputNever": "Nooit",
    "rawOutputFailures": "Mislukkingen",
    "rawOutputAlways": "Altijd",
    "rawOutputMaxBytes": "Max. aantal bytes onbewerkte uitvoer",
    "filterTesting": "Filter Testing",
    "pasteOutput": "Paste tool output to test filtering...",
    "presetHigh": "Agressief",
    "presetLow": "Licht",
    "presetMaxChars": "Maximale uitvoertekens",
    "presetMaxLines": "Maximale uitvoerlijnen",
    "presetMedium": "Standaard",
    "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": "Eenvoudig",
    "advancedMode": "Geavanceerd",
    "searchFilters": "Zoekfilters...",
    "tooltipDedup": "Hoe agressief herhaalde lijnen te verwijderen.",
    "tooltipMaxChars": "Maximaal aantal tekens per uitvoerblok.",
    "tooltipMaxLines": "Maximaal aantal regels dat niet mag worden uitgevoerd bij opdrachtuitvoer. Het teveel wordt ingekort."
  },
  "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": "Geavanceerde configuratie",
    "advancedConfigDesc": "Verfijn het compressiegedrag",
    "aggressiveSettings": "Agressieve instellingen",
    "aggressiveSettingsDesc": "Maximale compressie met potentiële kwaliteitsafwegingen",
    "requests": "Requests",
    "tokensSaved": "Tokens saved",
    "savingsPercent": "Savings %",
    "avgLatency": "Avg latency",
    "languagePacks": "Language Packs",
    "languagePacksDesc": "Enable compression rules for specific languages.",
    "labelAutoTrigger": "Automatisch comprimeren wanneer de context groter is",
    "labelCompressionRate": "Compressie sterkte",
    "labelMaxTokens": "Doeltokens per bericht",
    "labelMinLength": "Minimale berichtlengte",
    "labelMinSavings": "Minimale tokens om op te slaan",
    "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": "Uitvoermodus",
    "outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
    "outputModeTitle": "Output Mode",
    "quickSettings": "Snelle instellingen",
    "quickSettingsDesc": "Basiscompressie-instellingen om aan de slag te gaan",
    "autoClarity": "Auto-Clarity Bypass",
    "bypassConditions": "Bypass conditions",
    "bypassConditionsList": "veiligheid, onomkeerbaar, verduidelijking, ordergevoelig",
    "simpleMode": "Eenvoudig",
    "advancedMode": "Geavanceerd",
    "tooltipAutoTrigger": "Automatisch comprimeren wanneer de context deze grootte overschrijdt.",
    "tooltipCompressionRate": "0,0 = geen, 1,0 = maximaal. 0,5 = gebalanceerd.",
    "tooltipMaxTokens": "Aantal doeltokens na compressie. Lager = agressiever.",
    "tooltipMinLength": "Berichten die korter zijn dan dit, worden niet gecomprimeerd. Lager = meer compressie.",
    "tooltipMinSavings": "Alleen comprimeren als het minstens zoveel tokens bespaart.",
    "ultraSettings": "Ultra-instellingen",
    "ultraSettingsDesc": "SLM-aangedreven semantische compressie",
    "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": "Vertaler",
    "metaTitle": "Vertaler Speeltuin | OmniRoute",
    "metaDescription": "Debug, test en visualiseer vertalingen van API-indelingen tussen providers",
    "playgroundTitle": "Vertaler Speeltuin",
    "playground": "Speeltuin",
    "realtime": "Realtime vertaalactiviteit",
    "chatTester": "Chattester",
    "testBench": "Testbank",
    "liveMonitor": "Live-monitor",
    "modeDescriptionPlayground": "Plak de hoofdtekst van een API-verzoek en kijk hoe OmniRoute deze vertaalt tussen providerformaten (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
    "modeDescriptionChatTester": "Stuur echte chatverzoeken via OmniRoute en inspecteer de volledige retour: invoer, vertaalde aanvraag, respons van de provider en vertaalde uitvoer.",
    "modeDescriptionTestBench": "Voer vooraf gedefinieerde scenario's uit en vergelijk de compatibiliteit tussen providers en modellen.",
    "modeDescriptionLiveMonitor": "Bekijk vertaalgebeurtenissen in realtime terwijl verzoeken via OmniRoute stromen.",
    "modeDescriptionFallback": "Debug, test en visualiseer hoe OmniRoute API-verzoeken tussen providers vertaalt.",
    "recentTranslations": "Recente vertalingen",
    "noTranslations": "Nog geen vertalingen",
    "source": "Bron",
    "target": "Doel",
    "time": "Tijd",
    "model": "Model",
    "status": "Status",
    "latency": "Latentie",
    "totalTranslations": "Totaal aantal vertalingen",
    "successful": "Succesvol",
    "errors": "Fouten",
    "avgLatency": "Gem. latentie",
    "millisecondsShort": "{value}ms",
    "notAvailableSymbol": "—",
    "liveAutoRefreshing": "Live - Automatisch vernieuwen",
    "paused": "Gepauzeerd",
    "eventsAppearHint": "Vertaalgebeurtenissen verschijnen hier terwijl verzoeken door OmniRoute stromen. Gebruik een van deze methoden om gebeurtenissen te genereren:",
    "chatTesterTab": "Tabblad Chattester",
    "testBenchTab": "Tabblad Testbank",
    "externalApiCalls": "Externe API-aanroepen",
    "ideCliIntegrations": "IDE/CLI-integraties",
    "inMemoryNote": "Opmerking: Gebeurtenissen worden in het geheugen opgeslagen en opnieuw ingesteld wanneer de server opnieuw opstart.",
    "ok": "Oké",
    "errorShort": "ERR",
    "formatConverter": "Formaatconverter",
    "formatConverterDescription": "Plak of typ een JSON-aanvraagtekst. De vertaler detecteert automatisch het bronformaat en converteert dit naar het doelformaat. Gebruik dit om fouten op te sporen in de manier waarop OmniRoute verzoeken tussen formaten vertaalt (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
    "translationPathHubSpoke": "{source} → OpenAI (gemiddeld) → {target}",
    "translationPathDirect": "{source} → {target} (directe vertaler)",
    "translationPathPassthrough": "Hetzelfde formaat – geen vertaling nodig",
    "openaiIntermediatePanel": "OpenAI gemiddeld",
    "autoFeaturesTitle": "Wat OmniRoute automatisch doet",
    "autoFeaturesCount": "8 kenmerken",
    "featureReasoningCache": "Redeneringscache",
    "featureReasoningCacheDesc": "Injecteert in de cache opgeslagen redeneerinhoud opnieuw voor modellen in de denkmodus (DeepSeek V4, Kimi K2, Qwen) wanneer clients deze weglaten uit de gespreksgeschiedenis.",
    "featureSchemaCoercion": "Schema dwang",
    "featureSchemaCoercionDesc": "Repareert kapotte toolschema's: voegt ontbrekende aanvullende eigenschappen toe, zuivert lange beschrijvingen, normaliseert geneste objecten.",
    "featureRoleNormalization": "Rolnormalisatie",
    "featureRoleNormalizationDesc": "Kaartontwikkelaar → systeem voor niet-OpenAI-doelen. Mapt systeem → gebruiker voor modellen die de systeemrol niet ondersteunen.",
    "featureToolCallIds": "Normalisatie van gereedschapsoproep-ID",
    "featureToolCallIdsDesc": "Genereert unieke tool_call-ID's wanneer deze ontbreken. Normaliseert naar 9-karakterformaat voor providers zoals Mistral.",
    "featureMissingToolResponse": "Gereedschapsreactie-injectie",
    "featureMissingToolResponseDesc": "Injecteert lege tool_result-berichten wanneer clients tool_calls verzenden zonder overeenkomstige antwoorden.",
    "featureThinkingBudget": "Denkbudget",
    "featureThinkingBudgetDesc": "Beheert automatisch de denkconfiguratie. Verwijdert denkparameters wanneer het laatste bericht niet van de gebruiker is.",
    "featureDirectPaths": "Directe vertaalpaden",
    "featureDirectPathsDesc": "Sommige formatenparen (Claude → Gemini) hebben directe vertalers die de OpenAI-hub omzeilen, waardoor een nauwkeurigere uitvoer ontstaat.",
    "featureImageMapping": "Afbeeldingsgrootte in kaart brengen",
    "featureImageMappingDesc": "Vertaalt conventies voor afbeeldingsdimensies tussen API-formaten (bijvoorbeeld OpenAI-detailniveaus → Gemini-dimensies).",
    "input": "Invoer",
    "output": "Uitvoer",
    "auto": "Automatisch",
    "swapFormats": "Wissel formaten",
    "translateAction": "Vertalen",
    "clear": "Duidelijk",
    "inputPlaceholder": "Plak hier een verzoektekst of selecteer hieronder een sjabloon...",
    "exampleTemplates": "Voorbeeldsjablonen",
    "exampleTemplatesHint": "— Klik om te laden",
    "templateLoadHint": "Sjabloon laadt het verzoek in {format} formaat. Wijzig het bronformaat om in een ander formaat te laden.",
    "compatibilityTester": "Compatibiliteitstester",
    "compatibilityReport": "Compatibiliteitsrapport",
    "testBenchDescription": "Voer vooraf gedefinieerde scenario's uit (Simple Chat, Tool Calling, enz.) om de vertaling en compatibiliteit van providers te verifiëren. Selecteer een bronformaat en doelprovider en voer vervolgens alle tests uit om een ​​compatibiliteitspercentage te zien. Gebruik dit om te ontdekken welke functies bij verschillende providers werken.",
    "targetProvider": "Doelaanbieder",
    "runAllTests": "Voer alle tests uit",
    "runTest": "Test uitvoeren",
    "reRun": "Opnieuw uitvoeren",
    "running": "Rennen...",
    "passed": "voorbij",
    "failed": "mislukt",
    "passedIconLabel": "✅Geslaagd",
    "chunks": "brokken",
    "scenarioSimpleChat": "Eenvoudig chatten",
    "scenarioToolCalling": "Gereedschap bellen",
    "scenarioMultiTurn": "Multi-turn",
    "scenarioThinking": "Denken",
    "scenarioSystemPrompt": "Systeemprompt",
    "scenarioStreaming": "Streamen",
    "templateNames": {
      "simple-chat": "Eenvoudig chatten",
      "tool-calling": "Gereedschap bellen",
      "multi-turn": "Multi-turn",
      "thinking": "Denken",
      "system-prompt": "Systeemprompt",
      "streaming": "Streamen",
      "vision": "Visie",
      "schema-coercion": "Schema dwang"
    },
    "templateDescriptions": {
      "simple-chat": "Basis sms-bericht",
      "tool-calling": "Functie-/toolaanroep",
      "multi-turn": "Gesprek met de geschiedenis",
      "thinking": "Uitgebreid nadenken/redeneren",
      "system-prompt": "Complexe systeeminstructies",
      "streaming": "SSE-streamingverzoek",
      "vision": "Multimodaal verzoek met beeldinvoer",
      "schema-coercion": "Afdwinging van gestructureerde uitvoer/JSON-schema's"
    },
    "templatePayloads": {
      "simpleChat": {
        "system": "Je bent een behulpzame assistent.",
        "userGreeting": "Hallo! Hoe gaat het vandaag met je?"
      },
      "toolCalling": {
        "userWeather": "Hoe is het weer in Sao Paulo?",
        "toolDescription": "Ontvang het huidige weer voor een locatie",
        "cityNameDescription": "Naam van de stad"
      },
      "multiTurn": {
        "system": "Je bent codeerassistent.",
        "userInitial": "Schrijf een functie om een array in Python te sorteren.",
        "assistantExample": "Hier is een eenvoudige sorteerfunctie:\n\n```python\ndef sort_array(arr):\n    retour gesorteerd(arr)\n```",
        "userFollowUp": "Sorteer het nu in aflopende volgorde."
      },
      "thinking": {
        "question": "Wat is de som van de eerste 100 priemgetallen?"
      },
      "systemPrompt": {
        "systemInstruction": "Je bent een senior software engineer, gespecialiseerd in gedistribueerde systemen. Beantwoord vragen beknopt met behulp van best practices uit de branche. Geef altijd codevoorbeelden wanneer dit relevant is. Formatteer uw antwoorden met behulp van markdown.",
        "question": "Hoe implementeer ik een stroomonderbrekerpatroon?"
      },
      "streaming": {
        "prompt": "Vertel me een kort verhaal over een robot die leert schilderen."
      },
      "vision": {
        "system": "Je bent een assistent die beelden nauwkeurig beschrijft.",
        "userPrompt": "Wat wordt op deze afbeelding weergegeven?",
        "imageUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/600px-PNG_transparency_demonstration_1.png"
      },
      "schemaCoercion": {
        "userPrompt": "Zoek het weer voor Tokio op met behulp van metrische eenheden en voeg de uitsplitsing per uur toe.",
        "toolDescription": "Haal het weer op voor een stad met gestructureerde opties.",
        "cityDescription": "De te bevragen stad, b.v. 'Tokio' of 'New York'."
      }
    },
    "openaiCompatibleLabel": "OpenAI-compatibel",
    "anthropicCompatibleLabel": "Antropisch compatibel",
    "noTemplateForFormat": "Geen sjabloon voor dit formaat",
    "translationFailed": "Vertaling mislukt: {error}",
    "pipelineDebugger": "Pijplijn-foutopsporing",
    "translationPipeline": "Vertaalpijplijn",
    "pipelineVisualization": "Visualisatie van pijpleidingen",
    "pipelineVisualizationHint": "Stuur een bericht om te zien hoe uw verzoek via detectie → vertaling → provideroproep verloopt.",
    "chatTesterDescription": "Verzend berichten in een specifiek klantformaat en inspecteer elke stap van de vertaalpijplijn.",
    "chatTesterFlow": "Klantverzoek → Formaatdetectie → OpenAI Intermediate → Providerformaat → Reactie",
    "clickStepToInspect": "Klik op een willekeurige stap om de gegevens in dat stadium te inspecteren.",
    "clientFormat": "Klantformaat",
    "provider": "Aanbieder",
    "modelPlaceholder": "Selecteer of typ een modelnaam...",
    "sendMessageToSeePipeline": "Stuur een bericht om de vertaalpijplijn te bekijken",
    "chatMessageHintPrefix": "Uw bericht wordt opgemaakt als een",
    "chatMessageHintSuffix": "verzoek, vertaald via de pijplijn en verzonden naar de geselecteerde provider.",
    "youWithFormat": "Jij ({format})",
    "assistant": "Assistent",
    "typeMessage": "Typ een bericht...",
    "send": "Verzenden",
    "clientRequest": "Klantverzoek",
    "clientRequestDescription": "De verzoektekst zoals uw klant deze zou verzenden",
    "formatDetected": "Formaat gedetecteerd",
    "formatDetectedDescription": "OmniRoute detecteert automatisch het API-formaat uit de aanvraagstructuur",
    "openaiIntermediate": "OpenAI gemiddeld",
    "openaiIntermediateDescription": "Alle formaten worden eerst genormaliseerd naar OpenAI-formaat (de universele bridge)",
    "providerFormat": "Provider-formaat",
    "providerFormatDescription": "Het OpenAI-formaat wordt vertaald naar het oorspronkelijke formaat van de provider",
    "providerResponse": "Reactie van de leverancier",
    "providerResponseRawDescription": "Het onbewerkte antwoord van de provider-API",
    "providerResponseSseDescription": "De onbewerkte SSE-stream van de provider-API",
    "unexpectedError": "Er is een onverwachte fout opgetreden",
    "error": "Fout",
    "errorMessage": "Fout: {message}",
    "requestFailed": "Verzoek mislukt",
    "noTextExtracted": "(Geen tekst geëxtraheerd)",
    "liveMonitorMemoryNote": "Gebeurtenissen worden in het geheugen opgeslagen en gaan verloren bij opnieuw opstarten.",
    "liveMonitorMemoryCapNote": "Maximaal 200 gebeurtenissen behouden.",
    "eventSourcesLabel": "Evenementbronnen:",
    "eventSourceTranslatorPage": "• Vertalerpagina (Chat Tester, Testbank)",
    "eventSourceMainPipeline": "• Hoofdverzoekpijplijn (CLI/IDE/API-verkeer)",
    "liveMonitorDescriptionPrefix": "Toont vertaalgebeurtenissen terwijl API-aanroepen door OmniRoute stromen. Gebeurtenissen komen uit de buffer in het geheugen (wordt gereset bij opnieuw opstarten). Gebruik",
    "liveMonitorDescriptionSuffix": "of externe API-aanroepen om gebeurtenissen te genereren.",
    "streamTransformer": "Stroomtransformator",
    "modeDescriptionStreamTransformer": "Voer SSE-streams voor chatvoltooiingen uit via de Responses-transformator.",
    "streamTransformerTitle": "Reacties Stream Transformer",
    "streamTransformerDescription": "Plak een SSE-stream met voltooide chats, voer deze door de Responses-transformator van OmniRoute en inspecteer de verzonden respons.*-gebeurtenissen voordat u een client bedient.",
    "loadTextSample": "Tekstvoorbeeld laden",
    "loadToolSample": "Gereedschapsoproepvoorbeeld laden",
    "transformToResponses": "Transformeer naar reacties",
    "rawChatSseInput": "Onbewerkte chat-voltooiingen SSE",
    "transformedResponsesSse": "Getransformeerde reacties API SSE",
    "noResultsYet": "Nog geen resultaten",
    "transformedEvents": "Getransformeerde evenementen",
    "uniqueEventTypes": "Unieke soorten evenementen",
    "inputLines": "Invoerlijnen",
    "outputLines": "Uitvoerlijnen",
    "transformedEventTimeline": "Getransformeerde tijdlijn van evenementen",
    "transformerTimelineHint": "Voer de transformator uit om de uitgezonden response.output_*-gebeurtenissen in volgorde te inspecteren.",
    "eventType": "Type evenement",
    "eventPreview": "Voorbeeld",
    "comboRouted": "Combi gerouteerd",
    "uniqueEndpoints": "Unieke eindpunten",
    "routeDetails": "Routedetails",
    "comboBadge": "Combinatie",
    "routeEndpointLabel": "Eindpunt",
    "routeConnectionLabel": "Verbinding",
    "scenarioVision": "Visie (beeldbegrip)",
    "scenarioSchemaCoercion": "Schemadwang (gestructureerde output)",
    "techniques": "Technieken:"
  },
  "usage": {
    "title": "Gebruik",
    "loggerTab": "Logger",
    "proxyTab": "Proxy",
    "budgetManagement": "Budgetbeheer",
    "budgetSaved": "Budgetlimieten opgeslagen",
    "budgetSaveFailed": "Het is niet gelukt om budget op te slaan",
    "loadingBudgetData": "Budgetgegevens laden...",
    "noApiKeysTitle": "Geen API-sleutels",
    "noApiKeysDescription": "Voeg eerst API-sleutels toe om budgetlimieten in te stellen.",
    "apiKey": "API-sleutel",
    "todaysSpend": "De uitgaven van vandaag",
    "thisMonth": "Deze maand",
    "setLimits": "Stel grenzen",
    "dailyLimitUsd": "Dagelijkse limiet (USD)",
    "monthlyLimitUsd": "Maandelijkse limiet (USD)",
    "warningThresholdPercent": "Waarschuwingsdrempel (%)",
    "dailyLimitPlaceholder": "bijv. 5.00 uur",
    "monthlyLimitPlaceholder": "bijv. 50,00",
    "warningThresholdPlaceholder": "80",
    "saveLimits": "Bewaar grenzen",
    "budgetOk": "Budget OK — {remaining} resterend",
    "budgetExceeded": "Budget overschreden: verzoeken kunnen worden geblokkeerd",
    "totalRequests": "Totaal aantal verzoeken",
    "noDataYet": "Nog geen gegevens",
    "latency": "Latentie",
    "latencyP50": "p50",
    "latencyP95": "p95",
    "latencyP99": "p99",
    "promptCache": "Snelle cache",
    "systemHealth": "Systeemgezondheid",
    "entries": "Inzendingen",
    "activeCount": "{count} actief",
    "openCircuitBreakersDetected": "Open stroomonderbrekers gedetecteerd",
    "hitRate": "Hitpercentage",
    "hitsMisses": "Hits / missers",
    "circuitBreakers": "Stroomonderbrekers",
    "lockedIPs": "Vergrendelde IP's",
    "lockoutsAutoRefreshHint": "Tarieflimietvergrendelingen per model • Automatisch vernieuwen 10s",
    "lockedCount": "{count, plural, one {# locked} other {# locked}}",
    "timeLeft": "{time} over",
    "howItWorks": "Hoe het werkt",
    "howItWorksSubtitle": "Ontdek hoe evaluaties uw LLM-reacties valideren",
    "define": "Definieer",
    "defineStepDescription": "Maak testcases met invoerprompts en verwachte uitvoercriteria met behulp van strategieën zoals contain, regex of exacte match.",
    "run": "Rennen",
    "runStepDescription": "Voer testcases uit op uw LLM-eindpunten via OmniRoute. Elke case wordt verzonden als een echt API-verzoek.",
    "evaluate": "Evalueer",
    "evaluateStepDescription": "De antwoorden worden vergeleken met de verwachte criteria. Bekijk voor elk geval de geslaagde/mislukte resultaten met latentiestatistieken en gedetailleerde 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": "Evaluatiesuites",
    "evalSuitesHint": "Klik op een suite om testcases te bekijken en voer deze vervolgens uit om uw LLM-eindpunten te evalueren",
    "evalsLoading": "Evaluatiesuites laden...",
    "noEvalSuitesFound": "Geen Eval-suites gevonden",
    "noEvalSuitesDescription": "Eval-suites kunnen worden gedefinieerd via de API of in code. Ze testen de modeluitvoer tegen de verwachte resultaten met behulp van strategieën zoals contain, regex, exacte match en aangepaste functies.",
    "columnCase": "Geval",
    "columnStatus": "Status",
    "columnLatency": "Latentie",
    "columnDetails": "Details",
    "columnModel": "Model",
    "columnStrategy": "Strategie",
    "columnExpected": "Verwacht",
    "statsSuites": "Suites",
    "statsTestCases": "Testgevallen",
    "statsModels": "Modellen",
    "statsCoverage": "Dekking",
    "statsStrategiesCount": "{count} strategieën",
    "evaluationStrategies": "Evaluatiestrategieën",
    "modelsUnderTest": "Modellen die worden getest",
    "searchSuitesPlaceholder": "Zoek suites...",
    "passSuffix": "passeren",
    "casesCount": "{count, plural, one {# case} other {# cases}}",
    "runEval": "Voer Eval uit",
    "runAllSuites": "Alles uitvoeren",
    "runAllRunning": "Alles draaien...",
    "runAllProgress": "{current}/{total} wordt uitgevoerd: {name}",
    "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
    "runAllCompleted": "Heeft {suites} suites uitgevoerd — {passed} geslaagd, {failed} mislukt",
    "runAllCompletedWithFailures": "Heeft {completed} suites uitgevoerd; {failedSuites} kan niet worden voltooid",
    "runningProgress": "{current}/{total} wordt uitgevoerd...",
    "passRate": "slagingspercentage",
    "summaryBreakdown": "{passed} geslaagd · {failed} mislukt · {total} totaal",
    "passedIconLabel": "✅Geslaagd",
    "failedIconLabel": "❌ Mislukt",
    "resultPassed": "Geslaagd",
    "resultFailed": "Mislukt",
    "expandResult": "Vouw resultaatdetails uit",
    "collapseResult": "Resultaatdetails samenvouwen",
    "detailsContains": "Bevat: \"{term}\"",
    "detailsRegex": "Regex: {pattern}",
    "detailsExpected": "Verwacht: \"{expected}\"",
    "expectedOutputLabel": "Verwachte output",
    "noResultsYet": "Nog geen resultaten",
    "testCasesCount": "Testgevallen ({count})",
    "noTestCasesDefined": "Geen testgevallen gedefinieerd",
    "runEvalHint": "Klik op 'Eval uitvoeren' om alle cases tegen uw LLM-eindpunt uit te voeren. Elke test verzendt een echt verzoek via OmniRoute.",
    "notifyNoTestCases": "Er zijn geen testgevallen gedefinieerd voor deze suite",
    "notifyAllCasesPassed": "Alle {total} cases zijn geslaagd ✅",
    "notifySomeCasesFailed": "{passed}/{total} geslaagd, {failed} mislukt",
    "notifyEvalRunFailed": "Evaluatierun mislukt",
    "notifyEvalTitle": "Evaluatie: {name}",
    "modelEvals": "Modelevaluaties",
    "evalsHeroDescription": "Test en valideer uw LLM-eindpunten door vooraf gedefinieerde evaluatiesuites uit te voeren. Elke suite bevat testcases die echte aanwijzingen sturen via OmniRoute en de antwoorden vergelijken met de verwachte criteria, zodat u regressies kunt detecteren, modellen kunt vergelijken en de responskwaliteit van alle providers kunt garanderen.",
    "qualityValidation": "Kwaliteitsvalidatie",
    "modelComparison": "Modelvergelijking",
    "regressionDetection": "Regressiedetectie",
    "latencyBenchmarks": "Latentiebenchmarks",
    "modelLockouts": "Modelvergrendelingen",
    "noLockouts": "Er zijn momenteel geen modellen vergrendeld",
    "activeSessions": "Actieve sessies",
    "noSessions": "Geen actieve sessies",
    "sessionsHint": "Sessies verschijnen terwijl verzoeken door de proxy stromen",
    "sessionsTrackedHint": "Bijgehouden via verzoek om vingerafdrukken • Automatisch vernieuwen 5s",
    "session": "Sessie",
    "age": "Leeftijd",
    "requests": "Verzoeken",
    "connection": "Verbinding",
    "durationMillisecondsShort": "{value}ms",
    "durationSecondsShort": "{value}s",
    "durationMinutesShort": "{value}m",
    "durationHoursShort": "{value}u",
    "reasonSeparator": " - ",
    "notAvailableSymbol": "-",
    "providerLimits": "Limieten van aanbieders",
    "noProviders": "Geen providers aangesloten",
    "connectProvidersForQuota": "Maak verbinding met providers met OAuth om uw API-quotumlimieten en -gebruik bij te houden.",
    "accountsCount": "{count, plural, one {# account} other {# accounts}}",
    "filteredFromCount": "(gefilterd van {count})",
    "autoRefresh": "Automatisch vernieuwen",
    "refreshAll": "Alles vernieuwen",
    "loadingQuotas": "Laden...",
    "account": "Rekening",
    "modelQuotas": "Modelquota",
    "lastUsed": "Last Refreshed",
    "actions": "Acties",
    "refreshQuota": "Quota vernieuwen",
    "today": "Vandaag",
    "tomorrow": "Morgen",
    "dayTimeFormat": "{day}, {time}",
    "inDuration": "in {duration}",
    "notApplicable": "N.v.t",
    "rawPlanWithValue": "Ruw plan: {plan}",
    "noPlanFromProvider": "Geen abonnement van aanbieder",
    "noQuotaData": "Geen quotagegevens",
    "cardExpand": "__MISSING__:Expand",
    "cardCollapse": "__MISSING__:Collapse",
    "moreQuotas": "__MISSING__:+{count} more",
    "ungrouped": "Ungrouped",
    "viewFlat": "Flat",
    "viewByEnvironment": "By Environment",
    "noQuotaDataAvailable": "Geen quotagegevens beschikbaar",
    "noAccountsForTierFilter": "Er zijn geen accounts gevonden voor niveaufilter",
    "tierAll": "Allemaal",
    "tierEnterprise": "Onderneming",
    "tierTeam": "Team",
    "tierBusiness": "Zakelijk",
    "tierUltra": "Ultra",
    "tierPro": "Pro",
    "tierPlus": "Plus",
    "tierFree": "Gratis",
    "tierLite": "__MISSING__:Lite",
    "tierUnknown": "Onbekend",
    "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": "Cutoffs bewerken",
    "forceRefresh": "Vernieuw nu",
    "suiteBuilderSaveFailed": "Failed to save suite",
    "clone": "Kloon",
    "exportSuite": "Exporteren",
    "importSuite": "Importeren",
    "suiteExported": "Suite geëxporteerd",
    "suiteExportFailed": "Kan suite niet exporteren",
    "suiteImportReady": "Suite-import geladen ter beoordeling",
    "suiteImportFailed": "Kan suite niet importeren",
    "suiteImportInvalid": "Ongeldige evaluatiesuite JSON",
    "suiteBuilderCloneSuffix": "kopiëren",
    "suiteBuilderImportedSuite": "Geïmporteerde suite",
    "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": "bijv. zeker fibonacci",
    "suiteBuilderCaseExpectedPlaceholderExact": "Plak het exacte verwachte antwoord",
    "suiteBuilderCaseExpectedPlaceholderRegex": "bijv. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
    "suiteBuilderCaseExpectedHintRegex": "Gebruik een reguliere JavaScript-expressie zonder schuine strepen.",
    "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": "Duplicaat",
    "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. resterend",
    "quotaCutoffsColumnHelp": "Stop verzoeken als het resterende quotum dit percentage of lager bereikt.",
    "quotaCutoffsButtonDefault": "Standaard",
    "quotaCutoffsButtonHelp": "Bewerk de minimale resterende quotumlimieten voor dit account.",
    "quotaCutoffsButtonDisabled": "Er zijn nog geen quotavensters beschikbaar voor dit account.",
    "quotaCutoffsTitle": "Quotalimieten voor {name} ({provider})",
    "quotaCutoffsExplainer": "Overschrijf het minimale resterende quotumpercentage waarbij dit account niet meer wordt geselecteerd voor elke quotumperiode. Laat dit leeg om de standaardprovider over te nemen.",
    "quotaCutoffsDefaultHint": "Standaard min. resterend: {default}%",
    "quotaCutoffsResetAll": "Alles resetten",
    "quotaCutoffsNoWindows": "Er zijn nog geen quotavensters beschikbaar voor dit account.",
    "quotaThresholdInvalid": "Voer een geheel getal in van 0 tot 100.",
    "budgetKpiToday": "Vandaag",
    "budgetKpiThisMonth": "Deze maand",
    "budgetKpiProjEom": "Project EOM",
    "budgetKpiBlocked": "Geblokkeerd",
    "budgetKpiAtRisk": "In gevaar",
    "budgetKpiActiveKeys": "Actieve sleutels",
    "budgetSearchKeysPlaceholder": "Zoeksleutels...",
    "budgetSortPctUsed": "Sorteren: % gebruikt ↓",
    "budgetSortTodayDollar": "Sorteren: Vandaag $ ↓",
    "budgetSortMonthDollar": "Sorteren: Maand $ ↓",
    "budgetSortNameAZ": "Sorteren: Naam (A-Z)",
    "budgetColDailyLim": "Dagelijks lim",
    "budgetColMonthlyLim": "Maandelijks lim",
    "budgetColUsedPct": "Gebruikt %",
    "budgetLoading": "Laden…",
    "budgetNoKeysMatch": "Er zijn geen sleutels die overeenkomen met filters",
    "budgetLinearExtrapolation": "lineaire extrapolatie",
    "budgetThisMonthSoFar": "Deze maand tot nu toe",
    "budgetProjectedEndOfMonth": "Verwacht einde van de maand",
    "budgetByProvider": "per aanbieder",
    "budgetDailyDollar": "Dagelijks $",
    "budgetWeeklyDollar": "Wekelijks $",
    "budgetMonthlyDollar": "Maandelijks $",
    "budgetWarnAtPct": "Waarschuw bij %",
    "quotaAlerts": "Quotumwaarschuwingen",
    "quotaTableRefreshing": "⟳ Verfrissend...",
    "noSpendLast30Days": "Geen uitgaven in de afgelopen 30 dagen",
    "updatedShort": "__MISSING__:Updated",
    "lastRefreshed": "__MISSING__:Last refreshed",
    "providerQuota": "__MISSING__:Provider Quota",
    "providerQuotaHomeHint": "__MISSING__:Live status across connected accounts"
  },
  "modals": {
    "waitingAuth": "Wachten op toestemming",
    "verificationUrl": "Verificatie-URL",
    "yourCode": "Jouw code",
    "remoteAccess": "Toegang op afstand:",
    "connectedSuccess": "Succesvol verbonden!",
    "connectionFailed": "Verbinding mislukt",
    "chooseAuthMethod": "Kies uw authenticatiemethode:",
    "awsBuilderId": "AWS Builder-ID",
    "awsIamIdentity": "AWS IAM Identiteitscentrum",
    "googleAccount": "Google-account",
    "githubAccount": "GitHub-account",
    "importToken": "Token importeren",
    "pasteToken": "Plak het vernieuwingstoken uit Kiro IDE.",
    "awsRegion": "AWS-regio",
    "autoDetecting": "Tokens automatisch detecteren...",
    "readingFromCache": "Lezen uit AWS SSO-cache",
    "readingFromCursor": "Lezen uit de Cursor IDE-database",
    "initializing": "Initialiseren...",
    "pricingConfig": "Prijsconfiguratie",
    "loadingPricing": "Prijsgegevens laden...",
    "pricingRatesFormat": "Formaat prijstarieven",
    "noPricingData": "Geen prijsgegevens beschikbaar",
    "noModelsFound": "Geen modellen gevonden"
  },
  "loggers": {
    "allProviders": "Alle aanbieders",
    "allModels": "Alle modellen",
    "allAccounts": "Alle rekeningen",
    "allApiKeys": "Alle API-sleutels",
    "allTypes": "Alle soorten",
    "allLevels": "Alle niveaus",
    "modelAZ": "Model A-Z",
    "modelZA": "Model Z-A",
    "loadingLogs": "Logboeken laden...",
    "loadingProxyLogs": "Proxylogboeken laden...",
    "noLogEntries": "Geen logvermeldingen gevonden",
    "noPayloadData": "Er zijn geen payloadgegevens beschikbaar voor deze logvermelding.",
    "proxyEvent": "Proxy-evenement",
    "proxy": "Proxy",
    "level": "Niveau",
    "directNative": "Direct (native)",
    "combo": "Combinatie",
    "inputTokens": "ik:",
    "outputTokens": "O:"
  },
  "stats": {
    "usageOverview": "Gebruiksoverzicht",
    "outputTokens": "Uitvoertokens",
    "totalCost": "Totale kosten",
    "usageByModel": "Gebruik per model",
    "usageByAccount": "Gebruik per account",
    "failedToLoad": "Kan gebruiksstatistieken niet laden.",
    "tokenHealth": "Tokengezondheid",
    "totalOAuth": "Totaal OAuth",
    "healthy": "Gezond",
    "warning": "Waarschuwing",
    "errored": "Fout",
    "lastCheck": "Laatste controle",
    "noData": "Geen gegevens",
    "share": "Deel",
    "unableToLoad": "Kan systeemstatistieken niet laden",
    "product": "Product",
    "resources": "Hulpbronnen",
    "company": "Bedrijf"
  },
  "auth": {
    "welcome": "Welkom",
    "signIn": "Log in",
    "enterPassword": "Voer uw wachtwoord in om door te gaan",
    "password": "Wachtwoord",
    "unifiedProxy": "Uniforme AI API-proxy",
    "unifiedAiApiProxy": "Uniforme AI API-proxy",
    "unifiedAiApiProxyDesc": "Routeer verzoeken naar meerdere AI-providers via één eindpunt. Load-balancing, failover en gebruiksregistratie zijn ingebouwd.",
    "passwordNotEnabled": "Wachtwoordbeveiliging is niet ingeschakeld",
    "loading": "Laden...",
    "invalidPassword": "Ongeldig wachtwoord",
    "errorOccurredRetry": "Er is een fout opgetreden. Probeer het opnieuw.",
    "configureInstance": "Laten we uw OmniRoute-instantie configureren",
    "runOnboardingWizard": "Voer de onboardingwizard uit om uw wachtwoord in te stellen en verbinding te maken met uw eerste AI-provider.",
    "startOnboarding": "Begin met onboarden",
    "secureYourInstance": "Beveilig uw exemplaar",
    "setPasswordDescription": "Stel een wachtwoord in om uw dashboard te beschermen en uw API-eindpunten te beveiligen tegen ongeautoriseerde toegang.",
    "configurePassword": "Wachtwoord configureren",
    "continue": "Ga door",
    "windowWillClose": "Dit venster wordt automatisch gesloten...",
    "closeTabNow": "U kunt dit tabblad nu sluiten.",
    "copyUrlManual": "Kopieer de URL uit de adresbalk en plak deze in de applicatie.",
    "accessDeniedDescription": "U heeft geen toegang tot deze bron. Controleer uw API-sleutel of neem contact op met de beheerder.",
    "goToDashboard": "Ga naar Dashboard",
    "featureMultiProviderTitle": "Meerdere aanbieders",
    "featureMultiProviderDesc": "OpenAI, Anthropic, Google en meer",
    "featureLoadBalancingTitle": "Load-balancering",
    "featureLoadBalancingDesc": "Verdeel verzoeken op een intelligente manier",
    "featureUsageTrackingTitle": "Gebruik volgen",
    "featureUsageTrackingDesc": "Houd de kosten en tokens in de gaten",
    "resetPassword": "Wachtwoord opnieuw instellen",
    "resetDescription": "Kies een methode om de toegang tot uw dashboard te herstellen",
    "stopServer": "Stop de OmniRoute-server",
    "processing": "Verwerken...",
    "pleaseWait": "Een ogenblik geduld terwijl we de autorisatie voltooien.",
    "authSuccess": "Autorisatie succesvol!",
    "copyUrl": "Kopieer deze URL",
    "accessDenied": "Toegang geweigerd",
    "methodCliTitle": "Methode 1: CLI-reset",
    "methodCliDescription": "Voer de volgende opdracht uit op de server waarop OmniRoute draait:",
    "methodCliHint": "Hierdoor wordt u gevraagd een nieuw wachtwoord in te stellen. De server moet eerst worden gestopt.",
    "methodManualTitle": "Methode 2: Handmatige reset",
    "methodManualDescription": "Verwijder het wachtwoord uit de database en stel bij het opstarten een nieuw wachtwoord in:",
    "setPasswordInYour": "Stel een nieuw wachtwoord in in uw",
    "fileLabelSuffix": "bestand:",
    "newPasswordPlaceholder": "uw_nieuwe_wachtwoord",
    "deleteSettingsFile": "Verwijderen",
    "orRemovePasswordHashField": "of verwijder het wachtwoordHash-veld",
    "restartServerWithNewPassword": "Start de server opnieuw op. Deze gebruikt het nieuwe wachtwoord",
    "backToLogin": "Terug naar Inloggen",
    "forgotPassword": "Wachtwoord vergeten?",
    "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
    "Authorization": "Autorisatie",
    "Content-Disposition": "Inhoud-dispositie",
    "waitingForAuthorization": "Wachten op toestemming...",
    "waitingForGoogleAuthorization": "Wachten op Google-autorisatie...",
    "waitingForOpenAIAuthorization": "Wachten op OpenAI-autorisatie...",
    "waitingForAntigravityAuthorization": "Wachten op toestemming voor anti-zwaartekracht...",
    "waitingForQoderAuthorization": "Wachten op Qoder-autorisatie...",
    "exchangingCodeForTokens": "Code uitwisselen voor 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": "Navigeer naar huis",
    "toggleMenu": "Schakelmenu",
    "featuresLink": "Kenmerken",
    "docsLink": "Documenten",
    "github": "GitHub",
    "versionLive": "v1.0 is nu live",
    "oneEndpoint": "Eén eindpunt voor",
    "allProviders": "Alle AI-providers",
    "heroDescription": "AI-eindpuntproxy met webdashboard - Een JavaScript-poort van CLIProxyAPI. Werkt naadloos samen met Claude Code, OpenAI Codex, Cline, RooCode en andere CLI-tools.",
    "getStarted": "Aan de slag",
    "viewOnGithub": "Bekijk op GitHub",
    "powerfulFeatures": "Krachtige functies",
    "featuresSubtitle": "Alles wat u nodig heeft om uw AI-infrastructuur op één plek te beheren, gebouwd voor schaal.",
    "featureUnifiedEndpointTitle": "Uniform eindpunt",
    "featureUnifiedEndpointDesc": "Toegang tot alle providers via één standaard API-URL.",
    "featureEasySetupTitle": "Eenvoudige installatie",
    "featureEasySetupDesc": "Ga binnen enkele minuten aan de slag met de opdracht npx.",
    "featureModelFallbackTitle": "Modelterugval",
    "featureModelFallbackDesc": "Schakel automatisch over naar providers bij storingen of hoge latentie.",
    "featureUsageTrackingTitle": "Gebruik volgen",
    "featureUsageTrackingDesc": "Gedetailleerde analyses en kostenmonitoring voor alle modellen.",
    "featureOAuthApiKeysTitle": "OAuth- en API-sleutels",
    "featureOAuthApiKeysDesc": "Beheer inloggegevens veilig in één kluis.",
    "featureCloudSyncTitle": "Cloudsynchronisatie",
    "featureCloudSyncDesc": "Synchroniseer uw configuraties direct op verschillende apparaten.",
    "featureCliSupportTitle": "CLI-ondersteuning",
    "featureCliSupportDesc": "Werkt met Claude Code, Codex, Cline, Cursor en meer.",
    "featureDashboardTitle": "Dashboard",
    "featureDashboardDesc": "Visueel dashboard voor realtime verkeersanalyse.",
    "howItWorks": "Hoe OmniRoute werkt",
    "howItWorksDescription": "Gegevens stromen naadloos van uw applicatie via onze intelligente routeringslaag naar de beste provider voor de taak.",
    "howItWorksStep1Title": "1. CLI en SDK's",
    "howItWorksStep1Description": "Uw verzoeken beginnen vanuit uw favoriete tools of onze uniforme SDK. Wijzig gewoon de basis-URL.",
    "howItWorksStep2Title": "2. OmniRoute-hub",
    "howItWorksStep2Description": "Onze engine analyseert de prompt, controleert de status van de provider en routeert voor de laagste latentie of kosten.",
    "howItWorksStep3Title": "3. AI-aanbieders",
    "howItWorksStep3Description": "Aan het verzoek wordt onmiddellijk voldaan door OpenAI, Anthropic, Gemini of anderen.",
    "getStartedIn30Seconds": "Ga binnen 30 seconden aan de slag",
    "getStartedDescription": "Installeer OmniRoute, configureer uw providers via een webdashboard en begin met het routeren van AI-verzoeken.",
    "installOmniRoute": "Installeer OmniRoute",
    "installStepDescription": "Voer de npx-opdracht uit om de server onmiddellijk te starten",
    "openDashboard": "Dashboard openen",
    "openDashboardStepDescription": "Configureer providers en API-sleutels via de webinterface",
    "routeRequests": "Routeverzoeken",
    "routeRequestsStepDescription": "Verwijs uw CLI-tools naar {endpoint}",
    "terminal": "terminaal",
    "copy": "Kopieer",
    "copied": "✓ Gekopieerd",
    "startingOmniRoute": "OmniRoute starten...",
    "serverRunningOnLabel": "Server draait aan",
    "dashboardLabel": "Dashboard",
    "readyToRoute": "Klaar om te routen! ✓",
    "configureProvidersNote": "📝 Configureer providers in het dashboard of gebruik omgevingsvariabelen",
    "dataLocation": "Gegevenslocatie:",
    "dataLocationMacLinux": " macOS/Linux:",
    "dataLocationWindows": " Ramen:",
    "product": "Product",
    "dashboardLink": "Dashboard",
    "changelog": "Wijzigingslog",
    "resources": "Hulpbronnen",
    "documentation": "Documentatie",
    "npm": "NPM",
    "legal": "Legaal",
    "mitLicense": "MIT-licentie",
    "footerTagline": "Het uniforme eindpunt voor het genereren van AI. Verbind, routeer en beheer uw AI-providers eenvoudig.",
    "copyright": "© {year} OmniRoute. Alle rechten voorbehouden.",
    "flowToolClaudeCode": "Claude Code",
    "flowToolOpenAICodex": "OpenAI-codex",
    "flowToolCline": "Klijn",
    "flowToolCursor": "Cursor",
    "flowProviderOpenAI": "OpenAI",
    "flowProviderAnthropic": "Antropisch",
    "flowProviderGemini": "Tweeling",
    "flowProviderGithubCopilot": "GitHub-copiloot",
    "interactiveDiagram": "Interactief diagram zichtbaar op het bureaublad",
    "ctaTitle": "Klaar om uw AI-infrastructuur te vereenvoudigen?",
    "ctaDescription": "Sluit u aan bij ontwikkelaars die hun AI-integraties stroomlijnen met OmniRoute. Open source en gratis om te beginnen.",
    "startFree": "Begin gratis",
    "readDocumentation": "Documentatie lezen"
  },
  "docs": {
    "title": "Documentatie",
    "quickStart": "Snel beginnen",
    "deploymentGuides": "Implementatiehandleidingen",
    "features": "Kenmerken",
    "supportedProviders": "Ondersteunde providers",
    "supportedProvidersToc": "Aanbieders",
    "commonUseCases": "Veelvoorkomende gebruiksscenario's",
    "clientCompatibility": "Compatibiliteit met klanten",
    "protocolsToc": "Protocols",
    "apiReference": "API-referentie",
    "managementApiReference": "Management API Reference",
    "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
    "method": "Methode",
    "path": "Pad",
    "notes": "Opmerkingen",
    "modelPrefixes": "Modelvoorvoegsels",
    "prefix": "Voorvoegsel",
    "troubleshooting": "Problemen oplossen",
    "supportsChat": "Ondersteunt zowel chat- als reacties-eindpunten.",
    "oauthAutoRefresh": "OAuth-verbinding met automatische tokenvernieuwing.",
    "fullStreaming": "Volledige streamingondersteuning voor alle modellen.",
    "docsLabel": "Documenten",
    "docsHeroDescription": "AI-gateway voor LLM's met meerdere providers. Eén eindpunt voor OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor en nog meer dan 20 providers.",
    "openDashboard": "Dashboard openen",
    "endpointPage": "Eindpuntpagina",
    "github": "GitHub",
    "reportIssue": "Rapporteer probleem",
    "onThisPage": "Op deze pagina",
    "documentationVersion": "Documentatie - v{version}",
    "quickStartStep1Title": "1. Installeren en uitvoeren",
    "quickStartStep1Prefix": "Rennen",
    "quickStartStep1Middle": "of kloon van GitHub en voer het uit",
    "quickStartStep2Title": "2. Maak een API-sleutel",
    "quickStartStep2Text": "Ga naar Eindpunt -> Geregistreerde sleutels. Genereer één sleutel per omgeving.",
    "quickStartStep3Title": "3. Verbind aanbieders",
    "quickStartStep3Text": "Voeg provideraccounts toe via OAuth-aanmelding, API-sleutel of gratis automatische verbinding.",
    "quickStartStep4Title": "4. Stel de clientbasis-URL in",
    "quickStartStep4Prefix": "Verwijs naar uw IDE- of API-client",
    "quickStartStep4Suffix": "Gebruik bijvoorbeeld het providervoorvoegsel",
    "deploySetupTitle": "Installatiehandleiding",
    "deploySetupText": "Stapsgewijze installatie, omgevingsconfiguratie en eerste uitvoering van OmniRoute.",
    "deployElectronTitle": "Elektron-bureaublad",
    "deployElectronText": "Voer OmniRoute uit als een native desktop-applicatie op Windows, macOS en Linux.",
    "deployDockerTitle": "Dokwerker",
    "deployDockerText": "Implementatie in containers met Docker Compose; klaar voor productiestacks en Kubernetes.",
    "deployVmTitle": "Virtuele machine",
    "deployVmText": "Zelfhosting op elke Linux-VM. Inclusief systemd unit, logrotatie en back-uptools.",
    "deployFlyTitle": "Vlieg.io",
    "deployFlyText": "Implementeer naar Fly.io edge runtime met één fly.toml en één implementatieopdracht.",
    "deployPwaTitle": "PWA",
    "deployPwaText": "Installeer OmniRoute als een progressieve webapp op Android-, iOS- en desktopbrowsers.",
    "deployTermuxTitle": "Termux (Android)",
    "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
    "featureRoutingTitle": "Routering door meerdere providers",
    "featureRoutingText": "Routeer verzoeken naar meer dan 30 AI-providers via één enkel OpenAI-compatibel eindpunt. Ondersteunt API's voor chat, reacties, audio en afbeeldingen.",
    "featureCombosTitle": "Combo's en balanceren",
    "featureCombosText": "Creëer modelcombinaties met fallback-ketens en balanceringsstrategieën: round-robin, prioriteit, willekeurig, minst gebruikt en kostengeoptimaliseerd.",
    "featureUsageTitle": "Gebruik en kosten bijhouden",
    "featureUsageText": "Realtime tokentelling, kostenberekening per provider/model en gedetailleerd gebruiksoverzicht per API-sleutel en account.",
    "featureAnalyticsTitle": "Analytics-dashboard",
    "featureAnalyticsText": "Visuele analyses met grafieken voor verzoeken, tokens, fouten, latentie, kosten en modelpopulariteit in de loop van de tijd.",
    "featureHealthTitle": "Gezondheidsmonitoring",
    "featureHealthText": "Live statuscontroles, providerstatus, status van stroomonderbrekers en automatische detectie van snelheidslimieten met exponentiële uitstel.",
    "featureCliTitle": "CLI-hulpmiddelen",
    "featureCliText": "Beheer IDE-configuraties, exporteer/importeer back-ups, ontdek codexprofielen en configureer instellingen vanaf het dashboard.",
    "featureSecurityTitle": "Beveiliging en beleid",
    "featureSecurityText": "API-sleutelverificatie, IP-filtering, prompt injection guard, domeinbeleid, sessiebeheer en auditlogboekregistratie.",
    "featureCloudSyncTitle": "Cloudsynchronisatie",
    "featureCloudSyncText": "Synchroniseer uw configuratie met Cloudflare Workers voor externe toegang met gecodeerde inloggegevens en automatische failover.",
    "providersAcrossConnectionTypes": "{count} providers in drie verbindingstypen.",
    "manageProviders": "Beheer aanbieders",
    "providersCount": "{count} aanbieders",
    "providerTypeFree": "Gratis niveau",
    "providerTypeOAuth": "OAuth",
    "providerTypeApiKey": "API-sleutel",
    "useCaseSingleEndpointTitle": "Eén eindpunt voor veel providers",
    "useCaseSingleEndpointText": "Verwijs clients naar één basis-URL en routeer op modelvoorvoegsel (bijvoorbeeld: gh/, cc/, kr/, openai/).",
    "useCaseFallbackTitle": "Fallback en modelwisseling met combo's",
    "useCaseFallbackText": "Creëer combomodellen in Dashboard en houd de clientconfiguratie stabiel terwijl providers intern roteren.",
    "useCaseUsageVisibilityTitle": "Zichtbaarheid van gebruik, kosten en foutopsporing",
    "useCaseUsageVisibilityText": "Houd tokens en kosten bij per provider, account en API-sleutel op de tabbladen Gebruik en Analyse.",
    "clientCherryStudioTitle": "Kersenstudio",
    "baseUrlLabel": "Basis-URL",
    "chatEndpointLabel": "Chat-eindpunt",
    "modelRecommendationLabel": "Modelaanbeveling: expliciet voorvoegsel",
    "clientCodexTitle": "Codex / GitHub Copilot-modellen",
    "clientCodexBullet1": "Gebruik model-ID's met",
    "clientCodexBullet2": "Modellen uit de Codex-familie routeren automatisch naar",
    "clientCodexBullet3": "Niet-Codex-modellen gaan door",
    "clientCursorTitle": "Cursor-IDE",
    "clientCursorBullet1": "Gebruik",
    "clientCursorBullet1Suffix": "voorvoegsel voor Cursor-modellen.",
    "clientCursorBullet2": "OAuth-verbinding - log in vanaf de pagina Providers.",
    "clientClaudeTitle": "Claude Code / Antizwaartekracht",
    "clientClaudeBullet1Prefix": "Gebruik",
    "clientClaudeBullet1Middle": "(Claude) of",
    "clientClaudeBullet1Suffix": "(Antizwaartekracht) voorvoegsel.",
    "clientWindsurfTitle": "Windsurfen",
    "clientWindsurfBullet1": "Gebruik OmniRoute als een OpenAI-compatibele basis-URL en behoud expliciete providervoorvoegsels voor deterministische routering.",
    "clientWindsurfBullet2": "Verwijs modellen naar `/v1/chat/completions` voor algemeen verkeer en behoud `/v1/responses` voor stromen in Codex-stijl.",
    "clientWindsurfBullet3": "Gebruik Dashboard -> CLI Tools voor een kant-en-klare Windsurf-configuratiegids.",
    "clientClineTitle": "Klijn",
    "clientClineBullet1": "Cline werkt het beste met expliciete provider-/modelvoorvoegsels, zodat de router nooit de backend hoeft te raden.",
    "clientClineBullet2": "Gebruik `/v1/chat/completions` voor algemene modellen en hergebruik dezelfde OmniRoute-basis-URL voor verschillende accounts.",
    "clientClineBullet3": "Gebruik het Providers-dashboard om de OAuth/API-sleutel te valideren voordat u Cline-runtimeproblemen oplost.",
    "clientKimiTitle": "Kimi-codering",
    "clientKimiBullet1": "Gebruik OmniRoute als een stabiele basis-URL terwijl u daaronder accounts of providercombinaties roteert.",
    "clientKimiBullet2": "Geef de voorkeur aan vooraf ingestelde modellen in codeerstromen, zodat fallback en audittrail expliciet blijven.",
    "clientKimiBullet3": "Gebruik `/v1/responses` als u routering in native Response-stijl wilt voor clients die tools gebruiken.",
    "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-compatibel chat-eindpunt (standaard).",
    "endpointResponsesNote": "Reacties API-eindpunt (Codex, o-serie).",
    "endpointModelsNote": "Modelcatalogus voor alle aangesloten providers.",
    "endpointAudioNote": "Audiotranscriptie (Deepgram, AssemblyAI).",
    "endpointSpeechNote": "Tekst-naar-spraakgeneratie (ElevenLabs, OpenAI TTS).",
    "endpointEmbeddingsNote": "Genereren van tekstinsluiting (OpenAI, Cohere, Voyage).",
    "endpointImagesNote": "Beeldgeneratie (NanoBanana).",
    "endpointRewriteChatNote": "Herschrijfhulp voor clients zonder /v1.",
    "endpointRewriteResponsesNote": "Herschrijfhulp voor reacties zonder /v1.",
    "endpointRewriteModelsNote": "Herschrijfhulp voor modeldetectie zonder /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": "Gebruik het providervoorvoegsel vóór de modelnaam om naar een specifieke provider te routeren. Voorbeeld:",
    "modelPrefixesDescriptionEnd": "routes naar GitHub Copilot.",
    "provider": "Aanbieder",
    "type": "Typ",
    "troubleshootingModelRouting": "Als de client faalt met modelrouting, gebruik dan een expliciete provider/model (bijvoorbeeld: gh/gpt-5.1-codex).",
    "troubleshootingAmbiguousModels": "Als u dubbelzinnige modelfouten ontvangt, kiest u een providervoorvoegsel in plaats van een kale model-ID.",
    "troubleshootingCodexFamily": "Voor modellen uit de GitHub Codex-familie behoudt u het model als gh/codex-model; router selecteert /responses automatisch.",
    "troubleshootingTestConnection": "Gebruik Dashboard > Providers > Verbinding testen voordat u gaat testen vanaf IDE's of externe clients.",
    "troubleshootingCircuitBreaker": "Als een provider aangeeft dat de stroomonderbreker open is, wacht dan op de cooldown of kijk op de Gezondheidspagina voor meer informatie.",
    "troubleshootingOAuth": "Voor OAuth-providers geldt dat u opnieuw moet verifiëren als tokens verlopen. Controleer de statusindicator van de providerkaart.",
    "endpointCompletionsNote": "Verouderd voltooiingseindpunt voor het genereren van tekst.",
    "endpointModerationsNote": "Contentmoderatie en veiligheidsclassificatie.",
    "endpointRerankNote": "Herschikking van documenten voor het genereren van ophaalmogelijkheden (Cohere, Jina).",
    "endpointSearchNote": "Zoeken op internet met 5 providers (Serper, Brave, Exa, Tavily, Perplexity).",
    "endpointSearchAnalyticsNote": "Analyses en statistieken voor zoekopdrachten.",
    "endpointVideoNote": "Videogeneratie (ComfyUI, SD WebUI-workflows).",
    "endpointMusicNote": "Muziek genereren via ComfyUI-workflows.",
    "endpointMessagesNote": "Antropisch-native berichteneindpunt.",
    "endpointCountTokensNote": "Tel tokens voor een bepaalde berichtlading.",
    "endpointFilesNote": "Bestandsupload voor multimodale invoer.",
    "endpointBatchesNote": "Batchverwerking voor bulk-API-verzoeken.",
    "endpointWsNote": "WebSocket-eindpunt voor realtime streaming.",
    "mgmtProvidersListNote": "Maak een lijst van alle geregistreerde providerverbindingen.",
    "mgmtProvidersCreateNote": "Maak een nieuwe providerverbinding aan.",
    "mgmtProvidersUpdateNote": "Update een bestaande providerverbinding.",
    "mgmtProvidersDeleteNote": "Een providerverbinding verwijderen.",
    "mgmtProvidersTestNote": "Test connectiviteit en authenticatie voor een provider.",
    "mgmtProvidersModelsNote": "Vermeld beschikbare modellen voor een specifieke aanbieder.",
    "mgmtSettingsGetNote": "Haal de huidige applicatie-instellingen op.",
    "mgmtSettingsUpdateNote": "Applicatie-instellingen bijwerken.",
    "mgmtPayloadRulesGetNote": "Regels voor payload-transformatie ophalen.",
    "mgmtPayloadRulesUpdateNote": "Update regels voor payloadtransformatie.",
    "mcpToolsTitle": "MCP-hulpmiddelen",
    "mcpToolsDescription": "OmniRoute stelt {count} tools beschikbaar via Model Context Protocol voor agentorkestratie.",
    "mcpToolsCount": "{count} gereedschappen",
    "mcpToolsToc": "MCP-hulpmiddelen",
    "mcpToolsRoutingTitle": "Routering en ontdekking",
    "mcpToolsRoutingDesc": "Gezondheidscontroles, combobeheer, quotabewaking, kostenrapportage en toegang tot modelcatalogussen.",
    "mcpToolsOperationsTitle": "Operaties & Strategie",
    "mcpToolsOperationsDesc": "Routesimulatie, budgetbewaking, strategiewisseling, veerkrachtprofielen en providerstatistieken.",
    "mcpToolsCacheTitle": "Cachebeheer",
    "mcpToolsCacheDesc": "Bekijk cachestatistieken en spoel semantische caches of handtekeningcaches.",
    "mcpToolsCompressionTitle": "Compressiemotoren",
    "mcpToolsCompressionDesc": "Configureer RTK/Brotli-compressie, wissel van engine en inspecteer compressieanalyses per combo.",
    "mcpToolsOneProxyTitle": "1Proxy / Tunnels",
    "mcpToolsOneProxyDesc": "Beheer uitgaande proxy's, roteer residentiële IP's en inspecteer de proxystatus.",
    "mcpToolsMemoryTitle": "Geheugen",
    "mcpToolsMemoryDesc": "Zoeken, toevoegen en wissen van persistente gespreksgeheugenvermeldingen.",
    "mcpToolsSkillsTitle": "Vaardigheden",
    "mcpToolsSkillsDesc": "Maak een overzicht van de uitvoering van aangepaste vaardigheden, schakel deze in, voer deze uit en bewaak deze.",
    "featureAutoComboTitle": "Automatische combo",
    "featureAutoComboText": "Creëer automatisch geoptimaliseerde combo's op basis van uw aangesloten providers, gebruikspatronen en modelmogelijkheden.",
    "featureSearchTitle": "Zoeken op internet",
    "featureSearchText": "Geïntegreerde webzoekopdracht met 5 providers (Serper, Brave, Exa, Tavily, Perplexity) inclusief analyses en kostenregistratie.",
    "featureMemoryTitle": "Geheugensysteem",
    "featureMemoryText": "Aanhoudend gespreksgeheugen met extractie, injectie, ophalen en samenvatting tussen sessies.",
    "featureSkillsTitle": "Vaardighedenkader",
    "featureSkillsText": "Uitbreidbaar vaardigheidssysteem met ingebouwde en aangepaste vaardigheden, sandbox-uitvoering, onderschepping van verzoeken en contextinjectie.",
    "featureAcpTitle": "Agentcommunicatie",
    "featureAcpText": "Agent Communication Protocol (ACP)-register voor het beheren van agent-tot-agent-workflows en tool-orkestratie.",
    "protocolAcpTitle": "ACP (agentcommunicatie)",
    "protocolAcpDesc": "Registreer en beheer agenten via het ACP-register voor communicatie tussen agenten en het delen van tools.",
    "protocolAcpStep1": "Navigeer naar Dashboard → Agenten om geregistreerde ACP-agenten te bekijken.",
    "protocolAcpStep2": "Registreer nieuwe agenten met mogelijkheden en eindpuntconfiguratie.",
    "protocolAcpStep3": "Gebruik CLI Tools om communicatiekanalen voor agenten te configureren."
  },
  "legal": {
    "privacyPolicy": "Privacybeleid",
    "termsOfService": "Servicevoorwaarden",
    "providerConfigurations": "Providerconfiguraties",
    "apiKeys": "API-sleutels",
    "usageLogs": "Gebruikslogboeken",
    "applicationSettings": "Applicatie-instellingen",
    "viewExportAnalytics": "Gebruiksanalyses bekijken en exporteren",
    "clearHistory": "Wis de gebruiksgeschiedenis op elk gewenst moment",
    "configureRetention": "Configureer het bewaarbeleid voor logboeken",
    "backupRestore": "Maak een back-up van uw database en herstel deze",
    "privacyMetadataTitle": "Privacybeleid | OmniRoute",
    "privacyMetadataDescription": "Privacybeleid voor de OmniRoute AI API-proxyrouter.",
    "termsMetadataTitle": "Servicevoorwaarden | OmniRoute",
    "termsMetadataDescription": "Servicevoorwaarden voor de OmniRoute AI API-proxyrouter.",
    "backToHome": "Terug naar huis",
    "lastUpdated": "Laatst bijgewerkt: {date}",
    "policyLastUpdatedDate": "13 februari 2026",
    "listSeparator": "-",
    "questionsVisit": "Vragen? Bezoek onze",
    "githubRepository": "GitHub-opslagplaats",
    "privacySection1Title": "1. Lokaal-eerste architectuur",
    "privacySection1Text": "OmniRoute is ontworpen als een local-first applicatie. Alle gegevensverwerking en opslag vindt volledig op uw machine plaats. Er is geen gecentraliseerde server die uw gegevens verzamelt.",
    "privacySection2Title": "2. Gegevens die we opslaan",
    "privacyDataStoredIn": "De volgende gegevens worden lokaal opgeslagen in",
    "privacyDataProviderConfigurationsDesc": "verbindings-URL's, providertypen en prioriteitsinstellingen",
    "privacyDataApiKeysDesc": "gecodeerd en lokaal opgeslagen voor authenticatie bij AI-providers",
    "privacyDataUsageLogsDesc": "aantal verzoeken, tokengebruik, modelnamen, tijdstempels en responstijden",
    "privacyDataApplicationSettingsDesc": "themavoorkeuren, routeringsstrategie en combo-configuraties",
    "privacySection3Title": "3. Geen telemetrie",
    "privacySection3Text": "OmniRoute verzamelt geen telemetrie-, analyse- of crashrapporten. Er worden geen gegevens naar ons of een derde partij verzonden. Uw gebruikspatronen, API-aanroepen en configuraties blijven volledig privé.",
    "privacySection4Title": "4. Externe AI-aanbieders",
    "privacySection4Text": "Wanneer u API-aanroepen doet via OmniRoute, worden uw verzoeken doorgestuurd naar de AI-providers die u heeft geconfigureerd (bijvoorbeeld: OpenAI, Anthropic, Google). Deze providers hebben hun eigen privacybeleid waarin wordt bepaald hoe zij met uw gegevens omgaan. Controleer alstublieft:",
    "privacyOpenAiPolicy": "OpenAI-privacybeleid",
    "privacyAnthropicPolicy": "Antropisch privacybeleid",
    "privacyGooglePolicy": "Google-privacybeleid",
    "privacySection5Title": "5. Cloudsynchronisatie (optioneel)",
    "privacySection5Text": "Als u de optionele cloudsynchronisatiefunctie inschakelt, kunnen providerconfiguraties en API-sleutels worden verzonden naar een geconfigureerd cloudeindpunt. Deze functie is standaard uitgeschakeld en vereist expliciete aanmelding.",
    "privacySection6Title": "6. Loggen",
    "privacyLoggingIntro": "Verzoeklogboeken kunnen worden geconfigureerd via de dashboardinstellingen. U kunt:",
    "privacySection7Title": "7. Uw rechten",
    "privacySection7TextStart": "Omdat alle gegevens lokaal worden opgeslagen, heeft u volledige controle. U kunt uw gegevens op elk gewenst moment verwijderen door de",
    "privacySection7TextEnd": "map of met behulp van de databaseback-up- en -herstelfuncties in het dashboard.",
    "termsSection1Title": "1. Overzicht",
    "termsSection1Text": "OmniRoute is een local-first AI API-proxyrouter die volledig op uw machine werkt. Het stuurt verzoeken door naar meerdere AI-providers met taakverdeling, failover en gebruiksregistratie.",
    "termsSection2Title": "2. Verantwoordelijkheden van gebruikers",
    "termsResponsibilityApiKeys": "U bent als enige verantwoordelijk voor het beheer van uw eigen API-sleutels en inloggegevens voor externe AI-providers (OpenAI, Anthropic, Google, enz.).",
    "termsResponsibilityCompliance": "U moet voldoen aan de servicevoorwaarden van elke AI-provider waarvan u via OmniRoute toegang krijgt tot de API.",
    "termsResponsibilitySecurity": "U bent verantwoordelijk voor de beveiliging van uw lokale OmniRoute-installatie, inclusief het instellen van een wachtwoord en het beperken van netwerktoegang.",
    "termsSection3Title": "3. Hoe het werkt",
    "termsSection3Text": "OmniRoute fungeert als intermediaire proxy. API-aanroepen die naar OmniRoute worden verzonden, worden vertaald en doorgestuurd naar uw geconfigureerde AI-providers. OmniRoute wijzigt de inhoud van uw verzoeken of antwoorden niet behalve de noodzakelijke protocolvertaling.",
    "termsSection4Title": "4. Gegevensverwerking",
    "termsDataStoredLocally": "Alle gegevens worden lokaal op uw machine opgeslagen in een SQLite-database.",
    "termsNoTransmission": "OmniRoute verzendt geen gegevens naar externe servers, tenzij u expliciet cloudsynchronisatiefuncties inschakelt.",
    "termsDataLocationText": "Gebruikslogboeken, API-sleutels en configuratie worden opgeslagen in",
    "termsSection5Title": "5. Disclaimer",
    "termsSection5Text": "OmniRoute wordt geleverd \"zoals het is\" zonder enige vorm van garantie. Wij zijn niet verantwoordelijk voor eventuele kosten die voortvloeien uit API-gebruik, serviceonderbrekingen of gegevensverlies. Zorg altijd voor back-ups van uw configuratie.",
    "termsSection6Title": "6. Open-source",
    "termsSection6Text": "OmniRoute is open source-software. U bent vrij om het te inspecteren, wijzigen en distribueren onder de voorwaarden van de licentie."
  },
  "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 versus agentdoelen: wat is het verschil?",
    "comparisonCliToolsLabel": "CLI Tools-pagina",
    "comparisonCliToolsTitle": "Uw IDE verzendt verzoeken via OmniRoute",
    "comparisonCliToolsDesc": "Configureer Claude Code, Codex, Cursor en andere IDE's om OmniRoute te gebruiken als hun API-basis-URL. OmniRoute fungeert als proxy en stuurt verzoeken door naar uw geconfigureerde providers.",
    "comparisonAgentsLabel": "Deze pagina (agentdoelen)",
    "comparisonAgentsTitle": "OmniRoute verzendt verzoeken naar lokale CLI-tools",
    "comparisonAgentsDesc": "OmniRoute kan lokale CLI-binaire bestanden (claude, codex, goose) voortbrengen als backends voor uitvoering. De CLI-tool verwerkt het verzoek met behulp van zijn eigen authenticatie en retourneert het resultaat.",
    "comparisonSummary": "Kortom: CLI Tools = u configureert tools zodat deze naar OmniRoute verwijzen. Agentdoelen = OmniRoute gebruikt tools als eindpunten.",
    "agentUseCaseHint": "Kan worden gebruikt als uitvoeringsdoel via het ACP-protocol",
    "flowDiagramClient": "Klant-app",
    "flowDiagramClientDesc": "SDK, API of upstream-service",
    "flowDiagramOmniRoute": "OmniRoute",
    "flowDiagramOmniRouteDesc": "Ontvangt verzoek en selecteert doel",
    "flowDiagramSpawn": "Spawn-proces",
    "flowDiagramSpawnDesc": "Start CLI binair via stdio",
    "flowDiagramCli": "CLI-agent",
    "flowDiagramCliDesc": "Processen met eigen autorisatie/model",
    "fingerprintSettingsHint": "CLI Fingerprint matching (vermomde verzoeken als specifieke CLI-tools) kan worden geconfigureerd",
    "settingsRoutingLink": "Instellingen/Routing",
    "openSettings": "Instellingen",
    "copyRawUrlTitle": "Kopieer de onbewerkte URL naar het klembord",
    "copied": "Gekopieerd!",
    "copyUrl": "Kopieer URL",
    "startHere": "Begin hier",
    "badgeNew": "Nieuw",
    "viewOnGithub": "Bekijk op GitHub",
    "howToUse": "Hoe te gebruiken",
    "browseAllSkillsOnGithub": "Blader door alle vaardigheden op GitHub",
    "apiSkills": "API-vaardigheden",
    "cliSkills": "CLI-vaardigheden",
    "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": "Cloudagenten",
    "description": "Beheer autonome codeeragenten (Jules, Devin, Codex Cloud)",
    "loading": "Taken laden...",
    "aboutTitle": "Over cloudagenten",
    "aboutDescription": "Cloudagenten zijn AI-codeerassistenten op afstand die taken autonoom kunnen uitvoeren. Ze werken anders dan lokale CLI-agents: u communiceert met hen via de API van OmniRoute.",
    "howItWorksTitle": "Hoe het werkt:",
    "howItWorksDesc": "Maak een taak aan → Agent analyseert en stelt een plan voor → U keurt het goed → Agent voert uit → Resultaten geretourneerd",
    "newTaskTitle": "Nieuwe taak maken",
    "newTaskDescription": "Start een nieuwe taak met een cloudagent",
    "selectAgent": "Selecteer Agent",
    "taskDescription": "Taakbeschrijving",
    "taskDescriptionPlaceholder": "Beschrijf wat u wilt dat de agent doet...",
    "startTask": "Taak starten",
    "tasks": "Taken",
    "taskDetail": "Taakdetails",
    "noTasks": "Nog geen taken. Maak er een om aan de slag te gaan.",
    "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": "Naamloze taak",
    "created": "Gemaakt",
    "conversation": "Gesprek",
    "result": "Resultaat",
    "error": "Fout",
    "planReady": "Plan gereed voor goedkeuring",
    "approvePlan": "Plan goedkeuren",
    "rejectPlan": "Weigeren en annuleren",
    "sendMessagePlaceholder": "Stuur een bericht naar de agent...",
    "cancel": "Annuleer",
    "delete": "Verwijderen",
    "selectTaskPrompt": "Selecteer een taak om details te bekijken",
    "statusPending": "In behandeling",
    "statusRunning": "Rennen",
    "statusWaitingApproval": "Wachten op goedkeuring",
    "statusCompleted": "Voltooid",
    "statusFailed": "Mislukt",
    "statusCancelled": "Geannuleerd",
    "repositoryName": "Naam van opslagplaats",
    "repositoryUrl": "Repository-URL",
    "branch": "Tak"
  },
  "templateNames": {
    "simple-chat": "Eenvoudig chatten",
    "streaming": "Streamen",
    "system-prompt": "Systeemprompt",
    "thinking": "Denken",
    "tool-calling": "Gereedschap bellen",
    "multi-turn": "Multi-turn",
    "vision": "Visie",
    "schema-coercion": "Schema dwang"
  },
  "templateDescriptions": {
    "simple-chat": "Basischatsjabloon met systeembericht",
    "streaming": "Sjabloon voor het streamen van antwoorden",
    "system-prompt": "Sjabloon met aangepaste systeemprompt",
    "thinking": "Sjabloon met redeneer-/denkbudget",
    "tool-calling": "Sjabloon voor het oproepen van gereedschap/functies",
    "multi-turn": "Sjabloon voor gesprekken met meerdere beurten",
    "vision": "Multimodale sjabloon met beeldinvoer",
    "schema-coercion": "Afdwinging van gestructureerde uitvoer/JSON-schema's"
  },
  "templatePayloads": {
    "simpleChat": {
      "system": "Je bent een behulpzame AI-assistent.",
      "userGreeting": "Hallo! Hoe kan ik je vandaag helpen?"
    },
    "streaming": {
      "prompt": "Schrijf een verhaal over"
    },
    "systemPrompt": {
      "question": "Wat is de zin van het leven?",
      "systemInstruction": "Geef een doordacht, filosofisch antwoord."
    },
    "thinking": {
      "question": "Kwantumcomputers uitleggen"
    },
    "toolCalling": {
      "cityNameDescription": "De naam van de stad waarvoor u het weer wilt ophalen",
      "toolDescription": "Ontvang het huidige weer voor een locatie",
      "userWeather": "Hoe is het weer in Tokio?"
    },
    "multiTurn": {
      "system": "Je bent een behulpzame assistent.",
      "assistantExample": "Ik help je daar graag mee.",
      "userInitial": "Ik heb hulp nodig bij",
      "userFollowUp": "Kunt u dat nader toelichten?"
    }
  },
  "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": "Redenering herhaling",
    "reasoningCacheDesc": "Behoudt modeldenken voor multi-turn tool-aanroepstromen",
    "reasoningEntries": "Actieve inzendingen",
    "reasoningReplayRate": "Herhalingssnelheid",
    "reasoningReplays": "Totaal aantal herhalingen",
    "reasoningCharsCached": "Karakters in cache",
    "reasoningMisses": "Cache-missers",
    "reasoningByProvider": "Door aanbieder",
    "reasoningByModel": "Per model",
    "reasoningRecentEntries": "Recente inzendingen",
    "reasoningToolCallId": "Gereedschapsoproep-ID",
    "reasoningChars": "Karakters",
    "reasoningAge": "Leeftijd",
    "reasoningView": "Bekijk",
    "reasoningDetail": "Redenering Inhoud",
    "reasoningBehavior": "Gedrag",
    "reasoningBehaviorCapture": "Legt redeneringsinhoud vast van streaming-reacties",
    "reasoningBehaviorReplay": "Wordt bij de volgende beurt opnieuw geïnjecteerd als de cliënt dit achterwege laat",
    "reasoningBehaviorFallback": "Geheugen voorop met SQLite fallback voor crashherstel",
    "reasoningBehaviorTtl": "TTL: 2 uur | Max. invoer: 2.000 (geheugen)",
    "reasoningBehaviorModels": "Ondersteund: DeepSeek, Kimi, Qwen-Thinking, GLM",
    "reasoningClearAll": "Wis redeneercache",
    "reasoningClearSuccess": "{count} redeneringscachegegevens gewist",
    "reasoningClearError": "Kan de redeneringscache niet wissen",
    "reasoningNoData": "Er zijn nog geen redeneringsitems in de cache opgeslagen. Er verschijnen gegevens wanneer denkmodellen gebruik maken van tool calling.",
    "cachePerformanceRetry": "Opnieuw proberen",
    "cachePerformanceHitRate": "Hitpercentage",
    "cachePerformanceAvgLatency": "Gem. latentie (ms)",
    "cachePerformanceP95Latency": "p95 Latentie (ms)",
    "retry": "Opnieuw proberen",
    "reasoningAvgChars": "Gem. aantal tekens",
    "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": "Globaal",
    "levelProvider": "Aanbieder",
    "levelCombo": "Combinatie",
    "levelKey": "Sleutel",
    "levelDirect": "Direct (geen proxy)",
    "titleGlobal": "Algemene proxyconfiguratie",
    "titleLevel": "{level} Proxy — {label}",
    "loading": "Proxyconfiguratie laden...",
    "inheritingFrom": "Erven van",
    "source": "Bron",
    "savedProxy": "Opgeslagen proxy",
    "custom": "Aangepast",
    "selectSavedProxyPlaceholder": "Selecteer opgeslagen proxy...",
    "proxyType": "Proxytype",
    "host": "Gastheer",
    "hostPlaceholder": "1.2.3.4 of proxy.example.com",
    "port": "Haven",
    "authOptional": "Authenticatie (optioneel)",
    "username": "Gebruikersnaam",
    "usernamePlaceholder": "Gebruikersnaam",
    "password": "Wachtwoord",
    "passwordPlaceholder": "Wachtwoord",
    "connected": "Verbonden",
    "ip": "IP-adres:",
    "connectionFailed": "Verbinding mislukt",
    "testConnection": "Verbinding testen",
    "clear": "Duidelijk",
    "cancel": "Annuleer",
    "save": "Opslaan",
    "errorSelectSavedProxy": "Selecteer eerst een opgeslagen proxy.",
    "errorSelectProxyFirst": "Selecteer eerst een proxy.",
    "errorProxyNotFound": "Geselecteerde proxy niet gevonden.",
    "errorClearSavedProxy": "Kan de opgeslagen proxy niet wissen",
    "errorSaveProxy": "Kan de proxyconfiguratie niet opslaan",
    "errorClearProxy": "Kan de proxyconfiguratie niet wissen",
    "errorSocks5Hidden": "SOCKS5 is geconfigureerd maar verborgen omdat NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
  },
  "oauthModal": {
    "title": "Verbind {providerName}",
    "waiting": "Wachten op toestemming",
    "completeAuthInPopup": "Volledige autorisatie in pop-up.",
    "popupClosedHint": "Als de pop-up wordt gesloten zonder terug te keren (bijvoorbeeld Qoder), schakelt dit dialoogvenster automatisch over naar de handmatige URL-invoermodus.",
    "popupBlocked": "Pop-up geblokkeerd? Voer de URL handmatig in",
    "deviceCodeVisitUrl": "Bezoek de onderstaande URL en voer de code in:",
    "deviceCodeVerificationUrl": "Verificatie-URL",
    "deviceCodeYourCode": "Jouw code",
    "deviceCodeWaiting": "Wachten op toestemming...",
    "googleOAuthWarning": "Toegang op afstand + Google OAuth: standaardgegevens accepteren alleen omleidingen naar <code>localhost</code>. Na autorisatie probeert uw browser <code>localhost</code> te openen. Kopieer de volledige URL en plak deze hieronder. Voor volledig extern gebruik zonder deze handmatige stap, <a>configureert u uw eigen OAuth-inloggegevens</a>.",
    "remoteAccessInfo": "Toegang op afstand: Omdat u OmniRoute op afstand gebruikt, ziet u na autorisatie een foutpagina (localhost niet gevonden). Dit is normaal: kopieer gewoon de volledige URL uit de adresbalk van uw browser en plak deze hieronder.",
    "step1OpenUrl": "Stap 1: Open deze URL in uw browser",
    "copy": "Kopieer",
    "step2PasteCallback": "Stap 2: Plak hier de terugbel-URL of autorisatiecode",
    "step2Hint": "Plak na autorisatie de volledige callback-URL. Voor Claude Code en Cline kunt u de authenticatiecode ook rechtstreeks plakken, b.v. <code>code#staat</code>.",
    "connect": "Verbinden",
    "cancel": "Annuleer",
    "success": "Verbinding succesvol!",
    "successMessage": "Uw {providerName} account is gekoppeld.",
    "done": "Klaar",
    "error": "Verbinding mislukt",
    "tryAgain": "Probeer het opnieuw"
  },
  "cursorAuthModal": {
    "title": "Sluit Cursor-IDE aan",
    "autoDetecting": "Tokens automatisch detecteren...",
    "readingFromCursor": "Lezen vanuit Cursor IDE of cursor-agent",
    "tokensAutoDetected": "Tokens succesvol automatisch gedetecteerd vanuit Cursor IDE!",
    "cursorNotDetected": "Cursor-IDE niet gedetecteerd. Plak uw token handmatig.",
    "accessToken": "Toegangstoken",
    "required": "*",
    "accessTokenPlaceholder": "Toegangstoken wordt automatisch ingevuld...",
    "machineId": "Machine-ID",
    "optional": "(optioneel)",
    "machineIdPlaceholder": "Machine-ID wordt automatisch ingevuld...",
    "importing": "Importeren...",
    "importToken": "Token importeren",
    "cancel": "Annuleer",
    "errorAutoDetect": "Kan tokens niet automatisch detecteren",
    "errorAutoDetectFailed": "Automatische detectie van tokens is mislukt",
    "errorEnterToken": "Voer een toegangstoken in",
    "errorImportFailed": "Importeren is mislukt"
  },
  "pricingModal": {
    "title": "Prijsconfiguratie",
    "loading": "Prijsgegevens laden...",
    "pricingRatesFormat": "Formaat prijstarieven",
    "ratesDescription": "Alle tarieven zijn in <strong>dollars per miljoen tokens</strong> ($/1 miljoen tokens). Voorbeeld: Invoersnelheid van 2,50 betekent €2,50 per 1.000.000 invoertokens.",
    "model": "Model",
    "input": "Invoer",
    "output": "Uitvoer",
    "cached": "In cache opgeslagen",
    "reasoning": "Redenering",
    "cacheCreation": "Cache-creatie",
    "noPricingData": "Geen prijsgegevens beschikbaar",
    "resetToDefaults": "Resetten naar standaardwaarden",
    "cancel": "Annuleer",
    "saving": "Opslaan...",
    "saveChanges": "Wijzigingen opslaan",
    "resetConfirm": "Alle prijzen terugzetten naar de standaardwaarden? Dit kan niet ongedaan worden gemaakt.",
    "errorSaveFailed": "Kan de prijzen niet opslaan",
    "errorResetFailed": "Kan de prijzen niet opnieuw instellen"
  },
  "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": "Gastheer",
    "labelPort": "Haven",
    "labelUsername": "Gebruikersnaam",
    "labelPassword": "Wachtwoord",
    "labelRegion": "Regio",
    "labelStatus": "Status",
    "labelNotes": "Opmerkingen",
    "usernamePlaceholderEdit": "Laat dit leeg om de huidige gebruikersnaam te behouden",
    "passwordPlaceholderEdit": "Laat dit leeg om het huidige wachtwoord te behouden",
    "statusActive": "Actief",
    "statusInactive": "Inactief",
    "cancel": "Annuleer",
    "save": "Opslaan",
    "bulkModalTitle": "Bulkproxytoewijzing",
    "bulkLabelScope": "Reikwijdte",
    "bulkLabelProxy": "Proxy",
    "bulkClearAssignment": "(Duidelijke opdracht)",
    "bulkLabelScopeIds": "Bereik-ID's (door komma's of nieuwe regels gescheiden)",
    "bulkScopeIdsPlaceholder": "provider-openai,provider-antropisch",
    "bulkApply": "Toepassen",
    "labelScope": "__MISSING__:Scope",
    "labelProxy": "__MISSING__:Proxy",
    "scopeGlobal": "__MISSING__:global",
    "scopeProvider": "__MISSING__:provider",
    "scopeAccount": "__MISSING__:account",
    "scopeCombo": "__MISSING__:combo",
    "bulkImportErrorMissingName": "NAAM ontbreekt",
    "bulkImportErrorMissingHost": "HOST ontbreekt",
    "bulkImportErrorInvalidPort": "Ongeldige POORT (moet 1-65535 zijn)",
    "bulkImportErrorInvalidType": "Ongeldig TYPE (gebruik http, https of sokken5)",
    "bulkImportErrorInvalidStatus": "Ongeldige STATUS (gebruik actief of inactief)",
    "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}% succes",
    "avgLatency": "{latency}ms gemiddeld",
    "assignmentsCount": "{count} opdrachten",
    "noData": "No Data",
    "testSuccess": "✓ {ip}",
    "testLatency": "{latency}ms",
    "testFailure": "✗ {error}",
    "bulkImport": "Bulkimport",
    "bulkImportTitle": "Bulkimportproxy's",
    "bulkImportDescription": "Plak proxyprofielen met een door pijpen gescheiden indeling. Eén proxy per lijn. Bestaande proxy's (dezelfde host + poort) worden bijgewerkt.",
    "bulkImportParse": "Parseer",
    "bulkImportImport": "Importeer {count} proxy's",
    "bulkImportImporting": "Importeren...",
    "bulkImportParsed": "{count} proxy's geparseerd",
    "bulkImportSkipped": "{count} regels overgeslagen",
    "bulkImportParseErrors": "{count} fouten",
    "bulkImportNoValidEntries": "Geen geldige vermeldingen gevonden. Controleer het formaat en probeer het opnieuw.",
    "bulkImportSuccess": "Import voltooid: {created} gemaakt, {updated} bijgewerkt, {failed} mislukt",
    "bulkImportErrorLine": "Regel {line}: {reason}",
    "bulkImportMaxExceeded": "Maximaal 100 proxy's per import",
    "bulkImportPreview": "Voorbeeld",
    "clearAssignment": "(duidelijke opdracht)",
    "bulkProxyAssignment": "Bulkproxytoewijzing"
  },
  "playground": {
    "title": "Title",
    "description": "Description",
    "endpoint": "Endpoint",
    "provider": "Provider",
    "model": "Model",
    "accountKey": "Account Key",
    "autoAccounts": "Automatisch ({count} accounts)",
    "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": "Gegenereerde {count} afbeeldingen",
    "generatedImage": "Gegenereerde afbeelding {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": "Conversatiechat",
    "clearChat": "Duidelijke chat",
    "typeMessagePlaceholder": "Typ een bericht... (Shift+Enter voor nieuwe regel)",
    "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": "Compressie",
      "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": "Bèta: UI-voorbeeld.",
    "betaConfigSavedPrefix": "Configuratie wordt opgeslagen in",
    "betaConfigSavedSuffix": "(nog niet aanwezig op de server). Het afdwingen van limieten per verzoek is nog niet opgenomen in de proxypijplijn. Op dit scherm kunt u de quotaverdeling ontwerpen en visualiseren; echte handhaving zal in een toekomstige iteratie terechtkomen met DB-persistentie en upstream-gespreksonderschepping.",
    "policyLabel": "Beleid:",
    "resetIn": "opnieuw instellen",
    "quotaTotal": "totaal"
  },
  "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"
  }
}
