{
  "common": {
    "save": "Salva",
    "cancel": "Cancellare",
    "delete": "Eliminare",
    "loading": "Caricamento...",
    "error": "Si è verificato un errore",
    "success": "Successo",
    "confirm": "Sei sicuro?",
    "refresh": "Aggiorna",
    "close": "Vicino",
    "add": "Aggiungere",
    "edit": "Modificare",
    "search": "Ricerca",
    "back": "Indietro",
    "next": "Prossimo",
    "submit": "Invia",
    "reset": "Reset",
    "copy": "Copia",
    "copied": "Copiato!",
    "enabled": "Abilitato",
    "disabled": "Disabilitato",
    "active": "Attivo",
    "inactive": "Inattivo",
    "noData": "Nessun dato disponibile",
    "nothingHere": "Nothing here yet",
    "configure": "Configura",
    "manage": "Maneggio",
    "name": "Nome",
    "actions": "Azioni",
    "status": "Stato",
    "type": "Tipo",
    "model": "Modello",
    "models": "modelli",
    "provider": "Fornitore",
    "account": "Account",
    "time": "Tempo",
    "details": "Dettagli",
    "created": "Creato",
    "lastUsed": "Last Refreshed",
    "loadMore": "Carica altro",
    "noResults": "Nessun risultato trovato",
    "reloadPage": "Ricarica la pagina",
    "connected": "Collegato",
    "disconnected": "Disconnesso",
    "notConfigured": "Non configurato",
    "testConnection": "Prova connessione",
    "enable": "Abilitare",
    "disable": "Disabilita",
    "columns": "Colonne",
    "newest": "Più recente",
    "oldest": "Il più antico",
    "all": "Tutto",
    "none": "Nessuno",
    "yes": "SÌ",
    "no": "NO",
    "on": "__MISSING__:ON",
    "off": "__MISSING__:OFF",
    "warning": "Avvertimento",
    "note": "Nota",
    "free": "Gratuito",
    "skipToContent": "Vai al contenuto",
    "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
    "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
    "accept": "accept",
    "accountId": "accountId",
    "alias": "alias",
    "apiKeyId": "apiKeyId",
    "apiKeyName": "apiKeyName",
    "apiKeySecret": "apiKeySecret",
    "authorization": "authorization",
    "content-type": "content-type",
    "content-length": "content-length",
    "cookie": "cookie",
    "file": "file",
    "host": "host",
    "id": "id",
    "import": "import",
    "limit": "limit",
    "offset": "offset",
    "open": "open",
    "origin": "origin",
    "promptTokens": "promptTokens",
    "completionTokens": "completionTokens",
    "totalTokens": "totalTokens",
    "rawModel": "rawModel",
    "scope": "scope",
    "skill": "skill",
    "sortBy": "sortBy",
    "sortOrder": "sortOrder",
    "tab": "tab",
    "text": "text",
    "textarea": "textarea",
    "tool": "tool",
    "toolId": "toolId",
    "web": "web",
    "whereUsed": "whereUsed",
    "whitelist": "whitelist",
    "blacklist": "blacklist",
    "resolve": "resolve",
    "force": "force",
    "base64url": "base64url",
    "hex": "hex",
    "range": "range",
    "component": "component",
    "redirect_uri": "redirect_uri",
    "idempotency-key": "idempotency-key",
    "error_description": "error_description",
    "code": "code",
    "compatible": "compatible",
    "chat-completions": "chat-completions",
    "oauth": "oauth",
    "auth_token": "auth_token",
    "crypto": "crypto",
    "hours": "hours",
    "selfsigned": "selfsigned",
    "proxy_id": "proxy_id",
    "proxyId": "proxyId",
    "connectionId": "connectionId",
    "resolveConnectionId": "resolveConnectionId",
    "resolve_connection_id": "resolve_connection_id",
    "scope_id": "scope_id",
    "scopeId": "scopeId",
    "jwtSecret": "jwtSecret",
    "keytar": "keytar",
    "better-sqlite3": "better-sqlite3",
    "undici": "undici",
    "builder-id": "builder-id",
    "musicDesc": "musicDesc",
    "musicGeneration": "musicGeneration",
    "idc": "idc",
    "cloud-status-changed": "cloud-status-changed",
    "where_used": "where_used",
    "windowMs": "windowMs",
    "social-github": "GitHub",
    "social-google": "Google",
    "TOOL_ALLOWLIST": "Lista consentita degli strumenti",
    "TOOL_DENYLIST": "Elenco negati dello strumento",
    "Failed to save pricing": "Impossibile salvare i prezzi",
    "Failed to reset pricing": "Impossibile reimpostare i prezzi",
    "apikey": "Chiave API",
    "http": "HTTP",
    "goToDashboard": "Go to Dashboard",
    "checkSystemStatus": "Check System Status",
    "selectModel": "Select Model",
    "combos": "Combos",
    "noModelsFound": "No models found",
    "clear": "Clear",
    "done": "Done",
    "errorOccurred": "Error Occurred",
    "comboDeleted": "Combo Deleted",
    "hide": "Hide",
    "creating": "Creating",
    "comboCreated": "Combo Created",
    "swapFormats": "Swap Formats",
    "daysAgo": "Days Ago",
    "retries": "Retries",
    "errorDuringRestore": "Error During Restore",
    "eventsAppearHint": "Events Appear Hint",
    "noLockouts": "No Lockouts",
    "webSearchDesc": "Web Search Desc",
    "audioProvidersHeading": "Audio Providers Heading",
    "cloudAgentProviders": "Provider di agenti cloud",
    "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": "Solo gratuito",
    "addFirstProvider": "Aggiungi il tuo primo fornitore",
    "addFirstProviderDesc": "Connetti un provider AI per avviare l'instradamento delle richieste tramite OmniRoute. Puoi utilizzare provider gratuiti, chiavi API o account OAuth.",
    "learnMore": "Saperne di più",
    "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": "Provider del livello gratuito",
    "freeTierLabel": "Livello gratuito disponibile",
    "freeTierProvidersDesc": "Fornitori con livelli gratuiti: alcuni richiedono la registrazione con una chiave API, altri non necessitano di alcuna credenziale.",
    "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": "Amministrazione della gamification",
    "monitorAnomaliesAndHealth": "Monitorare le anomalie e l'integrità del sistema",
    "flaggedAnomalies": "Anomalie segnalate",
    "noAnomaliesDetected": "Nessuna anomalia rilevata",
    "apiKey": "Chiave API",
    "xpLastHour": "XP (1 ora)",
    "zScore": "Punteggio Z",
    "tokensCommunityServers": "Server della comunità",
    "tokensServerNamePlaceholder": "Nome del server",
    "tokensApiKeyPlaceholder": "Chiave API",
    "tokensTokenBalance": "Saldo dei gettoni",
    "tokensSendTokens": "Invia token",
    "tokensRecipientApiKeyId": "ID chiave API del destinatario",
    "tokensRecipientApiKeyIdPlaceholder": "Inserisci l'ID della chiave API del destinatario",
    "tokensReasonOptional": "Motivo (facoltativo)",
    "tokensReasonPlaceholder": "per esempio. bonus, ricompensa",
    "tokensTransactionHistory": "Cronologia delle transazioni",
    "tokensNoTransactionsYet": "Nessuna transazione ancora",
    "tokensInviteCodes": "Codici di invito",
    "tokensMaxUses": "Usi massimi",
    "tokensRedeemCode": "Riscatta codice",
    "tokensRedeemCodePlaceholder": "Inserisci il codice di invito",
    "tokensYourActiveInvites": "I tuoi inviti attivi",
    "tierCoverageTitle": "Copertura del livello",
    "tierCoverageSubtitle": "Provider configurati per livello di fallback",
    "batchDetailCopyId": "Copia documento d'identità",
    "batchDetailClose": "Vicino",
    "batchDetailEndpoint": "Punto finale",
    "batchDetailModel": "Modello",
    "batchDetailWindow": "Finestra",
    "batchDetailCreated": "Creato",
    "providerTopologyEmpty": "Nessun fornitore ancora connesso",
    "badgeToastUnlocked": "Distintivo sbloccato!",
    "batchListSearchPlaceholder": "Cerca per ID, endpoint, modello…",
    "batchListDeleteAllCompletedTitle": "Elimina tutti i batch completati",
    "batchListBatchesTable": "Lotti",
    "changelogViewerLoading": "Caricamento del registro delle modifiche da GitHub...",
    "profileLoading": "Caricamento profilo...",
    "profileHowToEarn": "Come guadagnare",
    "bootstrapBannerDismiss": "Congedare",
    "batchListDeleteBatchTitle": "Elimina il batch e i suoi file",
    "leaderboardYourRank": "Il tuo grado",
    "leaderboardLoading": "Caricamento classifica...",
    "batchFileDetailCopyId": "Copia documento d'identità",
    "batchFileDetailClose": "Vicino",
    "batchFileDetailFailedToLoad": "Impossibile caricare il contenuto del file",
    "batchFilesListSearchPlaceholder": "Cerca per ID o nome file…",
    "batchFilesListFilesTable": "File",
    "batchPageLoadingMore": "Caricamento altro...",
    "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": "Casa",
    "dashboard": "Pannello di controllo",
    "providers": "Fornitori",
    "combos": "Combinazioni",
    "usage": "Utilizzo",
    "analytics": "Analitica",
    "costs": "Costi",
    "health": "Salute",
    "proxy": "Proxy",
    "limits": "Limiti e quote",
    "cliTools": "Strumenti CLI",
    "media": "Media",
    "settings": "Impostazioni",
    "translator": "Traduttore",
    "playground": "Playground",
    "searchTools": "Search Tools",
    "agents": "Agenti",
    "cloudAgents": "Agenti cloud",
    "memory": "Memory",
    "skills": "Skills",
    "omniSkills": "OmniSkill",
    "agentSkills": "AgenteSkills",
    "docs": "Documenti",
    "issues": "Problemi",
    "endpoints": "Endpoint",
    "endpointsSubtitle": "I tuoi URL di connessione AI",
    "apiManager": "Gestore API",
    "apiManagerSubtitle": "Gestisci le chiavi API e l'accesso",
    "embeddedServices": "__MISSING__:Embedded Services",
    "embeddedServicesSubtitle": "__MISSING__:Manage local proxy services",
    "logs": "Registri",
    "webhooks": "Webhook",
    "webhooksSubtitle": "Ricevi notifiche sugli eventi",
    "combosSubtitle": "Provider di gruppo per il failover",
    "batchSubtitle": "Elabora più richieste",
    "contextCavemanSubtitle": "Compressione immediata",
    "contextRtkSubtitle": "Filtraggio dell'uscita",
    "auditLog": "Registro di controllo",
    "shutdown": "Fermare",
    "restart": "Ricomincia",
    "shutdownConfirm": "Arrestare OmniRoute?",
    "restartConfirm": "Riavviare OmniRoute?",
    "version": "v{version}",
    "debug": "Debug",
    "system": "Sistema",
    "help": "Aiuto",
    "primarySection": "Main",
    "cliSection": "CLI",
    "debugSection": "Debug",
    "systemSection": "System",
    "helpSection": "Help",
    "serverDisconnected": "Server disconnesso",
    "serverDisconnectedMsg": "Il server proxy è stato arrestato o si sta riavviando.",
    "expandSidebar": "Espandi la barra laterale",
    "collapseSidebar": "Comprimi la barra laterale",
    "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": "Strumenti",
    "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": "Verifica A2A",
    "settingsGeneral": "General",
    "settingsAppearance": "Appearance",
    "settingsAi": "AI Settings",
    "settingsSecurity": "Security",
    "settingsFeatureFlags": "Flag di funzionalità",
    "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": "Attiva/disattiva le funzionalità del sistema",
    "settingsSidebar": "Sidebar",
    "settingsSidebarSubtitle": "Customize sidebar layout",
    "settingsAuthzSubtitle": "__MISSING__:Route inventory and bypass policy",
    "docsSubtitle": "Documentation",
    "issuesSubtitle": "Report a bug",
    "changelogSubtitle": "Release notes"
  },
  "webhooks": {
    "title": "Webhook",
    "description": "Configurare i callback HTTP per gli eventi di sistema.",
    "configuredWebhooks": "Webhook configurati",
    "configuredWebhooksDesc": "Gestisci gli endpoint di consegna, gli eventi sottoscritti, lo stato e gli invii di prova.",
    "addWebhook": "Aggiungi webhook",
    "editWebhook": "Modifica webhook",
    "name": "Nome",
    "namePlaceholder": "Monitoraggio della produzione",
    "unnamedWebhook": "Webhook senza nome",
    "url": "URL dell'endpoint",
    "events": "Eventi",
    "allEvents": "Tutti gli eventi",
    "secret": "Segreto",
    "secretPlaceholder": "Lascia vuoto per generare automaticamente un segreto",
    "secretEditPlaceholder": "Lascia vuoto per mantenere il segreto corrente",
    "status": "Stato",
    "active": "Attivo",
    "inactive": "Inattivo",
    "errored": "Errore",
    "total": "Totale",
    "lastTriggered": "Ultimo trigger",
    "actions": "Azioni",
    "enabled": "Abilitato",
    "enabledDesc": "I webhook disabilitati rimangono salvati ma non ricevono consegne.",
    "refresh": "Aggiorna",
    "loading": "Caricamento webhook...",
    "never": "Mai",
    "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
    "testWebhook": "Invia prova",
    "testSuccess": "Webhook di prova inviato correttamente.",
    "testFailed": "Il test del webhook non è riuscito.",
    "saveSuccess": "Webhook salvato correttamente.",
    "saveFailed": "Impossibile salvare il webhook.",
    "loadFailed": "Impossibile caricare i webhook.",
    "delete": "Eliminare",
    "deleteConfirm": "Sei sicuro di voler eliminare questo webhook?",
    "deleteSuccess": "Webhook eliminato correttamente.",
    "deleteFailed": "Impossibile eliminare il webhook.",
    "edit": "Modificare",
    "enable": "Abilitare",
    "disable": "Disabilita",
    "noWebhooks": "Nessun webhook ancora configurato.",
    "signatureTitle": "Firme dei webhook",
    "signatureDescription": "Ogni consegna include un'intestazione X-Webhook-Signature firmata con HMAC-SHA256 utilizzando il segreto del webhook. Verificare la firma prima di considerare attendibile il payload.",
    "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": "Controllo",
    "auditDescription": "Esamina gli eventi di conformità e le chiamate allo strumento MCP da un'unica vista operativa.",
    "complianceTab": "Conformità",
    "mcpTab": "Verifica MCP",
    "title": "Controllo di conformità",
    "description": "Policy, accesso, provider ed eventi di sicurezza registrati dal registro di controllo della conformità.",
    "eventType": "Tipo di evento",
    "eventTypePlaceholder": "Filtra per azione o tipo di evento",
    "severity": "Gravità",
    "allSeverities": "Tutte le gravità",
    "info": "Informazioni",
    "warning": "Avvertimento",
    "critical": "Critico",
    "sourceIp": "IP di origine",
    "userOrKey": "Utente/Chiave",
    "action": "Azione",
    "result": "Risultato",
    "details": "Dettagli",
    "timestamp": "Timestamp",
    "from": "Da",
    "to": "A",
    "refresh": "Aggiorna",
    "export": "Esportare",
    "clearFilters": "Cancella filtri",
    "loading": "Caricamento eventi di controllo...",
    "showing": "Visualizzazione di {count} di {total} eventi",
    "policyViolation": "Violazione delle norme",
    "accessDenied": "Accesso negato",
    "injectionBlocked": "Iniezione bloccata",
    "noEvents": "Nessun evento di conformità registrato.",
    "failedFetch": "Impossibile recuperare il registro di controllo della conformità.",
    "viewDetails": "Visualizza i dettagli",
    "closeDetails": "Chiudi i dettagli",
    "notAvailable": "—",
    "system": "sistema",
    "previous": "Precedente",
    "next": "Prossimo",
    "mcpAudit": "Verifica MCP",
    "mcpAuditDesc": "Voci di controllo delle chiamate dello strumento registrate dal server MCP.",
    "failedFetchMcpAudit": "Impossibile recuperare il registro di controllo MCP.",
    "tool": "Attrezzo",
    "toolPlaceholder": "Filtra per nome dello strumento",
    "duration": "Durata",
    "apiKey": "Chiave API",
    "output": "Produzione",
    "allResults": "Tutti i risultati",
    "success": "Successo",
    "failure": "Fallimento",
    "noMcpEvents": "Nessun evento di controllo MCP registrato.",
    "a2aAudit": "Verifica A2A",
    "a2aAuditDesc": "Audit trail dell'esecuzione dell'attività registrato dal server A2A.",
    "a2aShowingTasks": "Visualizzazione di {count} di {total} attività",
    "a2aSkill": "Abilità",
    "a2aSkillPlaceholder": "Filtra per nome della competenza",
    "a2aState": "Stato",
    "a2aAllStates": "Tutti gli stati",
    "a2aStateSubmitted": "Inviato",
    "a2aStateWorking": "Lavorando",
    "a2aStateCompleted": "Completato",
    "a2aStateFailed": "Fallito",
    "a2aStateCancelled": "Annullato",
    "a2aTaskId": "ID attività",
    "a2aEvents": "Eventi",
    "a2aArtifacts": "Artefatti",
    "a2aNoTasks": "Nessuna attività A2A registrata.",
    "a2aLoadingTasks": "Caricamento attività A2A..."
  },
  "themesPage": {
    "title": "Themes",
    "description": "Choose a preset theme or create your own with a single color",
    "presetColors": "Popular colors",
    "customTheme": "Custom theme",
    "customThemeDesc": "Click create theme and pick one color",
    "createTheme": "Create theme",
    "activePreset": "Active theme"
  },
  "header": {
    "logout": "Esci",
    "language": "Lingua",
    "providers": "Fornitori",
    "providerDescription": "Gestisci le connessioni del tuo fornitore di intelligenza artificiale",
    "combos": "Combinazioni",
    "comboDescription": "Combo di modelli con fallback",
    "usage": "Utilizzo e analisi",
    "usageDescription": "Monitora l'utilizzo dell'API, il consumo dei token e i log delle richieste",
    "analytics": "Analitica",
    "analyticsDescription": "Grafici, tendenze e approfondimenti sulla valutazione",
    "cliTools": "Strumenti CLI",
    "cliToolsDescription": "Configura gli strumenti CLI",
    "home": "Casa",
    "homeDescription": "Benvenuti in OmniRoute",
    "endpoint": "Endpoint",
    "endpointDescription": "Gestire endpoint proxy, MCP, A2A e endpoint API",
    "mcp": "MCP",
    "mcpDescription": "Model Context Protocol server management and tools",
    "a2a": "A2A",
    "a2aDescription": "Agent-to-Agent protocol tasks and observability",
    "settings": "Impostazioni",
    "settingsDescription": "Gestisci le tue preferenze",
    "openaiCompatible": "Compatibile con OpenAI",
    "anthropicCompatible": "Compatibile antropico",
    "media": "Media",
    "mediaDescription": "Generate images, videos, and music",
    "themes": "Themes",
    "themesDescription": "Choose a color theme for the whole dashboard panel",
    "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
    "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
    "limitsDescription": "Configure rate limits and quotas per API key and provider",
    "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
    "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
    "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
    "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
    "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
    "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
    "changelogDescription": "Stay up to date with the latest platform features and announcements.",
    "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
    "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
    "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
    "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
    "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
    "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
    "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
    "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
    "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
    "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
    "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
    "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
    "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
    "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
    "batchFilesDescription": "Browse and manage batch job output files and results",
    "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
    "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
    "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
    "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
    "analyticsCompressionDescription": "Context compression analytics and token savings",
    "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
    "costsPricingDescription": "Custom pricing configuration for token cost calculations",
    "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
    "logsConsoleDescription": "Application console output and debug logs",
    "logsActivityDescription": "Audit trail of user actions and system events",
    "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
    "auditA2a": "Verifica A2A",
    "auditA2aDescription": "Traccia di controllo dell'esecuzione delle attività A2A, transizioni di stato e record di chiamata delle competenze",
    "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": "Flag di funzionalità",
    "featureFlagsDescription": "Capacità del sistema di controllo e caratteristiche sperimentali",
    "featureFlagsActive": "{count} attivo",
    "featureFlagsInactive": "{count} inattivo",
    "featureFlagsOverrides": "{count} Il DB esegue l'override",
    "featureFlagsSearch": "Cerca bandiere...",
    "featureFlagsCategoryAll": "Tutto",
    "featureFlagsCategorySecurity": "Sicurezza",
    "featureFlagsCategoryNetwork": "Rete",
    "featureFlagsCategoryPolicies": "Politiche",
    "featureFlagsCategoryRuntime": "Durata",
    "featureFlagsCategoryCli": "CLI",
    "featureFlagsCategoryHealth": "Salute",
    "featureFlagsSourceDb": "DB",
    "featureFlagsSourceEnv": "ENV",
    "featureFlagsSourceDefault": "DEF",
    "featureFlagsReset": "Reset",
    "featureFlagsResetAll": "Ripristina tutte le sostituzioni",
    "featureFlagsResetAllConfirm": "Sei sicuro di voler reimpostare tutte le sostituzioni dei flag di funzionalità? Ciò ripristinerà tutti i flag ai loro valori ENV o predefiniti.",
    "featureFlagsRestartRequired": "Per candidarsi è necessario riavviare",
    "featureFlagsNoResults": "Nessuna segnalazione corrisponde alla tua ricerca",
    "featureFlagsSaved": "Segnalazione aggiornata",
    "featureFlagsError": "Impossibile aggiornare il contrassegno",
    "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": "Avvio rapido",
    "quickStartDesc": "Diventa subito operativo in 4 passaggi. Connetti fornitori, modelli di percorso, monitora tutto.",
    "fullDocs": "Documenti completi",
    "step1Title": "1. Crea la chiave API",
    "step1Desc": "Vai a <endpoint>Endpoint</endpoint> -> Chiavi registrate. Genera una chiave per ambiente.",
    "step2Title": "2. Connetti i fornitori",
    "step2Desc": "Aggiungi account in <providers>Providers</providers>. Supporta OAuth, chiave API e livelli gratuiti.",
    "step3Title": "3. Punta il tuo cliente",
    "step3Desc": "Imposta l'URL di base su {url} nel tuo client IDE o API.",
    "step4Title": "4. Monitora e ottimizza",
    "step4Desc": "Tieni traccia di token, costi ed errori in <logs>Request Logs</logs> e <analytics>Analytics</analytics>.",
    "providersOverview": "Panoramica dei fornitori",
    "configuredOf": "{configured} configurato tra {total} provider disponibili",
    "noModelsAvailable": "Nessun modello disponibile per questo fornitore.",
    "noProvidersConfigured": "Nessun provider ancora configurato",
    "addProvider": "Aggiungi un fornitore",
    "configureFirst": "Configura prima una connessione in {providers}",
    "configureProvider": "Configura fornitore",
    "modelAvailable": "{count} modello disponibile",
    "modelsAvailable": "{count} modelli disponibili",
    "connectionsActive": "Connessione {count} attiva",
    "connectionsActivePlural": "{count} connessioni attive",
    "copyModelName": "Copia il nome del modello",
    "documentation": "Documentazione",
    "healthMonitor": "Monitoraggio della salute",
    "reportIssue": "Segnala il problema",
    "activeError": "{active} attivo · {errors} errore",
    "oauthLabel": "OAuth",
    "apiKeyLabel": "Chiave API",
    "requestsShort": "{count} richieste",
    "providerModelsTitle": "{provider} - Modelli",
    "copiedModel": "Copiato: {model}",
    "aliasLabel": "alias",
    "updateNow": "Aggiorna ora",
    "updating": "Aggiornamento...",
    "updateAvailableDesc": "Una nuova versione è disponibile. Fai clic per aggiornare.",
    "updateStarted": "Aggiornamento avviato...",
    "reloadingPageAutomatically": "Ricaricamento pagina automaticamente...",
    "providerTopology": "Topologia del fornitore"
  },
  "analytics": {
    "title": "Analitica",
    "usageAnalyticsTitle": "__MISSING__:Usage Analytics",
    "diversityScoreTitle": "Diversità dei fornitori",
    "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": "Monitora i modelli di utilizzo delle API, il consumo di token, i costi e le tendenze delle attività su tutti i provider e modelli.",
    "evalsDescription": "Esegui suite di valutazione per testare e convalidare i tuoi endpoint LLM. Confronta la qualità del modello, rileva le regressioni e confronta la latenza.",
    "overview": "Panoramica",
    "evals": "Valutazioni",
    "utilization": "Utilizzo",
    "utilizationDescription": "Tendenze di utilizzo della quota del provider e monitoraggio dei limiti di frequenza",
    "modelStatus": "Stato del modello",
    "modelStatusCooldown": "Raffreddare",
    "modelStatusUnavailable": "Non disponibile",
    "modelStatusError": "Errore",
    "comboHealth": "Salute Combo",
    "comboHealthDescription": "Quota a livello combo, distribuzione dell'utilizzo e metriche delle prestazioni",
    "compressionAnalyticsTitle": "Compression Analytics",
    "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
    "autoRoutingTotalAutoRequests": "Richieste automatiche totali",
    "autoRoutingAvgSelectionScore": "Punteggio medio di selezione",
    "autoRoutingExplorationRate": "Tasso di esplorazione",
    "autoRoutingLkgpHitRate": "Tasso di successo LKGP",
    "autoRoutingRequestsByVariant": "Richieste per variante",
    "autoRoutingTopRoutedProviders": "Principali provider instradati",
    "comboHealthWorstQuotaLeft": "La quota peggiore rimasta",
    "comboHealthUsageSkew": "Difformità nell'utilizzo",
    "comboHealthSuccessRate": "Tasso di successo",
    "comboHealthQuotaHealth": "Salute delle quote",
    "comboHealthRequests": "Richieste",
    "comboHealthTokens": "Gettoni",
    "comboHealthAvgLatency": "Latenza media",
    "comboHealthTotalRequests": "Richieste totali",
    "comboHealthExecutionTargets": "Obiettivi di esecuzione",
    "comboHealthSuccess": "Successo",
    "comboHealthLatency": "Latenza",
    "comboHealthQuota": "Quota",
    "comboHealthTitle": "Salute combinata",
    "comboHealthUnableToLoad": "Impossibile caricare la salute della combo",
    "comboHealthGettingStarted": "Iniziare",
    "compressionAnalyticsTotalRequests": "Richieste totali",
    "compressionAnalyticsTokensSaved": "Gettoni salvati",
    "compressionAnalyticsAvgSavings": "Risparmio medio",
    "compressionAnalyticsAvgDuration": "Durata media",
    "compressionAnalyticsReceipts": "Ricevute",
    "compressionAnalyticsFallbacks": "Fallback",
    "compressionAnalyticsPromptTokens": "Gettoni di richiesta",
    "compressionAnalyticsCompletionTokens": "Gettoni di completamento",
    "compressionAnalyticsTotalTokens": "Gettoni totali",
    "compressionAnalyticsCacheTokens": "Token di cache",
    "compressionAnalyticsNoDataYet": "Nessun dato di compressione ancora",
    "searchAnalyticsTotalSearches": "Ricerche totali",
    "searchAnalyticsCacheHitRate": "Tasso di riscontri nella cache",
    "searchAnalyticsTotalCost": "Costo totale",
    "searchAnalyticsAvgResponse": "Risposta media",
    "searchAnalyticsNoSearchesYet": "Nessuna ricerca ancora",
    "providerUtilizationTitle": "Utilizzo del fornitore",
    "providerUtilizationFailedToLoad": "Impossibile caricare i dati di utilizzo",
    "providerUtilizationNoData": "Nessun dato di utilizzo disponibile",
    "providerUtilizationGettingStarted": "Iniziare",
    "providerUtilizationLatestSnapshot": "Ultima istantanea delle quote",
    "providerUtilizationRemainingCapacity": "Capacità rimanente"
  },
  "apiManager": {
    "title": "Chiavi API",
    "createKey": "Crea chiave API",
    "key": "Chiave",
    "revokeKey": "Revoca chiave",
    "revokeConfirm": "Sei sicuro di voler revocare questa chiave API?",
    "noKeys": "Nessuna chiave API ancora",
    "noKeysDesc": "Crea la tua prima chiave API per autenticare le richieste al tuo endpoint",
    "keyLabel": "Etichetta chiave",
    "permissions": "Autorizzazioni",
    "expiresAt": "Scade",
    "never": "Mai",
    "revoke": "Revocare",
    "showKey": "Mostra chiave",
    "hideKey": "Nascondi chiave",
    "copyKey": "Copia la chiave API",
    "allModels": "Tutti i modelli",
    "selectedModels": "Modelli selezionati",
    "readOnly": "Sola lettura",
    "fullAccess": "Accesso completo",
    "keyManagement": "Gestione delle chiavi API",
    "keyManagementDesc": "Crea e gestisci le chiavi API per autenticare le richieste al tuo endpoint",
    "totalKeys": "Chiavi totali",
    "restricted": "Limitato",
    "totalRequests": "Richieste totali",
    "modelsAvailable": "Modelli disponibili",
    "registeredKeys": "Chiavi registrate",
    "keysRegistered": "Chiavi {count} registrate",
    "keyRegistered": "Chiave {count} registrata",
    "keysSecurityNote": "Ciascuna chiave isola il monitoraggio dell'utilizzo e può essere revocata in modo indipendente. Le chiavi vengono mascherate dopo la creazione per motivi di sicurezza.",
    "createFirstKey": "Crea la tua prima chiave",
    "name": "Nome",
    "usage": "Utilizzo",
    "created": "Creato",
    "actions": "Azioni",
    "reqs": "req",
    "neverUsed": "Mai usato",
    "deleteConfirm": "Eliminare questa chiave API?",
    "usageTips": "Suggerimenti per l'uso",
    "tipAuth": "Utilizza le chiavi API nell'intestazione Autorizzazione come portatore YOUR_KEY",
    "tipSecure": "Le chiavi vengono visualizzate solo una volta durante la creazione: conservale in modo sicuro",
    "tipSeparate": "Crea chiavi separate per client o ambienti diversi",
    "tipRestrict": "Limita le chiavi a modelli specifici per una migliore sicurezza e controllo dei costi",
    "keyName": "Nome chiave",
    "keyNamePlaceholder": "ad esempio, Chiave di produzione, Chiave di sviluppo",
    "keyNameDesc": "Scegli un nome descrittivo per identificare lo scopo di questa chiave",
    "managementAccessDesc": "Consenti a questa chiave API di gestire la configurazione di OmniRoute.",
    "selfServiceVisibility": "Visibilità self-service",
    "selfServiceVisibilityDesc": "Controlla cosa può vedere questa chiave sul proprio utilizzo e sulla quota upstream condivisa.",
    "ownUsageVisibility": "Costo e utilizzo token propri",
    "ownUsageVisibilityDesc": "Consenti a questa chiave di chiamare il proprio endpoint di stato per uso in USD, percentuale di budget e totali dei token.",
    "sharedAccountQuotaVisibility": "Quota account condivisa",
    "sharedAccountQuotaVisibilityDesc": "Consenti a questa chiave di vedere la quota dell’account upstream condiviso quando è configurata una connessione esplicita.",
    "keyCreated": "Chiave API creata",
    "keyCreatedSuccess": "Chiave creata con successo!",
    "keyCreatedNote": "Copia e memorizza questa chiave adesso: non verrà più mostrata.",
    "done": "Fatto",
    "savePermissions": "Salva autorizzazioni",
    "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": "Consenti tutto",
    "restrict": "Limitare",
    "allowAllInfo": "Questa chiave può accedere a tutti i modelli disponibili.",
    "restrictInfo": "Questa chiave può accedere a {selected} di {total} modelli.",
    "selected": "{count} selezionato",
    "all": "Tutto",
    "clear": "Chiaro",
    "searchModels": "Cerca modelli per nome o fornitore...",
    "noModelsFound": "Nessun modello trovato",
    "keyNameRequired": "Il nome della chiave è obbligatorio",
    "keyNameTooLong": "Il nome della chiave deve contenere {max} caratteri o meno",
    "keyNameInvalid": "Il nome della chiave può contenere solo lettere, numeri, spazi, trattini e trattini bassi",
    "invalidKeyName": "Nome della chiave non valido",
    "failedCreateKey": "Impossibile creare la chiave",
    "failedCreateKeyRetry": "Impossibile creare la chiave. Per favore riprova.",
    "invalidKeyId": "ID chiave non valido",
    "failedDeleteKey": "Impossibile eliminare la chiave",
    "failedDeleteKeyRetry": "Impossibile eliminare la chiave. Per favore riprova.",
    "invalidModelsSelection": "Selezione dei modelli non valida",
    "cannotSelectMoreThanModels": "Impossibile selezionare più di {max} modelli",
    "failedUpdatePermissions": "Impossibile aggiornare le autorizzazioni",
    "failedUpdatePermissionsRetry": "Impossibile aggiornare le autorizzazioni. Per favore riprova.",
    "unknownProvider": "sconosciuto",
    "copyMaskedKey": "Copia chiave mascherata",
    "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "lastUsedOn": "Ultimo: {date}",
    "editPermissions": "Modifica autorizzazioni",
    "deleteKey": "Cancella chiave",
    "regenerateKey": "Chiave rigenerata",
    "regenerateConfirm": "Sei sicuro di voler rigenerare questa chiave API? La vecchia chiave verrà immediatamente invalidata.",
    "failedRegenerateKey": "Impossibile rigenerare la chiave API",
    "failedRegenerateKeyRetry": "Impossibile rigenerare la chiave API. Per favore riprova.",
    "model": "{count} modello",
    "models": "{count} modelli",
    "permissionsTitle": "Autorizzazioni: {name}",
    "allowAllDesc": "Questa chiave può accedere a tutti i modelli disponibili.",
    "restrictDesc": "Questa chiave può accedere a {selectedCount} di {totalModels} modelli.",
    "selectedCount": "{count} selezionato",
    "maxActiveSessions": "Numero massimo di sessioni attive",
    "apiManagerCustomRateLimits": "Limiti di velocità personalizzati",
    "apiManagerCustomRateLimitsDesc": "Sostituisci i limiti predefiniti globali. Lascia vuoto per utilizzare le impostazioni predefinite.",
    "apiManagerRateLimitRequestsPlaceholder": "Richieste",
    "apiManagerRateLimitReqPer": "richiesta /",
    "apiManagerRateLimitSecondsPlaceholder": "Secondi",
    "apiManagerRemoveLimitTitle": "Rimuovi limite",
    "apiManagerTimezonePlaceholder": "America/San_Paolo",
    "noLogPayloadPrivacy": "Privacy del carico utile senza registrazione",
    "bannedStatus": "Stato vietato",
    "managementApiAccess": "Accesso all'API di gestione",
    "expirationDate": "Data di scadenza",
    "managementAccess": "Accesso alla gestione",
    "allowedConnections": "Connessioni consentite",
    "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": "Registro di controllo",
    "searchPlaceholder": "Cerca azioni...",
    "action": "Azione",
    "actor": "Attore",
    "target": "Bersaglio",
    "ipAddress": "Indirizzo IP",
    "timestamp": "Timestamp",
    "noEntries": "Nessuna voce di controllo trovata",
    "filterByAction": "Filtra per azione...",
    "filterByActor": "Filtra per attore...",
    "filterEntriesAria": "Filtra le voci del registro di controllo",
    "filterByActionTypeAria": "Filtra per tipo di azione",
    "filterByActorAria": "Filtra per attore",
    "refreshAuditLogAria": "Aggiorna il registro di controllo",
    "tableAria": "Voci del registro di controllo",
    "failedFetchAuditLog": "Impossibile recuperare il registro di controllo",
    "notAvailable": "—",
    "description": "Azioni amministrative ed eventi di sicurezza",
    "showing": "Visualizzazione delle voci {count} (offset {offset})",
    "previous": "Precedente"
  },
  "media": {
    "title": "Area Media",
    "subtitle": "Genera immagini, video e musica",
    "model": "Model",
    "prompt": "Prompt",
    "generate": "Genera",
    "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": "Copia",
    "resetToDefault": "Ripristina le impostazioni predefinite",
    "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": "Strumenti CLI",
    "noActiveProviders": "Nessun fornitore attivo",
    "noActiveProvidersDesc": "Aggiungi e connetti prima i provider per configurare gli strumenti CLI.",
    "mapModels": "Modelli di mappe",
    "testConnection": "Prova connessione",
    "connectionStatus": "Stato della connessione",
    "configureEndpoint": "Configura punto finale",
    "instructions": "Istruzioni",
    "modelMapping": "Mappatura del modello",
    "baseUrl": "URL di base",
    "apiKey": "Chiave API",
    "configured": "Configurato",
    "notConfigured": "Non configurato",
    "notInstalled": "Non installato",
    "custom": "Costume",
    "unknown": "Sconosciuto",
    "lastSavedAt": "Ultimo salvataggio: {date}",
    "never": "Mai",
    "justNow": "proprio adesso",
    "minutesAgoShort": "{count}m fa",
    "hoursAgoShort": "{count}h fa",
    "daysAgoShort": "{count}d fa",
    "monthsAgoShort": "{count}mo fa",
    "yearsAgoShort": "{count}y fa",
    "runtimeCheckFailed": "Il controllo di runtime non è riuscito",
    "yourApiKeyPlaceholder": "la tua chiave API",
    "modelPlaceholder": "provider/ID modello",
    "configurationSaved": "Configurazione salvata con successo.",
    "failedToSave": "Impossibile salvare la configurazione.",
    "noApiKeysCreateOne": "Nessuna chiave API: creane una nella pagina Chiavi",
    "defaultOmnirouteKey": "sk_omniroute (predefinito)",
    "selectModel": "Seleziona modello",
    "selectModelForAlias": "Seleziona il modello per {alias}",
    "selectModelForTool": "Seleziona il modello per {tool}",
    "select": "Selezionare",
    "clear": "Chiaro",
    "comingSoon": "Prossimamente",
    "checkingRuntime": "Controllo dello stato di runtime in corso...",
    "guideOnlyIntegration": "Integrazione solo con guida (non è richiesto runtime locale)",
    "cliRuntimeDetected": "Runtime CLI rilevato e pronto",
    "cliFoundNotRunnable": "CLI trovata ma non eseguibile{reason}",
    "cliRuntimeNotDetected": "Runtime CLI non rilevato",
    "binary": "Binario",
    "configPath": "Percorso di configurazione",
    "configPathShort": "Configurazione",
    "failedCheckRuntimeStatus": "Impossibile controllare lo stato del runtime.",
    "copy": "Copia",
    "copied": "Copiato",
    "copyConfig": "Copia config",
    "saveConfig": "Salva configurazione",
    "selectionSaved": "Selezione salvata",
    "guide": "Guida",
    "detected": "Rilevato",
    "notReady": "Non pronto",
    "active": "Attivo",
    "inactive": "Inattivo",
    "startMitm": "Avvia il MITM",
    "stopMitm": "Interrompi il MITM",
    "mitmStarted": "MITM è iniziato con successo!",
    "mitmStopped": "MITM si è interrotto con successo!",
    "failedStart": "Impossibile avviare MITM",
    "failedStop": "Impossibile arrestare MITM",
    "saveMappings": "Salva mappature",
    "mappingsSaved": "Mappature salvate!",
    "failedSaveMappings": "Impossibile salvare le mappature",
    "howItWorks": "Come funziona:",
    "antigravityHowWorksDesc": "Antigravity invia richieste all'endpoint di Google. MITM li intercetta e li reindirizza a OmniRoute.",
    "antigravityStep1": "1. Avviare MITM per instradare le richieste tramite OmniRoute.",
    "antigravityStep2Prefix": "2. Aggiungi",
    "antigravityStep2Suffix": "al file host come 127.0.0.1.",
    "antigravityStep3": "3. Open Antigravity e le richieste verranno inoltrate.",
    "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": "Password Sudo obbligatoria",
    "sudoPasswordHint": "Per modificare le impostazioni del file host e del proxy di sistema è necessaria la password dell'amministratore.",
    "enterSudoPassword": "Inserisci la password sudo",
    "sudoPasswordRequiredError": "È richiesta la password Sudo.",
    "cancel": "Cancellare",
    "confirm": "Confermare",
    "settingsApplied": "Impostazioni applicate con successo!",
    "failedApplySettings": "Impossibile applicare le impostazioni",
    "settingsReset": "Le impostazioni sono state ripristinate con successo!",
    "failedResetSettings": "Impossibile ripristinare le impostazioni",
    "backupRestored": "Backup ripristinato!",
    "failedRestore": "Impossibile ripristinare",
    "checkingCli": "Controllo {tool} CLI...",
    "cliNotRunnable": "{tool} CLI installata ma non eseguibile",
    "cliNotInstalled": "{tool} CLI non installata",
    "cliNotDetected": "{tool} CLI non rilevata",
    "cliDetectedReady": "{tool} CLI rilevata e pronta",
    "cliFoundFailedHealthcheck": "{tool} La CLI è stata trovata ma il controllo dello stato di runtime non è riuscito{reason}.",
    "installCliPrompt": "Installa {tool} CLI per utilizzare questa funzionalità.",
    "installCodexPrompt": "Installa la CLI del Codex per utilizzare la funzionalità di applicazione automatica.",
    "hide": "Nascondere",
    "howToInstall": "Come installare",
    "installationGuide": "Guida all'installazione",
    "platforms": "macOS/Linux/Windows:",
    "afterInstallationRun": "Dopo l'installazione, esegui",
    "toVerify": "per verificare.",
    "current": "Attuale",
    "baseUrlPlaceholder": "https://.../v1",
    "resetToDefault": "Ripristina le impostazioni predefinite",
    "providerModelPlaceholder": "provider/ID modello",
    "apply": "Fare domanda a",
    "reset": "Reset",
    "manualConfig": "Configurazione manuale",
    "backups": "Backup",
    "configBackups": "Backup di configurazione",
    "noBackupsYet": "Nessun backup ancora. I backup vengono creati automaticamente prima di ogni applicazione o ripristino.",
    "restore": "Ripristinare",
    "backupRestoredReloading": "Backup ripristinato! Stato di ricarica...",
    "failedRestoreBackup": "Impossibile ripristinare il backup",
    "applied": "Applicato!",
    "failed": "Fallito",
    "resetDone": "Reset!",
    "omnirouteConfiguredOpenAiCompatible": "OmniRoute è configurato come provider compatibile con OpenAI",
    "provider": "Fornitore",
    "model": "Modello",
    "providers": "Fornitori",
    "auth": "Aut",
    "noApiKeysAvailable": "Nessuna chiave API disponibile",
    "usingDefaultOmniroute": "Utilizzo predefinito: sk_omniroute",
    "updateConfig": "Aggiorna config",
    "applyConfig": "Applica config",
    "noBackupsAvailable": "Nessun backup disponibile.",
    "profileSaved": "Profilo \"{name}\" salvato!",
    "failedSaveProfile": "Impossibile salvare il profilo",
    "profileActivated": "Profilo attivato!",
    "failedActivateProfile": "Impossibile attivare il profilo",
    "profiles": "Profili",
    "savedProfiles": "Profili salvati",
    "noProfilesYet": "Nessun profilo ancora salvato. Salva la configurazione corrente come profilo di seguito.",
    "activate": "Attivare",
    "deleteProfile": "Elimina profilo",
    "profileNamePlaceholder": "Nome del profilo (ad es. Account personale)",
    "saveCurrent": "Salva corrente",
    "codexAuthNotePrefix": "Usi del Codice",
    "codexAuthNoteMiddle": "con",
    "codexAuthNoteSuffix": "Fare clic su \"Applica\" per la configurazione automatica.",
    "claudeManualConfiguration": "Claude CLI - Configurazione manuale",
    "codexManualConfiguration": "Codex CLI - Configurazione manuale",
    "droidManualConfiguration": "Droid di fabbrica - Configurazione manuale",
    "openClawManualConfiguration": "Open Claw - Configurazione manuale",
    "clineManualConfiguration": "Configurazione manuale della linea",
    "kiloManualConfiguration": "Configurazione manuale del codice Kilo",
    "whenToUseLabel": "Quando usarlo",
    "openToolDocs": "Apri i documenti dello strumento",
    "toolUseCases": {
      "claude": "Utilizzalo quando desideri flussi di lavoro di pianificazione avanzati e lunghi refactoring multi-file con Claude Code.",
      "codex": "Da utilizzare quando il tuo team è standardizzato sui flussi CLI di OpenAI Codex e sull'autenticazione basata sul profilo.",
      "droid": "Da utilizzare quando è necessario un agente terminale leggero incentrato sulla codifica rapida e sui cicli di esecuzione dei comandi.",
      "openclaw": "Da utilizzare quando si desidera un agente di codifica in stile Open Claw ma instradato tramite policy OmniRoute.",
      "cline": "Da utilizzare quando si configurano agenti di codifica all'interno degli editor e si desidera un'impostazione guidata con i modelli OmniRoute.",
      "kilo": "Da utilizzare quando il flusso di lavoro dipende dai comandi Kilo Code e da modifiche iterative rapide.",
      "cursor": "Da utilizzare durante la codifica in Cursor e sono necessari modelli personalizzati compatibili con OpenAI tramite OmniRoute.",
      "continue": "Da utilizzare quando si esegue Continue negli IDE ed è necessaria la configurazione portatile del provider basato su JSON.",
      "opencode": "Utilizzalo quando preferisci l'esecuzione dell'agente nativo del terminale e l'automazione basata su script tramite OpenCode.",
      "kiro": "Da utilizzare quando si integra Kiro e si controlla l'instradamento del modello centralmente da OmniRoute.",
      "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
      "antigravity": "Da utilizzare quando il traffico Antigravity/Kiro deve essere intercettato tramite MITM e instradato a OmniRoute.",
      "copilot": "Utilizzalo quando desideri un'esperienza utente in stile chat Copilot applicando al tempo stesso le chiavi OmniRoute e le regole di routing.",
      "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": "Utilizzalo quando hai bisogno di un leggero assistente AI nativo del terminale per attività rapide.",
      "hermes-agent": "__MISSING__:Use when you need Hermes Agent (by Nousresearch) with default, delegation, vision and auxiliary models routed through OmniRoute.",
      "custom": "Utilizzare per implementazioni di strumenti personalizzati o configurazioni generiche compatibili con OpenAI."
    },
    "toolDescriptions": {
      "antigravity": "IDE Antigravità di Google con MITM",
      "claude": "CLI del codice Claude antropico",
      "codex": "CLI del codice OpenAI",
      "droid": "Assistente AI Droid di fabbrica",
      "openclaw": "Apri l'Assistente AI Claw",
      "cline": "Cline AI Coding Assistant CLI",
      "kilo": "CLI dell'Assistente AI Kilo Code",
      "cursor": "Editor del codice AI del cursore",
      "continue": "Continua Assistente AI",
      "opencode": "OpenCode AI coding agent (Terminal)",
      "kiro": "Amazon Kiro — AI-powered IDE",
      "windsurf": "Windsurf AI Code Editor",
      "copilot": "GitHub Copilot AI Assistant",
      "qwen": "Alibaba Qwen Code CLI",
      "amp": "Sourcegraph Amp coding assistant CLI",
      "hermes": "Assistente terminale Hermes AI",
      "hermes-agent": "__MISSING__:Hermes Agent (by Nousresearch) - Advanced terminal AI with multi-model support (delegation, vision, compression, etc.)",
      "custom": "Generatore di configurazione CLI o SDK compatibile con OpenAI generico"
    },
    "guides": {
      "cursor": {
        "notes": {
          "0": "Richiede l'account Cursor Pro per utilizzare questa funzionalità.",
          "1": "Il cursore instrada le richieste tramite il proprio server, quindi l'endpoint locale non è supportato. Abilita Cloud Endpoint nelle Impostazioni."
        },
        "steps": {
          "1": {
            "title": "Apri Impostazioni",
            "desc": "Vai su Impostazioni -> Modelli"
          },
          "2": {
            "title": "Abilita l'API OpenAI",
            "desc": "Abilita l'opzione \"Chiave API OpenAI\"."
          },
          "3": {
            "title": "URL di base"
          },
          "4": {
            "title": "Chiave API"
          },
          "5": {
            "title": "Aggiungi modello personalizzato",
            "desc": "Fai clic su \"Visualizza tutto il modello\" -> \"Aggiungi modello personalizzato\""
          },
          "6": {
            "title": "Seleziona modello"
          }
        }
      },
      "continue": {
        "steps": {
          "1": {
            "title": "Apri Configurazione",
            "desc": "Apri il file di configurazione Continua"
          },
          "2": {
            "title": "Chiave API"
          },
          "3": {
            "title": "Seleziona modello"
          },
          "4": {
            "title": "Aggiungi configurazione modello",
            "desc": "Aggiungi la seguente configurazione all'array dei modelli:"
          }
        },
        "notes": {
          "0": "Continue usa un file di configurazione JSON."
        }
      },
      "opencode": {
        "steps": {
          "1": {
            "title": "Install OpenCode",
            "desc": "Install via npm: npm install -g opencode-ai"
          },
          "2": {
            "title": "API Key"
          },
          "3": {
            "title": "Set Base URL",
            "desc": "opencode config set baseUrl {baseUrl}"
          },
          "4": {
            "title": "Select Model"
          },
          "5": {
            "title": "Use Thinking Variant",
            "desc": "For thinking models, run with --variant high/low/max (example command below)."
          }
        },
        "notes": {
          "0": "OpenCode richiede la configurazione della chiave API.",
          "1": "Imposta l'URL base sul tuo endpoint OmniRoute."
        }
      },
      "kiro": {
        "steps": {
          "1": {
            "title": "Open Kiro Settings",
            "desc": "Go to Settings → AI Provider"
          },
          "2": {
            "title": "Base URL",
            "desc": "Paste your OmniRoute endpoint URL"
          },
          "3": {
            "title": "API Key"
          },
          "4": {
            "title": "Select Model"
          }
        },
        "notes": {
          "0": "Kiro richiede un account Amazon."
        }
      },
      "windsurf": {
        "steps": {
          "1": {
            "title": "Open AI Settings",
            "desc": "Click the AI Settings icon in Windsurf or go to Settings"
          },
          "2": {
            "title": "Add Custom Provider",
            "desc": "Select \"Add custom provider\" (OpenAI-compatible)"
          },
          "3": {
            "title": "Base URL",
            "desc": "http://127.0.0.1:20128/v1"
          },
          "4": {
            "title": "API Key",
            "desc": "Select your OmniRoute API key"
          },
          "5": {
            "title": "Select Model",
            "desc": "Choose a model from the dropdown"
          }
        }
      }
    },
    "autoConfiguredTab": "Auto Configured Tab",
    "toolCategoriesDesc": "Tool Categories Desc",
    "allToolsTab": "All Tools Tab",
    "guidedClientsTab": "Guided Clients Tab",
    "mitmClientsTab": "Mitm Clients Tab",
    "customCliTab": "CLI personalizzata",
    "toolCategories": "Tool Categories",
    "visibleToolsCount": "{count} strumenti disponibili",
    "customCliBuilderTitle": "Generatore CLI compatibile con OpenAI",
    "customCliBuilderDescription": "Genera variabili env e snippet JSON per qualsiasi CLI o SDK che accetta un URL di base, una chiave API e un ID modello compatibili con OpenAI.",
    "customCliNoModels": "Connetti almeno un provider per popolare i selettori del modello.",
    "customCliNameLabel": "Nome della CLI",
    "customCliNamePlaceholder": "per esempio. CLI della mia squadra",
    "customCliDefaultModelLabel": "Modello predefinito",
    "customCliDefaultModelHelp": "Utilizza qualsiasi ID modello OmniRoute o combinazione. La maggior parte delle CLI compatibili con OpenAI richiedono solo l'URL di base /v1 più una stringa del modello.",
    "customCliKeyHelper": "Per le installazioni locali OmniRoute può utilizzare sk_omniroute. In modalità cloud, scegli una delle tue chiavi API di gestione.",
    "customCliAliasMappingsLabel": "Mappature alias",
    "customCliAliasMappingsHelp": "Alias ​​di supporto facoltativi per script wrapper o file di configurazione che richiedono nomi abbreviati stabili.",
    "customCliAddAlias": "Aggiungi alias",
    "customCliNoMappings": "Ancora nessuna mappatura degli alias. Aggiungine uno se il wrapper o gli script del team utilizzano nomi brevi stabili.",
    "customCliAliasPlaceholder": "per esempio. revisione",
    "customCliTargetModelLabel": "Modello di destinazione",
    "customCliEndpointHintLabel": "Come cablare l'endpoint",
    "customCliEndpointHint": "Puntare qualsiasi client compatibile con OpenAI all'URL di base OmniRoute /v1. L'endpoint dei completamenti della chat non elaborata è {endpoint}. Utilizza il blocco JSON quando lo strumento richiede un oggetto provider o lo script env quando legge le variabili OPENAI_*.",
    "customCliEnvBlockTitle": "Frammento di busta/shell",
    "customCliJsonBlockTitle": "Blocco JSON del provider",
    "copilotConfigGenerator": "Generatore di configurazione di GitHub Copilot",
    "copilotApiKey": "Chiave API",
    "copilotFilterModelsPlaceholder": "Filtra modelli...",
    "copilotMaxInputTokens": "Token di input massimi",
    "copilotMaxOutputTokens": "Gettoni di output massimi",
    "copilotToolCalling": "Chiamata dello strumento",
    "copilotPasteInto": "Incolla in:",
    "wireApiChatCompletions": "Completamenti chat (/chat/completamenti)",
    "wireApiResponses": "API delle risposte (/responses)"
  },
  "combos": {
    "title": "Combinazioni",
    "description": "Crea combinazioni di modelli con routing ponderato e supporto fallback",
    "autoCatalogTitle": "Catalogo dell'autorouting",
    "autoCatalogTemplateCount": "{count} modelli",
    "autoCatalogDescription": "Combo auto/* integrate risolte dinamicamente dai provider collegati. Utilizza uno qualsiasi di questi ID come campo del modello: non è necessaria alcuna configurazione.",
    "autoCatalogExpand": "Espandi il catalogo di routing automatico",
    "autoCatalogCollapse": "Comprimi il catalogo di routing automatico",
    "createCombo": "Crea combinazione",
    "editCombo": "Modifica combinazione",
    "deleteCombo": "Elimina combinazione",
    "noModels": "Nessun modello",
    "noModelsYet": "Nessun modello ancora aggiunto",
    "addModel": "Aggiungi modello",
    "addModelToCombo": "Aggiungi modello alla combinazione",
    "routingStrategy": "Strategia di instradamento",
    "maxRetries": "Numero massimo di tentativi",
    "timeout": "Timeout (ms)",
    "healthcheck": "Controllo dello stato di salute",
    "priority": "Priorità",
    "fallback": "Ricaderci",
    "roundRobin": "Girotondo",
    "random": "Casuale",
    "leastLatency": "Latenza minima",
    "comboName": "Nome combinato",
    "comboNamePlaceholder": "la mia combinazione",
    "deleteConfirm": "Eliminare questa combinazione?",
    "noCombosYet": "Nessuna combo ancora",
    "comboCreated": "Combo creato con successo",
    "comboUpdated": "Combo aggiornato con successo",
    "comboDeleted": "Combinazione eliminata",
    "failedCreate": "Impossibile creare la combinazione",
    "failedUpdate": "Impossibile aggiornare la combinazione",
    "errorCreating": "Errore durante la creazione della combinazione",
    "errorUpdating": "Errore durante l'aggiornamento della combinazione",
    "errorDeleting": "Errore durante l'eliminazione della combinazione",
    "testFailed": "Richiesta di prova non riuscita",
    "failedToggle": "Impossibile attivare/disattivare la combo",
    "testResults": "Risultati del test — {name}",
    "resolvedBy": "Risolto da:",
    "more": "+{count} altro",
    "reqs": "req",
    "success": "successo",
    "proxyConfigured": "Proxy configurato",
    "copyComboName": "Copia il nome della combinazione",
    "enableCombo": "Abilita combinazione",
    "disableCombo": "Disabilita combinazione",
    "testCombo": "Combinazione di prova",
    "duplicate": "Duplicato",
    "proxyConfig": "Configurazione proxy",
    "nameRequired": "Il nome è obbligatorio",
    "nameInvalid": "Solo lettere, numeri, -, _, / e . consentito",
    "nameHint": "Lettere, numeri, -, _, / e . consentito",
    "priorityDesc": "Fallback sequenziale: prova prima il modello 1, poi il 2 e così via.",
    "weightedDesc": "Distribuisce il traffico in base alla percentuale di peso con fallback",
    "roundRobinDesc": "Distribuzione circolare: ogni richiesta va al modello successivo a rotazione",
    "contextRelay": "Context Relay",
    "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
    "randomDesc": "Selezione casuale uniforme, quindi fallback sui modelli rimanenti",
    "leastUsedDesc": "Sceglie il modello con meno richieste, bilanciando il carico nel tempo",
    "costOptimizedDesc": "Percorsi prima verso il modello più economico in base al prezzo",
    "resetAware": "RR consapevole del ripristino",
    "resetAwareDesc": "Bilancia la quota rimanente rispetto a 5 ore e ai reimpostazioni settimanali, quindi esegue il round robin di punteggi simili",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
    "models": "Modelli",
    "autoBalance": "Bilanciamento automatico",
    "advancedSettings": "Impostazioni avanzate",
    "retryDelay": "Ritardo tentativi (ms)",
    "concurrencyPerModel": "Concorrenza/modello",
    "queueTimeout": "Timeout coda (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": "Lascia vuoto per utilizzare le impostazioni predefinite globali. Questi sovrascrivono le impostazioni per provider.",
    "failoverBeforeRetry": "Failover prima del nuovo tentativo",
    "maxSetRetries": "Numero massimo di tentativi di set",
    "setRetryDelayMs": "Imposta ritardo tentativi (ms)",
    "moveUp": "Vai su",
    "moveDown": "Spostati giù",
    "removeModel": "Rimuovere",
    "saving": "Risparmio...",
    "weighted": "Ponderato",
    "leastUsed": "Meno usato",
    "costOpt": "Opzione costo",
    "strategyGuideTitle": "How to use this strategy",
    "strategyGuideWhen": "When to use",
    "strategyGuideAvoid": "Avoid when",
    "strategyGuideExample": "Example",
    "strategyGuide": {
      "priority": {
        "when": "You have one preferred model and only want fallback on failure.",
        "avoid": "You need request distribution across models.",
        "example": "Primary coding model with cheaper backup for outages."
      },
      "weighted": {
        "when": "You need controlled traffic split across models.",
        "avoid": "You cannot maintain accurate weights over time.",
        "example": "80% stable model + 20% canary model rollout."
      },
      "round-robin": {
        "when": "You want predictable and even distribution.",
        "avoid": "Models differ too much in latency or cost.",
        "example": "Same model on multiple accounts to spread throughput."
      },
      "random": {
        "when": "You want simple distribution with minimal setup.",
        "avoid": "You need strict traffic guarantees.",
        "example": "Quick prototyping with equivalent models."
      },
      "least-used": {
        "when": "You want adaptive balancing based on live demand.",
        "avoid": "Traffic is too low to benefit from usage balancing.",
        "example": "Mixed workloads where one model often gets overloaded."
      },
      "cost-optimized": {
        "when": "Cost reduction is your top priority.",
        "avoid": "Pricing data is missing or outdated.",
        "example": "Background or batch jobs where lower cost is preferred."
      },
      "reset-aware": {
        "when": "Si esegue il percorso su più account con telemetria delle quote e diverse finestre di reimpostazione.",
        "avoid": "La telemetria delle quote non è disponibile per la maggior parte degli account.",
        "example": "Preferisci un account settimanale reimpostato al 60% domani rispetto a un account reimpostato all'80% in seguito."
      },
      "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": "Da utilizzare quando si desidera esaurire completamente la quota di un provider prima di passare a quello successivo.",
        "avoid": "Da evitare quando è necessario il bilanciamento del carico a livello di richiesta tra provider.",
        "example": "Esempio: utilizza tutti i crediti Deepgram da $ 200 prima di ricorrere a Groq."
      },
      "auto": {
        "when": "Utilizzalo quando hai bisogno di un routing con punteggio multifattore basato su costo, latenza e qualità.",
        "avoid": "Da evitare quando è necessario un rigoroso ordine di priorità o la persistenza storica.",
        "example": "Esempio: bilanciare le richieste tra modelli con punti di forza diversi."
      },
      "lkgp": {
        "when": "Da utilizzare quando si desidera instradare in base alle percentuali di successo e alle prestazioni storiche.",
        "avoid": "Da evitare quando i dati storici sono limitati o inaffidabili.",
        "example": "Esempio: indirizzamento a modelli con un buon track record su compiti specifici."
      },
      "context-optimized": {
        "when": "Da utilizzare quando è necessario ottimizzare l'utilizzo della finestra di contesto tra i modelli.",
        "avoid": "Da evitare quando i modelli hanno lunghezze di contesto simili o le attività sono semplici.",
        "example": "Esempio: distribuire lunghe conversazioni tra modelli con finestre di contesto più ampie."
      }
    },
    "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": "Se abilitato, qualsiasi errore upstream attiva il failover immediato alla successiva destinazione combinata, saltando tutti i tentativi e gli URL di fallback.",
      "maxSetRetries": "Numero di volte per riprovare l'intero set di destinazioni quando ogni destinazione fallisce. 0 = nessun tentativo a livello di set.",
      "setRetryDelayMs": "Ritardo tra i tentativi a livello di set, dando tempo ai problemi temporanei di risolversi."
    },
    "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": "Pronto per salvare?",
    "readinessDescription": "Rivedi l'elenco di controllo prima di creare o aggiornare questa combinazione.",
    "readinessCheckName": "Il nome combinato è valido",
    "readinessCheckModels": "È selezionato almeno un modello",
    "readinessCheckWeights": "Il totale ponderato è 100%",
    "readinessCheckWeightsOptional": "Regola del peso non richiesta",
    "readinessCheckPricing": "I dati sui prezzi sono disponibili",
    "readinessCheckPricingOptional": "Regola di prezzo non richiesta",
    "saveBlockedTitle": "Il salvataggio è bloccato finché non vengono risolti i seguenti elementi:",
    "saveBlockName": "Definire un nome per la combinazione.",
    "saveBlockModels": "Aggiungi almeno un modello.",
    "saveBlockWeighted": "Imposta i pesi al 100% (attuale: {total}%).",
    "saveBlockPricing": "Aggiungi il prezzo per almeno un modello o scegli una strategia diversa.",
    "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": "Rotazione dell'account sensibile al ripristino",
        "description": "Bilancia la quota rimanente del provider rispetto ai tempi di reimpostazione.",
        "tip1": "Utilizza passaggi espliciti dell'account o routing dei tag dell'account per i provider con telemetria delle quote.",
        "tip2": "Ottimizza la sessione rispetto ai pesi settimanali quando l'esaurimento a breve termine è più rischioso.",
        "tip3": "Mantieni la fascia di legame piccola in modo che i conti equivalenti continuino a ruotare equamente."
      },
      "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": "Quote del fornitore di scarico in sequenza prima di ripiegare.",
        "tip1": "Utilizzare per il routing basato su quote con catene di fallback chiare.",
        "tip2": "Imposta le quote in modo accurato per evitare un fallback prematuro.",
        "tip3": "Funziona meglio con i fornitori che offrono livelli gratuiti o pacchetti di credito.",
        "title": "Esaurimento delle quote"
      },
      "auto": {
        "description": "Percorso basato su punteggi in tempo reale per costi, latenza, qualità e integrità.",
        "tip1": "Lascia che il motore bilanci automaticamente più fattori.",
        "tip2": "Monitora quali fattori guidano le decisioni di routing nei log.",
        "tip3": "Da utilizzare per carichi di lavoro complessi in cui nessun singolo fattore domina.",
        "title": "Ottimizzazione multifattoriale"
      },
      "lkgp": {
        "description": "Percorso basato sulle prestazioni storiche e sui modelli di successo.",
        "tip1": "Richiede una cronologia delle richieste sufficiente per previsioni accurate.",
        "tip2": "Ideale per carichi di lavoro con modelli di prestazioni del modello coerenti.",
        "tip3": "Monitorare l'accuratezza della previsione e regolare i pesi secondo necessità.",
        "title": "Routing basato sulla cronologia"
      },
      "context-optimized": {
        "description": "Ottimizza il routing in base all'utilizzo della finestra di contesto e all'efficienza dei token.",
        "tip1": "Indirizza conversazioni lunghe a modelli con finestre di contesto più ampie.",
        "tip2": "Monitora l'utilizzo del contesto per evitare sprechi di token.",
        "tip3": "Ideale per l'intelligenza artificiale conversazionale che richiede un'ampia conservazione del contesto.",
        "title": "Ottimizzazione del contesto"
      },
      "context-relay": {
        "description": "Ideale quando è prevista la rotazione dell'account e l'account successivo deve ereditare un riepilogo delle attività semplificato.",
        "tip1": "Utilizzare con account a rotazione di fornitori per la stessa famiglia di modelli.",
        "tip2": "Imposta la soglia di trasferimento al di sotto dei limiti di quota rigidi per il tempo di generazione del riepilogo.",
        "tip3": "Imposta un modello di riepilogo dedicato solo se quello primario è troppo costoso o instabile.",
        "title": "Priorità di continuità della sessione"
      },
      "p2c": {
        "description": "Indirizza al fornitore con il carico di corrente più basso in base a parametri in tempo reale.",
        "tip1": "Monitora i parametri di salute del fornitore per una valutazione accurata del carico.",
        "tip2": "Funziona meglio con pool di fornitori omogenei.",
        "tip3": "Regola la sensibilità per evitare oscillazioni durante i picchi di traffico.",
        "title": "Il potere di due scelte"
      }
    },
    "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": "Questo esatto passaggio fornitore/modello/account è già nella combinazione.",
    "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": "Completa ogni fase per definire combo, creare passaggi, selezionare la strategia di routing ed esaminare i risultati.",
    "builderStepsDescription": "Costruisci ogni passaggio combinato in ordine: fornitore, modello, quindi account. Ciò consente di riutilizzare lo stesso fornitore e modello su account diversi.",
    "selectProvider": "Seleziona Fornitore",
    "selectProviderPlaceholder": "Seleziona un fornitore",
    "selectModel": "Seleziona modello",
    "selectModelPlaceholder": "Seleziona prima un fornitore",
    "selectAccount": "Seleziona Conto",
    "selectComboToReference": "Seleziona la combinazione a cui fare riferimento",
    "comboReference": "Riferimento combinato",
    "addComboReference": "Aggiungi riferimento combinato",
    "addStepBeforeContinue": "Aggiungi almeno un passaggio prima di procedere alla fase successiva.",
    "previewNextStep": "Anteprima del passaggio successivo",
    "autoSelectAccount": "Seleziona automaticamente l'account in fase di esecuzione",
    "modePackBalanced": "Equilibrato",
    "modePackBudget": "Bilancio",
    "modePackPerformance": "Prestazione",
    "modePackCustom": "Costume",
    "browseLegacyCatalog": "Sfoglia il catalogo combinato legacy",
    "agentFeaturesTitle": "Funzionalità dell'agente",
    "agentFeaturesDescription": "Abilita funzionalità avanzate per gli agenti che utilizzano questa combinazione",
    "agentFeaturesSystemMessageOverride": "Ignora il messaggio di sistema",
    "agentFeaturesSystemMessagePlaceholder": "Sei un assistente esperto...",
    "agentFeaturesSystemMessageHint": "Override del messaggio di sistema per gli agenti",
    "agentFeaturesToolFilterRegex": "/modello-regex/",
    "agentFeaturesToolFilterHint": "Strumento di filtro regex per gli agenti",
    "agentFeaturesContextCacheHint": "Abilita la cache nel contesto per gli strumenti dell'agente",
    "agentFeaturesContextCacheProtection": "Proteggi la cache dalle mutazioni dello strumento agente",
    "agentFeaturesContextLength": "Lunghezza del contesto",
    "agentFeaturesContextLengthPlaceholder": "per esempio. 128000",
    "agentFeaturesContextLengthHint": "Definisce la finestra di contesto per questa combinazione in /v1/models.",
    "agentFeaturesContextLengthErrorInteger": "La lunghezza del contesto deve essere un numero intero valido",
    "agentFeaturesContextLengthErrorRange": "La lunghezza del contesto deve essere compresa tra 1.000 e 2.000.000",
    "compressionOverride": "Sostituzione della compressione",
    "modePack": "Pacchetto modalità"
  },
  "costs": {
    "title": "Costi",
    "pageDescription": "Tieni traccia delle spese, analizza le tendenze e gestisci il tuo budget per l'AI su tutti i fornitori",
    "overview": "Panoramica",
    "budget": "Bilancio",
    "totalCost": "Costo totale",
    "breakdown": "Ripartizione dei costi",
    "noData": "Nessun dato sui costi",
    "byModel": "Per modello",
    "byProvider": "Per fornitore",
    "range7d": "7 giorni",
    "range30d": "30 giorni",
    "range90d": "90 giorni",
    "rangeAll": "Tutto il tempo",
    "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": "Utilizzo dei gettoni",
    "totalTokens": "Gettoni totali",
    "inputTokens": "Gettoni di input",
    "outputTokens": "Gettoni di uscita",
    "inputOutputRatio": "Rapporto ingresso/uscita",
    "tokens": "gettoni",
    "routingEfficiency": "Efficienza del percorso",
    "fallbackCount": "Richieste di fallback",
    "fallbackRate": "Tasso di ripiego",
    "modelCoverage": "Copertura del modello",
    "modelCoverageDesc": "% di richieste con modello esplicito",
    "outOfRequests": "su {total} richieste",
    "costByApiKey": "Costo per chiave API",
    "costByAccount": "Costo per conto",
    "apiKeyName": "Chiave API",
    "account": "Account",
    "requests": "Richieste",
    "cost": "Costo",
    "dayStreak": "serie di giorni",
    "weeklyUsagePattern": "Modello di utilizzo settimanale",
    "activityHeatmap": "Attività (365 giorni)",
    "less": "Meno",
    "more": "Di più",
    "monthlyForecast": "Previsioni mensili",
    "forecastBasis": "Basato sugli ultimi {days} giorni",
    "avgDailyCost": "Media costo giornaliero",
    "daysRemaining": "{days} giorni rimanenti",
    "periodComparison": "Confronto di periodi",
    "previousPeriod": "Metà precedente",
    "currentPeriod": "Metà attuale",
    "exportCSV": "Esporta come CSV",
    "exportJSON": "Esporta come JSON",
    "legacyFreeLabel": "__MISSING__:Legacy / Free",
    "costExplorerTitle": "Esploratore dei costi",
    "costExplorerDescription": "Esplora la spesa per provider, modello, chiave API, account o livello di servizio.",
    "groupProvider": "Fornitore",
    "groupModel": "Modello",
    "groupApiKey": "Chiave API",
    "groupAccount": "Conto",
    "groupServiceTier": "Livello di servizio",
    "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": "Dimensione",
    "share": "Quota",
    "legacyOrFree": "Legacy / gratuito",
    "filterRows": "Filtra righe…",
    "filterCostExplorerRows": "Filtra righe dell'esploratore dei costi",
    "noMatchingCostRows": "Nessuna riga di costo corrispondente",
    "noMatchingCostRowsDescription": "Modifica il testo di ricerca, il raggruppamento o la finestra temporale selezionata.",
    "showingCostRows": "Visualizzate {shown} di {total} righe corrispondenti.",
    "showingTopCostRows": "Visualizzate {shown} di {total} righe corrispondenti (prime 50)."
  },
  "endpoint": {
    "title": "Endpoint API",
    "available": "Endpoint disponibili",
    "cloudProxy": "Proxy cloud",
    "disableConfirm": "Sei sicuro di voler disabilitare il proxy cloud?",
    "baseUrl": "URL di base",
    "apiKeyLabel": "Chiave API",
    "registeredKeys": "Chiavi registrate",
    "chatCompletions": "Completamenti della chat",
    "responses": "Risposte",
    "listModels": "Elenco modelli",
    "usingCloudProxy": "Utilizzo del proxy cloud",
    "usingLocalServer": "Utilizzo del server locale",
    "machineId": "ID macchina: {id}...",
    "disableCloud": "Disabilita Nuvola",
    "enableCloud": "Abilita nuvola",
    "modelsAcrossEndpoints": "Modelli {models} sugli endpoint {endpoints}",
    "loadingModels": "Loading available models...",
    "chatDesc": "Chat in streaming e non in streaming con tutti i provider",
    "embeddings": "Incorporamenti",
    "embeddingsDesc": "Incorporamenti di testo per pipeline di ricerca e RAG",
    "imageGeneration": "Generazione di immagini",
    "imageDesc": "Genera immagini da istruzioni di testo",
    "rerank": "Riclassificare",
    "rerankDesc": "Riclassificare i documenti in base alla pertinenza rispetto a una query",
    "audioTranscription": "Trascrizione audio",
    "audioTranscriptionDesc": "Trascrivere file audio in testo (Whisper)",
    "textToSpeech": "Sintesi vocale da testo",
    "textToSpeechDesc": "Converti il ​​testo in parlato dal suono naturale",
    "musicGeneration": "Music Generation",
    "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
    "moderations": "Moderazioni",
    "moderationsDesc": "Moderazione dei contenuti e classificazione della sicurezza",
    "responsesDesc": "API Responses di OpenAI per Codex e workflow agentici avanzati",
    "listModelsDesc": "Elenca tutti i modelli disponibili su tutti i provider connessi",
    "settingsApiDesc": "Leggere e modificare la configurazione di OmniRoute tramite API",
    "settingsApi": "Settings API",
    "categoryCore": "API Principali",
    "categoryMedia": "Media e Multi-Modale",
    "categorySearch": "Search & Discovery",
    "categoryUtility": "Utilità e Gestione",
    "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": "Abilita proxy cloud",
    "whatYouGet": "Cosa otterrai",
    "cloudBenefitAccess": "Accedi alla tua API da qualsiasi parte del mondo",
    "cloudBenefitShare": "Condividi facilmente l'endpoint con il tuo team",
    "cloudBenefitPorts": "Non è necessario aprire porte o configurare il firewall",
    "cloudBenefitEdge": "Rete edge globale veloce",
    "cloudSessionNote": "Cloud manterrà la tua sessione di autenticazione per 1 giorno. Se non utilizzato verrà automaticamente cancellato.",
    "cloudUnstableNote": "In alcuni casi, il cloud è attualmente instabile con Claude Code OAuth.",
    "cloudConnected": "Proxy cloud connesso!",
    "connectingToCloud": "Connessione al cloud...",
    "verifyingConnection": "Verifica della connessione...",
    "connecting": "Connessione...",
    "verifying": "Verifica...",
    "connected": "Collegato!",
    "disableCloudTitle": "Disabilita proxy cloud",
    "disableWarning": "Tutte le sessioni di autenticazione verranno eliminate dal cloud.",
    "syncingData": "Sincronizzazione dei dati più recenti...",
    "disablingCloud": "Disabilitazione del cloud...",
    "syncing": "Sincronizzazione...",
    "disabling": "Disabilitazione...",
    "cloudConnectedVerified": "Cloud Proxy connesso e verificato!",
    "connectedVerificationPending": "Connesso: verifica in sospeso",
    "connectedVerificationPendingWithError": "Connesso: verifica in sospeso: {error}",
    "cloudDisabledSuccess": "Cloud disabilitato correttamente",
    "syncedSuccess": "Sincronizzazione riuscita",
    "failedDisable": "Impossibile disattivare il cloud",
    "failedEnable": "Impossibile abilitare il cloud",
    "cloudRequestTimeout": "Timeout della richiesta cloud",
    "cloudRequestFailed": "Richiesta cloud non riuscita",
    "cloudWorkerUnreachable": "Impossibile raggiungere il lavoratore cloud. Assicurati che il servizio cloud sia in esecuzione (npm run dev in /cloud).",
    "connectionFailed": "Connessione non riuscita",
    "syncFailed": "Impossibile sincronizzare i dati cloud",
    "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} — Modelli",
    "noModelsForProvider": "Nessun modello disponibile per questo fornitore.",
    "chat": "Chiacchierata",
    "embedding": "Incorporamento",
    "image": "Immagine",
    "custom": "costume",
    "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": "Messaggi",
    "messagesApiDesc": "Formato API Native Anthropic Messages per provider compatibili con Claude",
    "imageEdits": "Modifiche alle immagini",
    "imageEditsDesc": "Modifica e modifica le immagini esistenti con l'intelligenza artificiale (in-painting, outpainting, variazioni)",
    "batchApi": "API batch",
    "batchApiDesc": "Elabora grandi batch di richieste in modo asincrono (compatibile con OpenAI)",
    "filesApi": "API dei file",
    "filesApiDesc": "Carica e gestisci file per l'elaborazione batch",
    "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": "Password Sudo (richiesto su macOS/Linux)",
    "ngrokTitle": "Ngrok Tunnel",
    "ngrokRunning": "Corsa",
    "ngrokStarting": "Di partenza",
    "ngrokStoppedState": "Fermato",
    "ngrokNeedsAuth": "Richiede autenticazione",
    "ngrokNotInstalled": "Non installato",
    "ngrokUnsupported": "Non supportato",
    "ngrokError": "Errore",
    "ngrokEnable": "Abilita tunnel",
    "ngrokDisable": "Ferma il tunnel",
    "ngrokUrlNotice": "Crea un tunnel pubblico ngrok.",
    "ngrokAuthTokenLabel": "Token di autenticazione (richiesto se NGROK_AUTHTOKEN non è impostato)",
    "ngrokAuthTokenPlaceholder": "Inserisci il tuo token di autenticazione Ngrok",
    "ngrokLastError": "Ultimo errore: {error}",
    "ngrokStarted": "è iniziato il tunnel di Ngrok",
    "ngrokStopped": "il tunnel di Ngrok si è fermato",
    "ngrokRequestFailed": "Impossibile aggiornare il tunnel Ngrok",
    "tokenSaverSubtitle": "Spendi meno token per ogni richiesta.",
    "tokenSaverToolOutput": "Uscita dello strumento",
    "tokenSaverLlmOutput": "Uscita LLM",
    "tokenSaverInputCompression": "Compressione in ingresso",
    "apiEndpointsCatalogUnavailable": "Catalogo API non disponibile",
    "apiEndpointsSearchPlaceholder": "Cerca endpoint...",
    "apiEndpointsRequiresAuth": "Richiede l'autenticazione",
    "apiEndpointsNoMatch": "Nessun endpoint corrisponde al filtro",
    "localServer": "Server locale",
    "cloudOmniroute": "Cloud OmniRoute",
    "copyUrl": "Copia l'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": "Endpoint API",
    "apiEndpointsTitle": "Endpoint API",
    "apiEndpointsDescription": "Endpoint API backend che possono essere consumati da altre applicazioni e servizi.",
    "comingSoon": "In arrivo",
    "plannedFeatures": "Funzionalità previste",
    "featureRestApi": "Catalogo endpoint REST API con documentazione interattiva",
    "featureWebhooks": "Configurazione webhook e sottoscrizioni eventi",
    "featureSwagger": "Generazione automatica specifiche OpenAPI / Swagger",
    "featureAuth": "Gestione chiavi API e ambiti OAuth 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": "Copia l'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": "Salute",
    "ok": "OK",
    "totalTasks": "Compiti totali",
    "activeStreams": "Active streams",
    "lastTask": "Ultimo compito",
    "taskStateOverview": "Panoramica dello stato dell'attività",
    "state": {
      "submitted": "presentato",
      "working": "lavorando",
      "completed": "completato",
      "failed": "failed",
      "cancelled": "annullato"
    },
    "agentCard": "Carta dell'agente",
    "agentCardPath": "__MISSING__:/.well-known/agent.json",
    "version": "Versione",
    "url": "URL",
    "capabilities": "Capabilities",
    "agentCardNotAvailable": "Agent card not available.",
    "quickValidation": "Quick validation",
    "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
    "runMessageSend": "Run message/send",
    "runMessageStream": "Run message/stream",
    "taskManagement": "Task management",
    "taskSummary": "{total} tasks | page {page} of {totalPages}",
    "allStates": "all",
    "allSkills": "all skills",
    "loadingTasks": "Loading tasks...",
    "noTasksForFilters": "No tasks found for current filters.",
    "tableTask": "Task",
    "tableSkill": "Skill",
    "tableState": "State",
    "tableUpdated": "Updated",
    "tableActions": "Actions",
    "view": "View",
    "cancel": "Cancel",
    "previous": "Previous",
    "next": "Next",
    "taskDetail": "Task detail",
    "close": "Close",
    "metadata": "Metadata",
    "events": "Events",
    "artifacts": "Artifacts",
    "tablePhase": "Table Phase",
    "offset": "Offset",
    "limit": "Limit",
    "skill": "Skill",
    "rpcEndpoint": "POST /a2a",
    "rpcMethodSend": "messaggio/inviare",
    "rpcMethodStream": "messaggio/flusso",
    "rpcMethodGet": "compiti/ottenere",
    "rpcMethodCancel": "attività/annulla",
    "serviceLabel": "A2A",
    "online": "__MISSING__:Online",
    "offline": "__MISSING__:Offline",
    "disableLabel": "__MISSING__:Disable {label}",
    "enableLabel": "__MISSING__:Enable {label}",
    "a2aDisabledTitle": "__MISSING__:A2A is disabled",
    "a2aDisabledDesc": "__MISSING__:Enable A2A above to view task telemetry, agent details, and validation tools.",
    "a2aIntro": "__MISSING__:Agent2Agent JSON-RPC 2.0 endpoint — send tasks, stream responses, cancel in-flight jobs.",
    "a2aStep1": "__MISSING__:Discover the agent card at {code}.",
    "a2aStep2": "__MISSING__:Send JSON-RPC to {code1} using {code2} or {code3}.",
    "a2aStep3": "__MISSING__:Track and cancel tasks with {code1} and {code2}."
  },
  "memory": {
    "title": "Memory Management",
    "description": "View and manage stored memory entries",
    "memories": "Memories",
    "totalEntries": "Total Entries",
    "tokensUsed": "Tokens Used",
    "hitRate": "Hit Rate",
    "loading": "Loading memories...",
    "noMemories": "No memories found",
    "search": "Search memories...",
    "allTypes": "All Types",
    "export": "Export",
    "import": "Import",
    "addMemory": "Add Memory",
    "type": "Type",
    "key": "Key",
    "content": "Content",
    "created": "Created",
    "actions": "Actions",
    "delete": "Delete",
    "factual": "Factual",
    "episodic": "Episodic",
    "procedural": "Procedural",
    "semantic": "Semantic",
    "a": "A",
    "pipelineOk": "Pipeline OK ({latencyMs}ms)",
    "pipelineError": "Errore della pipeline",
    "healthUnknown": "Salute sconosciuta",
    "checkingHealth": "Controllo…",
    "checkHealth": "Controlla la salute",
    "pageInfo": "Pagina {page} di {totalPages} ({total} totale)",
    "previous": "Precedente",
    "next": "Prossimo",
    "cancel": "Cancellare",
    "save": "Salva",
    "keyPlaceholder": "per esempio. tema.preferenze.utente",
    "contentPlaceholder": "Valore o contenuto JSON da ricordare"
  },
  "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": "Filtra le competenze per nome, descrizione o tag",
    "allModes": "Tutte le modalità",
    "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": "Mercato delle competenze",
    "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": "Installa abilità"
  },
  "health": {
    "title": "Salute del sistema",
    "description": "Monitoraggio in tempo reale della tua istanza OmniRoute",
    "healthy": "Salutare",
    "degraded": "Degradato",
    "down": "Giù",
    "uptime": "Tempo di attività",
    "memory": "Memoria",
    "memoryRss": "Memoria (RSS)",
    "heap": "Mucchio",
    "cpu": "processore",
    "database": "Banca dati",
    "version": "Versione",
    "lastCheck": "Ultimo controllo",
    "providerHealth": "Salute del fornitore",
    "systemMetrics": "Metriche di sistema",
    "tokenHealth": "Gettone di salute",
    "refreshAll": "Aggiorna tutto",
    "checkNow": "Controlla ora",
    "loadingHealth": "Caricamento dati sanitari...",
    "failedToLoad": "Impossibile caricare i dati sanitari: {error}",
    "retry": "Riprova",
    "allOperational": "Tutti i sistemi operativi",
    "issuesDetected": "Rilevati problemi di sistema",
    "updatedAt": "Aggiornato {time}",
    "latency": "Latenza",
    "latencyP50": "p50",
    "latencyP95": "p95",
    "latencyP99": "p99",
    "millisecondsShort": "{value}ms",
    "notAvailable": "—",
    "totalRequests": "Richieste totali",
    "noDataYet": "Nessun dato ancora",
    "promptCache": "Cache dei suggerimenti",
    "entries": "Voci",
    "hitRate": "Tasso di successo",
    "hitsMisses": "Colpi / Mancati",
    "signatureCache": "Cache delle firme",
    "signatureDefaults": "Predefiniti",
    "signatureTool": "Attrezzo",
    "signatureFamily": "Famiglia",
    "signatureSession": "Sessione",
    "recovering": "Recupero",
    "noCBData": "Nessun dato disponibile sull'interruttore automatico. Fai prima alcune richieste.",
    "providerHealthStatusAria": "Stato di salute del fornitore",
    "issuesLabel": "Problemi rilevati",
    "operational": "Operativo",
    "providers": "Fornitori",
    "configuredProvidersLabel": "Configurato nel dashboard",
    "configuredProvidersHint": "Provider con credenziali salvate in /dashboard/providers, indipendentemente dallo stato di runtime.",
    "activeProviders": "{count} active",
    "activeProvidersHint": "Provider configurati attualmente abilitati per le richieste di instradamento.",
    "monitoredProviders": "{count} monitored",
    "monitoredProvidersHint": "Fornitori attualmente monitorati dai monitoraggi dello stato degli interruttori automatici.",
    "healthyCount": "{count} sano",
    "nodeVersion": "Nodo {version}",
    "failures": "{count} errore",
    "failuresPlural": "{count} errori",
    "lastFailure": "Scorso",
    "rateLimitStatus": "Stato del limite di velocità",
    "activeLimiters": "{count} limitatore attivo",
    "activeLimitersPlural": "{count} limitatori attivi",
    "queued": "In coda",
    "queuedCount": "{count} in coda",
    "running": "corsa",
    "runningCount": "{count} in esecuzione",
    "ok": "OK",
    "activeLockouts": "Blocchi attivi",
    "resetConfirm": "Ripristinare tutti gli interruttori automatici allo stato integro? Ciò eliminerà tutti i conteggi degli errori e ripristinerà tutti i provider allo stato operativo.",
    "resetAllTitle": "Ripristinare tutti gli interruttori automatici allo stato integro",
    "resetting": "Reimpostazione...",
    "resetAll": "Reimposta tutto",
    "until": "Fino al {time}",
    "limitExhausted": "Exhausted",
    "learnedFromHeaders": "Learned from headers",
    "remainingOfLimit": "{remaining}/{limit} remaining",
    "throttleStatus": "Throttle: {value}",
    "lastHeaderUpdate": "Header update: {age}",
    "databaseHealth": "Integrità del database",
    "stickyBoundSessions": "Sessioni con rilegatura adesiva",
    "sessionsByApiKey": "Sessioni per chiave API",
    "noActiveSessionsTracked": "Nessuna sessione attiva ancora monitorata.",
    "noSessionQuotaMonitorsActive": "Nessun monitoraggio della quota sessione attivo.",
    "gracefulDegradationStatus": "Stato di degrado grazioso",
    "additionalModels": "+{count} altri modelli",
    "providerHealthMatrixTitle": "__MISSING__:Provider Health Matrix",
    "providerHealthMatrixDescription": "__MISSING__:Provider × account × model states from breakers, cooldowns, lockouts and logs.",
    "healthMatrixRange": "__MISSING__:Health matrix range",
    "providerFilter": "__MISSING__:Provider filter",
    "onlyIssues": "__MISSING__:Only issues",
    "refresh": "__MISSING__:Refresh",
    "accounts": "__MISSING__:Accounts",
    "models": "__MISSING__:Models",
    "issues": "__MISSING__:Issues",
    "loadingProviderHealthMatrix": "__MISSING__:Loading provider health matrix...",
    "failedProviderHealthMatrix": "__MISSING__:Failed to load Provider Health Matrix: {error}",
    "noProvidersMatchedFilters": "__MISSING__:No providers matched the current filters.",
    "modelPillSummary": "__MISSING__:{requests} req · {successRate} success · {latency} avg",
    "modelLockoutSummary": "__MISSING__:{reason} · {duration} left",
    "locked": "__MISSING__:locked",
    "inferred": "__MISSING__:inferred",
    "inactive": "__MISSING__:Inactive",
    "noConnectionId": "__MISSING__:no connection id",
    "accountModelSummary": "__MISSING__:{connectionId} · {count} models",
    "cooldown": "__MISSING__:cooldown",
    "durationRemaining": "__MISSING__:{duration} remaining",
    "noSyncedModelsOrTraffic": "__MISSING__:No synced models or recent traffic yet.",
    "providerRowSummary": "__MISSING__:{active}/{total} active accounts · {requests} req · {successRate} success · {latency} avg",
    "cooldownCount": "__MISSING__:{count} cooldown",
    "lockoutCount": "__MISSING__:{count} lockouts",
    "issueCount": "__MISSING__:{count} issues",
    "score": "__MISSING__:Score",
    "lastRequest": "__MISSING__:Last request",
    "lastError": "__MISSING__:Last error"
  },
  "telemetry": {
    "title": "Telemetria del sistema",
    "description": "Segnali di richiesta, runtime, sessione e memoria in sequenza da questo processo OmniRoute.",
    "uptime": "Tempo di attività",
    "totalRequests": "Richieste totali",
    "avgLatency": "Latenza media",
    "errorRate": "Tasso di errore",
    "activeConnections": "Connessioni attive",
    "memoryUsage": "Utilizzo della memoria",
    "latencyTrend": "Andamento della latenza",
    "throughputTrend": "Andamento del rendimento",
    "memoryTrend": "Andamento della memoria",
    "refresh": "Aggiorna",
    "updatedAt": "Aggiornato {time}",
    "loadFailed": "Impossibile caricare la telemetria.",
    "partialData": "La telemetria è parzialmente disponibile: {error}"
  },
  "mitm": {
    "title": "Procura MITM",
    "description": "Proxy trasparente per intercettare e instradare le richieste dei client.",
    "enable": "Abilita proxy MITM",
    "enableDesc": "Avvia o arresta il processo di intercettazione locale e l'override DNS.",
    "status": "Stato",
    "running": "Corsa",
    "stopped": "Fermato",
    "start": "Inizio",
    "stop": "Fermare",
    "refresh": "Aggiorna",
    "port": "Porta proxy",
    "apiKey": "Chiave API del router",
    "apiKeyPlaceholder": "Opzionale; ritorna a una chiave locale",
    "sudoPassword": "Password sudo",
    "cachedPassword": "Memorizzato nella cache per questo processo",
    "saveSettings": "Salva impostazioni",
    "settingsSaved": "Impostazioni MITM salvate.",
    "startedSuccess": "Il proxy MITM è stato avviato.",
    "stoppedSuccess": "Il proxy MITM è stato interrotto.",
    "saveFailed": "Impossibile aggiornare le impostazioni MITM.",
    "loadFailed": "Impossibile caricare le impostazioni MITM.",
    "invalidPort": "L'intercettazione MITM trasparente attualmente richiede la porta 443.",
    "certificate": "Certificato CA",
    "certificateReady": "Il certificato è disponibile per l'installazione di trust client.",
    "certificateMissing": "Il certificato non è stato ancora generato.",
    "available": "Disponibile",
    "missing": "Mancante",
    "downloadCert": "Scarica il certificato CA",
    "regenerateCert": "Rigenera certificato",
    "regenerateConfirm": "Ciò invaliderà la fiducia del cliente esistente. Continuare?",
    "regenerateSuccess": "Certificato MITM rigenerato.",
    "regenerateFailed": "Impossibile rigenerare il certificato MITM.",
    "targetRoutes": "Percorsi target",
    "interceptedRequests": "Richieste intercettate",
    "activeConnections": "Connessioni attive",
    "dnsConfigured": "DNS configurato",
    "pid": "PID",
    "lastIntercept": "Ultima intercettazione",
    "target": "Bersaglio",
    "host": "Ospite",
    "localPort": "Porto locale",
    "endpoints": "Endpoint",
    "enabled": "Abilitato",
    "configured": "Configurato",
    "yes": "SÌ",
    "no": "NO",
    "noTargets": "Nessun percorso di destinazione configurato."
  },
  "limits": {
    "title": "Limiti e quote",
    "rateLimit": "Limite di velocità",
    "remaining": "Rimanente",
    "requestsPerMinute": "Richieste/min",
    "tokensPerMinute": "Gettoni/min",
    "dailyLimit": "Limite giornaliero"
  },
  "logs": {
    "title": "Registri",
    "requestLogs": "Richiedi registri",
    "proxyLogs": "Registri proxy",
    "auditLog": "Registro di controllo",
    "console": "Consolle",
    "auditLogDesc": "Azioni amministrative ed eventi di sicurezza",
    "loading": "Caricamento...",
    "refresh": "Aggiorna",
    "filterByAction": "Filtra per azione...",
    "filterByActor": "Filtra per attore...",
    "filterEntriesAria": "Filtra le voci del registro di controllo",
    "filterByActionTypeAria": "Filtra per tipo di azione",
    "filterByActorAria": "Filtra per attore",
    "refreshAuditLogAria": "Aggiorna il registro di controllo",
    "tableAria": "Voci del registro di controllo",
    "failedFetchAuditLog": "Impossibile recuperare il registro di controllo",
    "showing": "Visualizzazione delle voci {count} (offset {offset})",
    "search": "Ricerca",
    "timestamp": "Timestamp",
    "action": "Azione",
    "actor": "Attore",
    "target": "Bersaglio",
    "details": "Dettagli",
    "ipAddress": "Indirizzo IP",
    "notAvailable": "—",
    "noEntries": "Nessuna voce del registro di controllo trovata",
    "previous": "Precedente",
    "next": "Prossimo",
    "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": "Cancella tutto",
    "confirmClearActiveRequests": "Cancellare tutte le richieste attive?",
    "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": "Benvenuto",
    "security": "Sicurezza",
    "test": "Test",
    "ready": "Pronto!",
    "setPassword": "Imposta password",
    "addProvider": "Aggiungi il tuo primo fornitore",
    "getStarted": "Inizia",
    "skip": "Saltare",
    "skipWizard": "Salta completamente la procedura guidata",
    "skipPassword": "Salta l'impostazione della password",
    "skipAndContinue": "Salta e continua",
    "passwordLabel": "Password",
    "confirmPassword": "Conferma password",
    "enterPassword": "Inserisci la password",
    "confirmPasswordPlaceholder": "Conferma password",
    "passwordsMismatch": "Le password non corrispondono",
    "setupComplete": "Configurazione completata!",
    "goToDashboard": "Vai alla dashboard →",
    "welcomeDesc": "OmniRoute è il tuo proxy API AI locale. Indirizza le richieste a più fornitori di intelligenza artificiale con bilanciamento del carico, failover e monitoraggio dell'utilizzo.",
    "multiProvider": "Multi-provider",
    "usageTracking": "Monitoraggio dell'utilizzo",
    "securityDesc": "Imposta una password per proteggere la tua dashboard o salta per ora.",
    "providerDesc": "Connetti il ​​tuo primo fornitore di intelligenza artificiale. Puoi aggiungerne altri in seguito.",
    "apiKeyRequired": "Chiave API (richiesto)",
    "customUrlOptional": "URL personalizzato (facoltativo)",
    "testDesc": "Verifichiamo che la connessione del tuo provider funzioni.",
    "runTest": "Esegui il test di connessione",
    "testingConnection": "Test della connessione...",
    "connectionSuccessful": "Connessione riuscita! Il tuo fornitore è pronto.",
    "noProviderFound": "Nessun fornitore trovato. Puoi aggiungerne uno dalla dashboard in un secondo momento.",
    "testFailed": "Il test è fallito, ma puoi configurarlo in seguito.",
    "couldNotTest": "Impossibile eseguire il test in questo momento. Puoi testare dalla dashboard.",
    "doneDesc": "È tutto pronto! La tua istanza OmniRoute è configurata e pronta per eseguire il proxy delle richieste AI.",
    "yourEndpoint": "Il tuo punto finale:",
    "continue": "Continuare",
    "retry": "Riprova",
    "failedSetPassword": "Impossibile impostare la password. Riprova.",
    "failedAddProvider": "Impossibile aggiungere il fornitore. Riprova.",
    "connectionError": "Errore di connessione. Per favore riprova.",
    "provider": "Fornitore",
    "apiKeyHelp": "Una chiave API è una password per i servizi AI. Ottienine uno dal sito web del tuo provider (ad esempio platform.openai.com, console.anthropic.com).",
    "tier": {
      "subtitle": "OmniRoute organizza i fornitori in tre livelli in modo che il routing preferisca prima il percorso più affidabile e dal costo più basso.",
      "tier1": {
        "label": "Clienti premium",
        "description": "CLI di prima classe con flussi di autenticazione nativi e modelli di ragionamento."
      },
      "tier2": {
        "label": "Ottimizzato in termini di costi",
        "description": "Fornitori economici e ad alto rendimento utilizzati per il traffico quotidiano."
      },
      "tier3": {
        "label": "Ripiego e specialità",
        "description": "Endpoint ospitati localmente o speciali utilizzati come fallback."
      },
      "configure": "Configura i fornitori"
    },
    "tierFlowDiagramAlt": "Diagramma di fallback a 3 livelli di OmniRoute",
    "apiKeyMgmt": "Gestione chiave API"
  },
  "providers": {
    "title": "Fornitori",
    "allProviders": "Tutti i fornitori",
    "audioProviders": "Fornitori di audio",
    "showFreeOnly": "Solo gratuito",
    "addProvider": "Aggiungi fornitore",
    "addFirstProvider": "Aggiungi il tuo primo fornitore",
    "addFirstProviderDesc": "Connetti un provider AI per avviare l'instradamento delle richieste tramite OmniRoute. Puoi utilizzare provider gratuiti, chiavi API o account OAuth.",
    "learnMore": "Saperne di più",
    "editProvider": "Modifica fornitore",
    "deleteProvider": "Elimina fornitore",
    "noProviders": "Nessun provider configurato",
    "modelAvailability": "Disponibilità del modello",
    "accounts": "Conti",
    "newAccount": "Nuovo conto",
    "deleteConfirm": "Sei sicuro di voler eliminare questo fornitore?",
    "testing": "Prova...",
    "testConnection": "Prova connessione",
    "testSuccess": "Connessione riuscita",
    "testFailed": "Connessione non riuscita",
    "available": "Disponibile",
    "cooldown": "Raffreddare",
    "unavailable": "Non disponibile",
    "unknown": "Sconosciuto",
    "oauthLabel": "OAuth",
    "compatibleLabel": "Compatibile",
    "chat": "Chiacchierata",
    "responses": "Risposte",
    "messages": "Messaggi",
    "oauthProviders": "Provider OAuth",
    "freeProviders": "Fornitori gratuiti",
    "apiKeyProviders": "Fornitori di chiavi API",
    "compatibleProviders": "Fornitori compatibili con chiave API",
    "testAll": "Prova tutto",
    "testAllOAuth": "Testa tutte le connessioni OAuth",
    "testAllFree": "Testa tutte le connessioni gratuite",
    "testAllApiKey": "Testa tutte le connessioni della chiave API",
    "testAllCompatible": "Testare tutte le connessioni compatibili",
    "connected": "{count} Connesso",
    "errorCount": "{count} Errore ({code})",
    "errorCountNoCode": "{count} Errore",
    "warningCount": "{count} Attenzione",
    "noConnections": "Nessuna connessione",
    "expiredBadge": "Expired",
    "expiringSoonBadge": "Expiring Soon",
    "freeTier": "Livello gratuito",
    "freeTierAvailable": "Livello gratuito disponibile",
    "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": "Deprecato",
    "deprecatedProvider": "Questo provider è stato deprecato",
    "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": "Disabilitato",
    "enableProvider": "Abilita fornitore",
    "disableProvider": "Disabilita fornitore",
    "testResults": "Risultati dei test",
    "noCompatibleYet": "Nessun fornitore compatibile ancora aggiunto",
    "compatibleHint": "Utilizza i pulsanti qui sopra per aggiungere endpoint compatibili con OpenAI o Anthropic",
    "addOpenAICompatible": "Aggiungi compatibile con OpenAI",
    "addAnthropicCompatible": "Aggiungi compatibilità antropica",
    "addNewProvider": "Aggiungi nuovo fornitore",
    "backToProviders": "Torniamo ai fornitori",
    "configureNewProvider": "Configura un nuovo provider AI da utilizzare con le tue applicazioni.",
    "providerLabel": "Fornitore",
    "selectProvider": "Seleziona un fornitore",
    "selectedProvider": "Fornitore selezionato",
    "authMethod": "Metodo di autenticazione",
    "apiKeyLabel": "Chiave API",
    "apiKeyRequired": "È richiesta la chiave API",
    "selectProviderRequired": "Seleziona un fornitore",
    "enterApiKey": "Inserisci la tua chiave API",
    "apiKeySecure": "La tua chiave API verrà crittografata e archiviata in modo sicuro.",
    "oauth2Connect": "Connettiti con OAuth2",
    "oauth2Label": "OAuth2",
    "oauth2Desc": "Connetti il ​​tuo account utilizzando l'autenticazione OAuth2.",
    "displayName": "Nome da visualizzare",
    "displayNamePlaceholder": "ad esempio, API di produzione, ambiente di sviluppo",
    "displayNameHint": "Opzionale. Un nome descrittivo per identificare questa configurazione.",
    "active": "Attivo",
    "activeDescription": "Abilita questo provider per l'utilizzo nelle tue applicazioni",
    "cancel": "Cancellare",
    "createProvider": "Crea fornitore",
    "failedCreate": "Impossibile creare il fornitore",
    "errorOccurred": "Si è verificato un errore. Per favore riprova.",
    "modelStatus": "Stato del modello",
    "showConfiguredOnly": "Configured only",
    "allModelsOperational": "Tutti i modelli operativi",
    "modelsWithIssues": "{count} modelli con problemi",
    "allModelsNormal": "Tutti i modelli rispondono normalmente.",
    "cooldownCleared": "Recupero cancellato per {model}",
    "failedClearCooldown": "Impossibile cancellare il tempo di recupero",
    "loadingAvailability": "Caricamento disponibilità del modello...",
    "clearCooldown": "Chiaro",
    "clearing": "Cancellazione...",
    "until": "Fino al {time}",
    "providerTestFailed": "Il test del fornitore è fallito",
    "providerTestTimeout": "Provider test timed out — too many connections to test at once",
    "modeTest": "{mode} Prova",
    "passedCount": "{count} superato",
    "failedCount": "{count} non riuscito",
    "testedCount": "{count} testato",
    "millisecondsAbbr": "{value}ms",
    "okShort": "OK",
    "errorShort": "ERRORE",
    "noActiveConnectionsInGroup": "Nessuna connessione attiva trovata per questo gruppo.",
    "allTestsPassed": "Tutti i test {total} sono stati superati",
    "testSummary": "{passed}/{total} superato, {failed} fallito",
    "nameLabel": "Nome",
    "prefixLabel": "Prefisso",
    "baseUrlLabel": "URL di base",
    "apiTypeLabel": "Tipo API",
    "prefixHint": "Necessario. Prefisso univoco per i nomi dei modelli.",
    "nameHint": "Necessario. Un'etichetta amichevole per questo nodo.",
    "baseUrlHint": "Necessario.  URL di base dell'API del provider.",
    "anthropicPrefixPlaceholder": "ac-prod",
    "openaiPrefixPlaceholder": "oc-prod",
    "anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
    "openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
    "validateConnection": "Convalida connessione",
    "validating": "Convalida...",
    "connectionValid": "La connessione è valida!",
    "connectionFailed": "Connessione non riuscita. Controlla l'URL e la chiave.",
    "testKeyLabel": "Testare la chiave API",
    "testKeyPlaceholder": "sk-... (solo per la convalida)",
    "providerNotFound": "Fornitore non trovato",
    "deleteConnectionConfirm": "Eliminare questa connessione?",
    "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": "Impossibile impostare l'alias",
    "failedSaveConnection": "Impossibile salvare la connessione",
    "failedSaveConnectionRetry": "Impossibile salvare la connessione. Per favore riprova.",
    "failedRetestConnection": "Impossibile ripetere il test della connessione",
    "deleteCompatibleNodeConfirm": "Eliminare questo {type} nodo compatibile?",
    "anthropicCompatibleDetails": "Dettagli compatibilità antropica",
    "openaiCompatibleDetails": "Dettagli compatibili con OpenAI",
    "messagesApi": "API dei messaggi",
    "responsesApi": "API di risposta",
    "embeddings": "Embeddings",
    "audioTranscriptions": "Audio Transcriptions",
    "audioSpeech": "Audio Speech",
    "imagesGenerations": "Images Generations",
    "chatCompletions": "Completamenti della chat",
    "importingModels": "Importazione...",
    "importFromModels": "Importa da /modelli",
    "modelsImported": "{count} models imported",
    "allModelsAlreadyImported": "Tutti i modelli sono già importati",
    "noNewModelsToImport": "Nessun nuovo modello da importare — tutti i modelli sono già nel registro o nell'elenco dei modelli personalizzati",
    "skippingExistingModels": "Salto {count} modelli esistenti",
    "autoSync": "Sincronizzazione automatica",
    "autoSyncTooltip": "Aggiorna automaticamente l'elenco dei modelli ogni 24 ore (configurabile tramite MODEL_SYNC_INTERVAL_HOURS)",
    "autoSyncEnabled": "Sincronizzazione automatica abilitata — i modelli verranno aggiornati periodicamente",
    "autoSyncDisabled": "Sincronizzazione automatica disabilitata",
    "autoSyncToggleFailed": "Impossibile attivare la sincronizzazione automatica",
    "clearAllModels": "Cancella tutti i modelli",
    "clearAllModelsConfirm": "Sei sicuro di voler rimuovere tutti i modelli per questo provider?",
    "clearAllModelsSuccess": "Tutti i modelli cancellati",
    "clearAllModelsFailed": "Impossibile cancellare i modelli",
    "addConnectionToImport": "Aggiungi una connessione per abilitare l'importazione.",
    "noModelsConfigured": "Nessun modello configurato",
    "connectionCount": "{count} connessione/i",
    "fetchingModels": "Recupero dei modelli disponibili...",
    "failedFetchModels": "Impossibile recuperare i modelli",
    "noModelsFound": "Nessun modello trovato",
    "importFailed": "Importazione non riuscita",
    "noNewModelsAdded": "Non sono stati aggiunti nuovi modelli.",
    "adding": "Aggiunta...",
    "close": "Close",
    "importingModelsTitle": "Importazione di modelli",
    "copyModel": "Copia modello",
    "filterModels": "Filtra modelli…",
    "modelsActive": "attivi",
    "showModel": "Mostra modello",
    "hideModel": "Nascondi modello",
    "removeModel": "Rimuovi il modello",
    "rateLimitProtected": "Protetto",
    "rateLimitUnprotected": "Non protetto",
    "enableRateLimitProtection": "Fare clic per abilitare la protezione del limite di velocità",
    "disableRateLimitProtection": "Fare clic per disattivare la protezione del limite di velocità",
    "productionKey": "Chiave di produzione",
    "enterNewApiKey": "Inserisci la nuova chiave API",
    "codexApplyModalTitle": "Applicare al Codice locale",
    "codexApplyTargetLabel": "Percorso di destinazione",
    "codexApplyBackupLabel": "Backup",
    "codexApplyWarning": "Questo sostituirà l'auth.json esistente. Continuare?",
    "codexApplyConfirmCheckbox": "Confermo di voler sostituire l'auth.json esistente",
    "codexApply": "Fare domanda a",
    "bulkTabSingle": "Separare",
    "bulkTabBulkAdd": "Aggiunta in blocco",
    "bulkAddFormatHint": "Una chiave per riga. Formato: nome|apiKey o semplicemente apiKey (nominato automaticamente in base all'indice).",
    "bulkValidateKeys": "Convalida ciascuna chiave prima di salvare (più lento)",
    "bulkAddAllKeys": "Aggiungi tutte le chiavi",
    "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
    "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
    "optional": "Opzionale",
    "anthropicCompatibleName": "Compatibile antropico",
    "openaiCompatibleName": "Compatibile con OpenAI",
    "failedImportModels": "Impossibile importare i modelli",
    "noModelsReturnedFromEndpoint": "Nessun modello restituito dall'endpoint /models.",
    "importingModelsProgress": "Importazione di {current} di modelli {total}...",
    "foundModelsStartingImport": "Trovati modelli {count}. Avvio dell'importazione...",
    "importingModelById": "Importazione di {modelId}...",
    "importSuccessCount": "Importazione di {count, plural, one {# model} other {# models}} riuscita!",
    "noNewModelsAddedExisting": "Non sono stati aggiunti nuovi modelli (esistono già tutti).",
    "importDoneCount": "✓ Fatto! {count, plural, one {# model imported.} other {# models imported.}}",
    "unexpectedErrorOccurred": "Si è verificato un errore imprevisto",
    "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
    "messagesPath": "messaggi",
    "responsesPath": "risposte",
    "chatCompletionsPath": "chat/completamenti",
    "add": "Aggiungere",
    "edit": "Modificare",
    "delete": "Eliminare",
    "anthropic": "Antropico",
    "openai": "OpenAI",
    "singleConnectionPerCompatible": "È consentita una sola connessione per nodo compatibile. Aggiungi un altro nodo se hai bisogno di più connessioni.",
    "connections": "Connessioni",
    "providerProxyTitleConfigured": "Proxy del fornitore: {host}",
    "configured": "configurato",
    "providerProxyConfigureHint": "Configura il proxy per tutte le connessioni di questo provider",
    "providerProxy": "Procura del fornitore",
    "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": "Nessuna connessione ancora",
    "addFirstConnectionHint": "Aggiungi la tua prima connessione per iniziare",
    "addConnection": "Aggiungi connessione",
    "availableModels": "Modelli disponibili",
    "builtInModels": "Built-in models",
    "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
    "pageAutoRefresh": "La pagina si aggiornerà automaticamente...",
    "statusDisabled": "disabilitato",
    "statusConnected": "collegato",
    "statusRuntimeIssue": "problema di esecuzione",
    "statusAuthFailed": "autenticazione non riuscita",
    "statusRateLimited": "tariffa limitata",
    "statusNetworkIssue": "problema di rete",
    "statusTestUnsupported": "test non supportato",
    "statusUnavailable": "non disponibile",
    "statusFailed": "fallito",
    "statusError": "errore",
    "oauthAccount": "Account OAuth",
    "errorTypeRuntime": "Runtime locale",
    "errorTypeUpstreamAuth": "Aut. a monte",
    "errorTypeMissingCredential": "Credenziale mancante",
    "errorTypeRefreshFailed": "Aggiornamento non riuscito",
    "errorTypeTokenExpired": "Il gettone è scaduto",
    "errorTypeRateLimited": "Tariffa limitata",
    "errorTypeUpstreamUnavailable": "A monte non disponibile",
    "errorTypeNetworkError": "Errore di rete",
    "errorTypeTestUnsupported": "Test non supportato",
    "errorTypeUpstreamError": "Errore a monte",
    "proxySourceGlobal": "Globale",
    "proxySourceProvider": "Fornitore",
    "proxySourceKey": "Chiave",
    "proxyConfiguredBySource": "Proxy ({source}): {host}",
    "autoPriority": "Automatico: {priority}",
    "proxy": "Procura",
    "retestAuthentication": "Ritestare l'autenticazione",
    "retest": "Ripetere il test",
    "disableConnection": "Disabilita connessione",
    "enableConnection": "Abilita connessione",
    "reauthenticateConnection": "Autenticare nuovamente questa connessione",
    "proxyConfig": "Configurazione proxy",
    "aliasExistsAlert": "L'alias \"{alias}\" esiste già. Utilizza un modello diverso o modifica l'alias esistente.",
    "openRouterAnyModelHint": "OpenRouter supporta qualsiasi modello. Aggiungi modelli e crea alias per un accesso rapido.",
    "modelIdFromOpenRouter": "ID modello (da OpenRouter)",
    "openRouterModelPlaceholder": "antropico/claude-3-opus",
    "customModels": "Modelli personalizzati",
    "customModelsHint": "Aggiungi ID modello non presenti nell'elenco predefinito. Questi saranno disponibili per il routing.",
    "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
    "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
    "compatAdjustmentsTitle": "Compatibility",
    "compatButtonLabel": "Compatibility",
    "compatToolIdShort": "Tool ID 9",
    "compatDeveloperShort": "Developer role",
    "compatDoNotPreserveDeveloper": "Do not preserve developer role",
    "compatBadgeNoPreserve": "No preserve",
    "compatProtocolLabel": "Client request protocol",
    "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
    "compatProtocolOpenAI": "OpenAI Chat Completions",
    "compatProtocolOpenAIResponses": "OpenAI Responses API",
    "compatProtocolClaude": "Anthropic Messages",
    "compatUpstreamHeadersLabel": "Extra upstream headers",
    "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
    "compatUpstreamHeaderName": "Header name",
    "compatUpstreamHeaderValue": "Value",
    "compatUpstreamAddRow": "Add header",
    "compatUpstreamRemoveRow": "Remove row",
    "compatBadgeUpstreamHeaders": "Headers",
    "perModelQuotaLabel": "Per Model Quota Label",
    "perModelQuotaDescription": "Per Model Quota Description",
    "perModelQuotaToggle": "Attiva/disattiva quota per modello",
    "modelId": "ID modello",
    "customModelPlaceholder": "per esempio. gpt-4.5-turbo",
    "loading": "Caricamento...",
    "removeCustomModel": "Rimuovi il modello personalizzato",
    "noCustomModels": "Nessun modello personalizzato ancora aggiunto.",
    "allSuggestedAliasesExist": "Tutti gli alias suggeriti esistono già. Scegli un modello diverso o rimuovi gli alias in conflitto.",
    "failedSaveCustomModel": "Impossibile salvare il modello personalizzato",
    "modelAddedSuccess": "Il modello {modelId} è stato aggiunto correttamente",
    "failedAddModelTryAgain": "Impossibile aggiungere il modello. Per favore riprova.",
    "failedSaveImportedModel": "Impossibile salvare il modello importato nel database personalizzato",
    "failedImportModelsTryAgain": "Impossibile importare i modelli. Per favore riprova.",
    "failedRemoveModelFromDatabase": "Impossibile rimuovere il modello dal database",
    "modelRemovedSuccess": "Modello rimosso con successo",
    "failedDeleteModelTryAgain": "Impossibile eliminare il modello. Per favore riprova.",
    "compatibleModelsDescription": "Aggiungi manualmente modelli compatibili con {type} o importali dall'endpoint /models.",
    "anthropicCompatibleModelPlaceholder": "claude-3-opus-20240229",
    "openaiCompatibleModelPlaceholder": "gpt-4o",
    "apiKeyValidationFailed": "Convalida della chiave API non riuscita. Controlla la chiave e riprova.",
    "addProviderApiKeyTitle": "Aggiungi la chiave API {provider}",
    "checking": "Controllo...",
    "check": "Controllo",
    "valid": "Valido",
    "invalid": "Non valido",
    "creating": "Creazione...",
    "validationChecksAnthropicCompatible": "La convalida controlla {provider} verificando la chiave API.",
    "validationChecksOpenAiCompatible": "La convalida controlla {provider} tramite /models sull'URL di base.",
    "priorityLabel": "Priorità",
    "saving": "Risparmio...",
    "save": "Salva",
    "editConnection": "Modifica connessione",
    "accountName": "Nome utente",
    "email": "E-mail",
    "healthCheckMinutes": "Controllo dello stato (min)",
    "healthCheckHint": "Intervallo di aggiornamento del token proattivo. 0 = disabilitato.",
    "selectAllModels": "Select all",
    "deselectAllModels": "Deselect all",
    "modelsActiveCount": "{active}/{total} active",
    "noModelsMatch": "No models match \"{filter}\"",
    "groupLabel": "Environment",
    "groupPlaceholder": "e.g. eKaizen, Personal",
    "failedTestConnection": "Impossibile testare la connessione",
    "failed": "Fallito",
    "leaveBlankKeepCurrentApiKey": "Lascia vuoto per mantenere la chiave API corrente.",
    "editCompatibleTitle": "Modifica {type} Compatibile",
    "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
    "apiKeyForCheck": "Chiave API (per controllo)",
    "compatibleProdPlaceholder": "{type} Compatibile (prodotto)",
    "tokenRefreshed": "Token refreshed successfully",
    "tokenRefreshFailed": "Token refresh failed",
    "applyCodexAuthLocal": "Apply auth",
    "exportCodexAuthFile": "Export auth",
    "applyClaudeAuthLocal": "Applica autenticazione",
    "exportClaudeAuthFile": "Aut. esportazione",
    "importClaudeAuth": "Importa autenticazione",
    "claudeApplyModalTitle": "Applicare al codice Claude locale",
    "claudeApplyTargetLabel": "Percorso di destinazione",
    "claudeApplyBackupLabel": "Backup",
    "claudeApplyMcpHint": "Lo stato OAuth MCP esistente verrà preservato.",
    "claudeApplyWarning": "Questo sostituirà la sezione claudeAiOauth esistente. Continuare?",
    "claudeApplyConfirmCheckbox": "Confermo di voler sostituire la sezione claudeAiOauth esistente",
    "claudeApply": "Fare domanda a",
    "claudeAuthAppliedLocal": "Claude auth ha applicato localmente",
    "claudeAuthApplyFailed": "Impossibile applicare l'autenticazione Claude localmente",
    "claudeAuthExported": "File di autenticazione di Claude esportato",
    "claudeAuthExportFailed": "Impossibile esportare il file di autenticazione di Claude",
    "claudeImportModalTitle": "Importa Claude Auth",
    "claudeImportTabSingle": "Separare",
    "claudeImportTabBulk": "Massa",
    "claudeImportTabUpload": "Carica file",
    "claudeImportTabPaste": "Incolla JSON",
    "claudeImportFileLabel": "Scegli .credentials.json",
    "claudeImportPasteLabel": "Incolla il contenuto JSON",
    "claudeImportEmailLabel": "E-mail dell'account",
    "claudeImportNameLabel": "Nome della connessione (facoltativo)",
    "claudeImportOverwriteLabel": "Sostituisci la connessione esistente se l'account esiste già",
    "claudeImportSubmit": "Importare",
    "claudeImportSuccess": "Connessione Claude importata correttamente",
    "claudeImportInvalidJson": "Impossibile analizzare il file come JSON",
    "claudeImportInvalidShape": "Il file non è un .credentials.json valido",
    "claudeImportDuplicate": "L'account esiste già: attiva \"Sostituisci esistente\" per sovrascriverlo",
    "claudeImportIdentityUnverified": "Bootstrap non è riuscito a verificare l'account. Abilita \"Sostituisci esistente\" o fornisci un'e-mail.",
    "claudeImportFailed": "Impossibile importare l'autenticazione Claude",
    "claudeImportBulkModeUpload": "Carica file",
    "claudeImportBulkModePaste": "Incolla l'array JSON",
    "claudeImportBulkModeZip": "Carica CAP",
    "claudeImportBulkUploadHint": "Rilascia o raccogli fino a 50 file .credentials.json (256 KB ciascuno, 10 MB in totale).",
    "claudeImportBulkPasteHint": "Incolla una serie di oggetti: [{ json, name?, email? }, ...]",
    "claudeImportBulkZipHint": "ZIP contenente voci .json. Max 50 voci, 10 MB scompattati.",
    "claudeImportBulkSubmit": "Importa tutto",
    "claudeImportBulkSuccess": "Connessioni {count} Claude importate",
    "claudeImportBulkFailed": "Impossibile importare alcune voci",
    "claudeImportBulkZipExtracting": "Estrazione ZIP…",
    "claudeImportBulkZipError": "Impossibile estrarre ZIP",
    "applyGeminiAuthLocal": "Applica autenticazione",
    "exportGeminiAuthFile": "Aut. esportazione",
    "importGeminiAuth": "Importa autenticazione",
    "geminiApplyModalTitle": "Applicare alla CLI Gemini locale",
    "geminiApplyTargetLabel": "Percorso di destinazione",
    "geminiApplyBackupLabel": "Backup",
    "geminiApplyAccountsHint": "L'account attivo google_accounts.json verrà aggiornato in modo che corrisponda a questa connessione.",
    "geminiApplyWarning": "Questo sostituirà l'oauth_creds.json esistente e aggiornerà google_accounts.json. Continuare?",
    "geminiApplyConfirmCheckbox": "Confermo di voler sostituire l'oauth_creds.json esistente",
    "geminiApply": "Fare domanda a",
    "geminiAuthAppliedLocal": "Autenticazione Gemini applicata localmente",
    "geminiAuthApplyFailed": "Impossibile applicare l'autenticazione Gemini localmente",
    "geminiAuthExported": "File di autenticazione Gemini esportato",
    "geminiAuthExportFailed": "Impossibile esportare il file di autenticazione Gemini",
    "geminiImportModalTitle": "Importa autenticazione Gemini",
    "geminiImportTabSingle": "Separare",
    "geminiImportTabBulk": "Massa",
    "geminiImportTabUpload": "Carica file",
    "geminiImportTabPaste": "Incolla JSON",
    "geminiImportFileLabel": "Scegli oauth_creds.json",
    "geminiImportPasteLabel": "Incolla il contenuto JSON",
    "geminiImportEmailLabel": "E-mail dell'account",
    "geminiImportNameLabel": "Nome della connessione (facoltativo)",
    "geminiImportOverwriteLabel": "Sostituisci la connessione esistente se l'account esiste già",
    "geminiImportSubmit": "Importare",
    "geminiImportSuccess": "Connessione Gemini importata correttamente",
    "geminiImportInvalidJson": "Impossibile analizzare il file come JSON",
    "geminiImportInvalidShape": "Il file non è un oauth_creds.json valido",
    "geminiImportDuplicate": "L'account esiste già: attiva \"Sostituisci esistente\" per sovrascriverlo",
    "geminiImportIdentityUnverified": "Impossibile verificare l'identità da id_token. Abilita \"Sostituisci esistente\" o fornisci un'e-mail.",
    "geminiImportFailed": "Impossibile importare l'autenticazione Gemini",
    "geminiImportBulkModeUpload": "Carica file",
    "geminiImportBulkModePaste": "Incolla l'array JSON",
    "geminiImportBulkModeZip": "Carica CAP",
    "geminiImportBulkUploadHint": "Rilascia o raccogli fino a 50 file oauth_creds.json (256 KB ciascuno, 10 MB in totale).",
    "geminiImportBulkPasteHint": "Incolla una serie di oggetti: [{ json, name?, email? }, ...]",
    "geminiImportBulkZipHint": "ZIP contenente le voci oauth_creds.json. Max 50 voci, 10 MB scompattati.",
    "geminiImportBulkSubmit": "Importa tutto",
    "geminiImportBulkSuccess": "Connessioni Gemini importate {count}",
    "geminiImportBulkFailed": "Impossibile importare alcune voci",
    "geminiImportBulkZipExtracting": "Estrazione ZIP…",
    "geminiImportBulkZipError": "Impossibile estrarre ZIP",
    "codexAuthAppliedLocal": "Codex auth.json applied locally",
    "codexAuthApplyFailed": "Failed to apply Codex auth.json locally",
    "codexAuthExported": "Codex auth.json exported",
    "codexAuthExportFailed": "Failed to export Codex auth.json",
    "importCodexAuth": "Importa autenticazione",
    "codexImportModalTitle": "Aut. codice importazione",
    "codexImportTabSingle": "Separare",
    "codexImportTabBulk": "Massa",
    "codexImportTabUpload": "Carica file",
    "codexImportTabPaste": "Incolla JSON",
    "codexImportFileLabel": "Scegli auth.json",
    "codexImportFileHint": "Seleziona il file auth.json esportato da Codex o da OmniRoute.",
    "codexImportPasteLabel": "Incolla il contenuto JSON",
    "codexImportEmailLabel": "E-mail dell'account",
    "codexImportEmailHint": "Rilevato automaticamente dal file; modificare se necessario.",
    "codexImportNameLabel": "Nome della connessione (facoltativo)",
    "codexImportOverwriteLabel": "Sostituisci la connessione esistente se l'account esiste già",
    "codexImportSubmit": "Importare",
    "codexImportSuccess": "Connessione al codice importata correttamente",
    "codexImportInvalidJson": "Impossibile analizzare il file come JSON",
    "codexImportInvalidShape": "Il file non è un Codex auth.json valido",
    "codexImportDuplicate": "L'account esiste già: attiva \"Sostituisci esistente\" per sovrascriverlo",
    "codexImportFailed": "Impossibile importare l'autenticazione del Codex",
    "codexImportDetectedEmail": "Rilevato: {email}",
    "codexImportNoEmailDetected": "Nessuna email rilevata nel file",
    "codexImportBulkModeUpload": "Carica file",
    "codexImportBulkModePaste": "Incolla elenco",
    "codexImportBulkModeZip": "Archivio ZIP",
    "codexImportBulkUploadHint": "Seleziona più file .json o trascina e rilascia",
    "codexImportBulkPasteHint": "Array JSON [ {...}, {...} ] o più JSON separati da --- sulla propria riga",
    "codexImportBulkZipHint": "Carica un file .zip contenente file auth.json (max 50 file, 10 MB)",
    "codexImportBulkSubmit": "Importa account {count}",
    "codexImportBulkLimit": "Massimo 50 file per importazione",
    "codexImportBulkSuccess": "{count} importato",
    "codexImportBulkFailed": "{count} non riuscito",
    "codexImportBulkZipExtracting": "Estrazione ZIP…",
    "codexImportBulkZipError": "Impossibile estrarre ZIP",
    "advancedSettings": "Advanced Settings",
    "chatPathLabel": "Chat Endpoint Path",
    "chatPathPlaceholder": "/chat/completions",
    "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
    "modelsPathLabel": "Models Endpoint Path",
    "modelsPathPlaceholder": "/models",
    "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
    "statusDeactivated": "Deactivated (Manual)",
    "statusBanned": "Banned / Sandbox Violation",
    "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
    "showEmails": "Show all emails",
    "hideEmails": "Hide all emails",
    "a": "A",
    "accountConcurrencyCapHint": "Account Concurrency Cap Hint",
    "accountConcurrencyCapLabel": "Account Concurrency Cap Label",
    "accountIdHint": "Account Id Hint",
    "accountIdLabel": "Account Id Label",
    "accountIdPlaceholder": "Account Id Placeholder",
    "addAnotherApiKey": "Add another API key or paste multiple keys",
    "addCcCompatible": "Add Cc Compatible",
    "aggregatorsGateways": "Aggregators Gateways",
    "enterpriseCloud": "Impresa e 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": "Provider di agenti cloud",
    "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": "Apri t3.chat → DevTools → Applicazione → Archiviazione locale → https://t3.chat, copia 'convex-session-id'. Quindi apri DevTools → Rete, copia l'intestazione completa del cookie da qualsiasi richiesta di chat. Incolla entrambi i valori nei campi sottostanti.",
    "t3ChatWebCookiePlaceholder": "convex-session-id=abc123...",
    "blockClaudeExtraUsageDescription": "Block Claude Extra Usage Description",
    "blockClaudeExtraUsageLabel": "Block Claude Extra Usage Label",
    "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
    "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
    "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
    "ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
    "ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
    "ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
    "ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
    "ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
    "ccCompatibleDetailsTitle": "Cc Compatible Details Title",
    "ccCompatibleLabel": "Cc Compatible Label",
    "ccCompatibleModelsDescription": "Cc Compatible Models Description",
    "ccCompatibleNameHint": "Cc Compatible Name Hint",
    "ccCompatibleNamePlaceholder": "Cc Compatible Name Placeholder",
    "ccCompatiblePrefixHint": "Cc Compatible Prefix Hint",
    "ccCompatiblePrefixPlaceholder": "Cc Compatible Prefix Placeholder",
    "ccCompatibleValidationHint": "Cc Compatible Validation Hint",
    "claudeExtraUsageShort": "Claude Extra Usage Short",
    "claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
    "codex5hToggleTitle": "Codex5H Toggle Title",
    "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
    "codexFastServiceTierLabel": "Codex fast service tier",
    "codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
    "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
    "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
    "compatible": "Compatible",
    "configuredCount": "Configured Count",
    "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
    "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
    "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
    "cpaModeDisabledTitle": "Cpa Mode Disabled Title",
    "cpaModeEnabledTitle": "Cpa Mode Enabled Title",
    "customUserAgentHint": "Custom User Agent Hint",
    "customUserAgentLabel": "Custom User Agent Label",
    "databricksBaseUrlHint": "Databricks Base Url Hint",
    "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
    "defaultThinkingStrengthLabel": "Default thinking strength",
    "deleteAllExtraApiKeys": "Delete all",
    "excludedModelsHint": "Excluded Models Hint",
    "excludedModelsLabel": "Excluded Models Label",
    "excludedModelsPlaceholder": "Excluded Models Placeholder",
    "expirationBannerExpired": "Expiration Banner Expired",
    "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
    "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
    "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
    "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
    "extraApiKeysHint": "Extra Api Keys Hint",
    "extraApiKeysLabel": "Extra Api Keys Label",
    "apiKeyHealthLabel": "API Key Health",
    "apiKeyStatusActive": "Active",
    "apiKeyStatusWarning": "Warning ({count} failures)",
    "apiKeyStatusInvalid": "Invalid",
    "primaryKey": "Primary Key",
    "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
    "apiKeyInvalidAlertTitle": "API Key Health Alert",
    "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
    "apiKeyWarningAlertTitle": "API Key Warning",
    "googlePseInfo": "Google Pse Info",
    "geminiCliProjectIdHint": "Il tuo ID progetto Google Cloud. Obbligatorio per gli account con eccezioni. Inserisci il tuo ID progetto GCP da utilizzare con la CLI Gemini.",
    "geminiCliProjectIdLabel": "ID del progetto Google Cloud",
    "geminiCliProjectIdPlaceholder": "my-gcp-project-id",
    "antigravityProjectIdHint": "Override facoltativo per le richieste di Antigravity Cloud Code. Lascia vuoto per utilizzare il progetto scoperto durante Google OAuth.",
    "antigravityClientProfileLabel": "__MISSING__:Client profile",
    "antigravityClientProfileHint": "__MISSING__:Choose which Antigravity client identity OmniRoute presents to the API.",
    "antigravityClientProfileIde": "__MISSING__:IDE",
    "antigravityClientProfileHarness": "__MISSING__:Harness / CLI",
    "codexFastTierActiveChip": "__MISSING__:Codex Fast tier is active",
    "tierFast": "__MISSING__:Fast",
    "antigravityProjectIdLabel": "ID del progetto Google Cloud",
    "antigravityProjectIdPlaceholder": "my-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": "Generazione video",
    "embeddingRerankProviders": "Incorporamenti e riclassificazione",
    "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": "Cerca fornitori...",
    "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": "Provider del livello gratuito",
    "freeTierLabel": "Livello gratuito disponibile",
    "freeTierProvidersDesc": "Fornitori con livelli gratuiti: alcuni richiedono la registrazione con una chiave API, altri non necessitano di alcuna credenziale.",
    "providerSummaryAll": "Totale",
    "ideProviders": "Fornitori IDE",
    "ideProvidersDesc": "Editor con abbonamento AI integrato. Utilizza la pagina del provider per importare le credenziali direttamente dal portachiavi IDE.",
    "noIdeProviders": "Nessun provider IDE corrisponde ai filtri attuali.",
    "providerDetailFastTierTooltip": "Applica il livello Codex Fast a tutte le connessioni Codex per impostazione predefinita",
    "providerDetailFastDefaultLabel": "Impostazione predefinita rapida",
    "providerDetailBrowserManualConnect": "Connessione browser/manuale",
    "providerDetailAuthUrl": "URL di autenticazione",
    "providerDetailCallbackUrl": "URL di richiamata",
    "providerDetailValidClaudeCredentialsFile": "File delle credenziali di Claude valido",
    "providerDetailPathAutoDetectedAllOs": "Il percorso viene rilevato automaticamente in base al sistema operativo (Linux/Mac/Windows).",
    "providerDetailMyClaudeAccountPlaceholder": "Il mio account Claude",
    "providerDetailPathAutoDetected": "Il percorso viene rilevato automaticamente in base al sistema operativo (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": "Questi provider utilizzano sessioni Web del browser, cookie o token Web anziché chiavi API. Apri un provider per aggiungere le credenziali di sessione richieste.",
    "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": "Procedura guidata di onboarding del fornitore",
    "onboardingWizardShort": "Procedura guidata di onboarding",
    "onboardingWizardDescription": "Connetti provider di chiavi API, compatibilità personalizzata e OAuth con convalida, persistenza e test di connessione immediato.",
    "onboardingStepType": "Tipo",
    "onboardingStepProvider": "Fornitore",
    "onboardingStepCredentials": "Credenziali",
    "onboardingStepResult": "Risultato",
    "onboardingTypeApiKeyTitle": "Fornitore di chiavi API",
    "onboardingTypeApiKeyText": "Utilizza provider integrati come OpenAI, Anthropic, Gemini, Groq, Azure e altri.",
    "onboardingTypeCustomTitle": "Fornitore compatibile personalizzato",
    "onboardingTypeCustomText": "Crea un endpoint compatibile con OpenAI, Anthropic o Claude Code e aggiungi la relativa chiave.",
    "onboardingTypeOAuthTitle": "Fornitore OAuth",
    "onboardingTypeOAuthText": "Riutilizza i flussi OAuth, codice dispositivo o importazione locale esistenti per i provider di codifica.",
    "onboardingChooseOAuthProvider": "Scegli un provider OAuth",
    "onboardingChooseApiKeyProvider": "Scegli un fornitore di chiavi API",
    "onboardingChooseProviderDescription": "Seleziona un fornitore, quindi la procedura guidata ti guiderà attraverso le credenziali e i test.",
    "onboardingChangeType": "Cambia tipo",
    "onboardingChangeProvider": "Cambia fornitore",
    "onboardingSearchProviders": "Cerca provider…",
    "onboardingApiKeyOptional": "Chiave API facoltativa",
    "onboardingProviderConnected": "Fornitore connesso",
    "onboardingProviderSavedWithWarnings": "Fornitore salvato con avvisi",
    "onboardingProviderFinished": "Onboarding del fornitore terminato",
    "onboardingYourProviderConnection": "La tua connessione al provider",
    "onboardingTestPassed": "Prova superata",
    "onboardingTestFailed": "Prova fallita",
    "onboardingOpenProviderDetails": "Apri i dettagli del fornitore",
    "onboardingTryInPlayground": "Prova nel parco giochi",
    "onboardingDefaultConnectionName": "{provider} Primario",
    "onboardingTestingConnection": "Test della connessione al provider…",
    "onboardingValidatingCredentials": "Convalida delle credenziali…",
    "onboardingSavingConnection": "Salvataggio della connessione al provider…",
    "onboardingProviderFailed": "L'onboarding del fornitore non è riuscito",
    "onboardingCreatingCompatibleProvider": "Creazione del provider compatibile…",
    "onboardingSavingCompatibleConnection": "Salvataggio della connessione al provider compatibile…",
    "onboardingCustomProviderFallbackName": "Fornitore personalizzato",
    "onboardingCustomProviderFailed": "L'onboarding del fornitore personalizzato non è riuscito",
    "onboardingLoadingOAuthConnection": "Caricamento connessione OAuth…",
    "onboardingOAuthNoConnectionFound": "OAuth terminato, ma non è stata trovata alcuna connessione al provider.",
    "onboardingOAuthFailed": "L'onboarding OAuth non è riuscito",
    "onboardingAddProvider": "Aggiungi {provider}",
    "onboardingConnectionName": "Nome della connessione",
    "onboardingApiKeyOptionalLabel": "Chiave API (facoltativa)",
    "onboardingBaseUrlOverride": "Sostituzione dell'URL di base",
    "onboardingBaseUrlOverrideHint": "Opzionale. Memorizzato come providerSpecificData.baseUrl.",
    "onboardingRegion": "Regione",
    "onboardingSearchCx": "Cerca CX/ID motore",
    "onboardingProviderSpecificIdPlaceholder": "ID specifico del provider facoltativo",
    "onboardingCustomUserAgent": "Agente utente personalizzato",
    "onboardingWorking": "Lavorando…",
    "onboardingValidateSaveTest": "Convalida, salva e testa",
    "onboardingBack": "Indietro",
    "onboardingCreateCustomCompatibleProvider": "Crea un provider compatibile personalizzato",
    "onboardingCreateCustomCompatibleDescription": "La procedura guidata crea prima un nodo provider, quindi archivia e verifica la connessione della chiave API.",
    "onboardingProtocol": "Protocollo",
    "onboardingOpenAiCompatible": "Compatibile con OpenAI",
    "onboardingAnthropicCompatible": "Compatibile con l'ambiente antropico",
    "onboardingClaudeCodeCompatible": "Compatibile con il codice Claude",
    "onboardingProviderPrefix": "Prefisso del fornitore",
    "onboardingProviderPrefixHint": "Utilizzato per generare l'ID del provider gestito.",
    "onboardingChatPath": "Percorso della chat",
    "onboardingModelsPath": "Percorso dei modelli",
    "onboardingCreateSaveTest": "Crea, salva e prova",
    "onboardingConnectProvider": "Connetti {provider}",
    "onboardingOAuthFlowDescription": "OmniRoute aprirà il flusso OAuth esistente per questo provider. Dopo l'accesso, la procedura guidata ricarica la connessione salvata ed esegue lo stesso test di connessione della pagina del provider.",
    "onboardingStartOAuthFlow": "Avvia il flusso OAuth",
    "passthroughModelsDescription": "{provider} accetta ID modello nativi del provider. Importa da /modelli o aggiungi ID personalizzati per il routing.",
    "bedrockModelsDescription": "I modelli Amazon Bedrock hanno come ambito la regione AWS. Importa da /models o aggiungi gli ID modello Bedrock abilitati nella regione selezionata.",
    "bedrockModelPlaceholder": "antropico.claude-sonetto-4-6",
    "addProviderSessionCookieTitle": "Aggiungi {provider} cookie di sessione",
    "addProviderWebTokenTitle": "Aggiungi {provider} token web",
    "addProviderConnectionTitle": "Aggiungi la connessione {provider}",
    "webTokenCredentialLabel": "Token di sessione Web",
    "webNoAuthCredentialLabel": "Nessuna credenziale richiesta",
    "webCookieCredentialHint": "Cookie richiesto: {credential}. Incolla il valore dell'intestazione del cookie dalla sessione web {provider} a cui hai effettuato l'accesso. Non includere il prefisso Cookie:.",
    "webTokenCredentialHint": "Credenziale: {credential}. Incolla il valore del token dalla sessione web {provider} a cui hai effettuato l'accesso o da un'esportazione HAR di DevTools se il provider lo supporta.",
    "webCookieEditHint": "Lascia vuoto per mantenere il cookie della sessione corrente. Cookie richiesto: {credential}.",
    "webTokenEditHint": "Lascia vuoto per mantenere il token della sessione web corrente. Credenziale: {credential}.",
    "webSessionGuideTitle": "Come ottenere le credenziali di sessione",
    "webSessionGuideIntro": "{provider} utilizza una sessione Web del browser anziché una chiave API.",
    "webCookieRequiredCredential": "Cookie richiesto: {credential}",
    "webTokenRequiredCredential": "Token richiesto: {credential}",
    "webSessionGuideStep1": "Accedi a {provider} nel tuo browser.",
    "webSessionGuideStep2": "Apri gli strumenti per sviluppatori del browser ed esamina una richiesta effettuata dall'app Web.",
    "webSessionGuideStep3": "Copia le credenziali richieste dal dominio del provider. Per i cookie, copiare solo il valore dell'intestazione Cookie e omettere Cookie:.",
    "webSessionGuideStep4": "Incollalo qui e controlla la connessione. Se smette di funzionare, accedi nuovamente e sostituiscilo con un nuovo valore.",
    "webSessionSecurityHint": "Trattala come una password: può accedere al tuo account web a cui hai effettuato l'accesso fino alla scadenza o alla revoca.",
    "webNoAuthGuideTitle": "Nessuna credenziale richiesta",
    "webNoAuthGuideBody": "{provider} non necessita di una chiave API o di un cookie. Salva la connessione per utilizzare il suo endpoint web gratuito.",
    "webSessionCredentialValidationFailed": "Convalida delle credenziali della sessione non riuscita. Accedi di nuovo, copia una nuova credenziale e riprova.",
    "checkCookie": "Controlla il biscotto",
    "checkWebToken": "Controlla il gettone"
  },
  "settings": {
    "title": "Impostazioni",
    "general": "Generale",
    "security": "Sicurezza",
    "appearance": "Aspetto",
    "routing": "Instradamento",
    "cache": "Cache",
    "resilience": "Resilienza",
    "routingSettingsIntro": "Controlla il modo in cui le tue richieste vengono instradate, trasformate e inviate ai fornitori di intelligenza artificiale.",
    "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": "Nuovo tentativo, cooldown e fallback automatici quando i provider falliscono.",
    "aiSettingsIntro": "Impostazioni specifiche dell'intelligenza artificiale per pensare al budget, al comportamento del modello e alla compressione.",
    "systemPrompt": "Richiesta di sistema",
    "thinkingBudget": "Pensare al bilancio",
    "proxy": "Procura",
    "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": "Procura MITM",
    "pricing": "Prezzi",
    "storage": "Magazzinaggio",
    "policies": "Politiche",
    "ipFilter": "Filtro IP",
    "comboDefaults": "Impostazioni predefinite combinate",
    "fallbackChains": "Catene di ripiego",
    "changePassword": "Cambiare la password",
    "enablePassword": "Abilita password",
    "darkMode": "Modalità oscura",
    "lightMode": "Modalità luce",
    "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": "proprio adesso",
    "modelsDevStats": "Sync Statistics",
    "modelsDevStatsDesc": "Current models.dev data coverage",
    "providers": "Fornitori",
    "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": "Tema del sistema",
    "debugToggle": "Enable Debug Mode",
    "sidebarVisibilityToggle": "Show Sidebar Items",
    "enableCache": "Abilita cache",
    "cacheTTL": "TTL della cache",
    "maxCacheSize": "Dimensione massima della cache",
    "clearCache": "Cancella cache",
    "cacheCleared": "Cache cleared successfully",
    "clearCacheFailed": "Failed to clear cache",
    "cacheHits": "Riscontri nella cache",
    "cacheMisses": "Mancati cache",
    "hitRate": "Tasso di successo",
    "cacheEntries": "Voci della cache",
    "cacheSettings": "Cache Settings",
    "semanticCache": "Semantic Cache",
    "maxEntries": "Max Entries",
    "ttlMinutes": "TTL (minutes)",
    "promptCache": "Cache dei suggerimenti",
    "strategy": "Strategy",
    "preserveClientCache": "Preserve Client Cache",
    "enabled": "Enabled",
    "loading": "Loading...",
    "saving": "Risparmio...",
    "save": "Save",
    "circuitBreaker": "Interruttore automatico",
    "retryPolicy": "Riprova la policy",
    "maxRetries": "Numero massimo di tentativi",
    "retryDelay": "Ritardo riprova",
    "timeoutMs": "Timeout (ms)",
    "enableSystemPrompt": "Abilita richiesta di sistema",
    "systemPromptText": "Testo della richiesta di sistema",
    "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": "Questa pagina configura solo il comportamento. Lo stato dell'interruttore live viene visualizzato nella pagina Salute. I tentativi specifici della combo e il controllo degli slot round-robin rimangono nelle impostazioni della combo.",
    "enableThinking": "Abilita il pensiero",
    "maxThinkingTokens": "Gettoni pensiero massimo",
    "enableProxy": "Abilita proxy",
    "proxyUrl": "URL proxy",
    "pricingRates": "Formato delle tariffe dei prezzi",
    "currentPricing": "Panoramica dei prezzi attuali",
    "loadingPricing": "Caricamento dati sui prezzi...",
    "noPricing": "Nessun dato sui prezzi disponibile",
    "input": "Ingresso",
    "output": "Produzione",
    "cached": "Memorizzato nella cache",
    "reasoning": "Ragionamento",
    "cacheCreation": "Creazione della cache",
    "customPricing": "Prezzi personalizzati",
    "databaseSize": "Dimensioni del database",
    "backupDb": "Backup della banca dati",
    "restoreDb": "Ripristina database",
    "exportData": "Esporta dati",
    "importData": "Importa dati",
    "clearData": "Cancella tutti i dati",
    "clearDataConfirm": "Ciò eliminerà definitivamente tutti i dati. Sei sicuro?",
    "enableRequestLogs": "Abilita i registri delle richieste",
    "logRetention": "Conservazione del registro",
    "ipWhitelist": "Lista bianca IP",
    "ipBlacklist": "Lista nera IP",
    "addIP": "Aggiungi IP",
    "savedSuccessfully": "Impostazioni salvate con successo",
    "ai": "AI",
    "advanced": "Avanzato",
    "localMode": "Modalità locale: tutti i dati archiviati sul computer",
    "settingsSectionsAria": "Sezioni Impostazioni",
    "switchThemes": "Passa dal tema chiaro a quello scuro e viceversa",
    "themeSelectionAria": "Selezione del tema",
    "themeLight": "Leggero",
    "themeDark": "Buio",
    "themeSystem": "Sistema",
    "endpointTunnelVisibility": "Visibilità del tunnel dell'endpoint",
    "endpointTunnelVisibilityDesc": "Nascondi i controlli del tunnel dalla pagina Endpoint senza modificare lo stato del tunnel.",
    "showCloudflareTunnel": "Tunnel rapido di Cloudflare",
    "showCloudflareTunnelDesc": "Mostra i controlli Cloudflare Quick Tunnel nella pagina Endpoint.",
    "showTailscaleFunnel": "Imbuto a scala di coda",
    "showTailscaleFunnelDesc": "Mostra i controlli della canalizzazione Tailscale nella pagina Endpoint.",
    "showNgrokTunnel": "Ngrok Tunnel",
    "showNgrokTunnelDesc": "Mostra i controlli del tunnel ngrok nella pagina Endpoint.",
    "sidebarVisibility": "Hide sidebar items",
    "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
    "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
    "hideHealthLogs": "Nascondi i registri di controllo dello stato",
    "hideHealthLogsDesc": "Quando è attivo, elimina i messaggi [HealthCheck] nella console del server",
    "themeAccent": "Colore del tema",
    "themeAccentDesc": "Scegli un colore predefinito o crea il tuo tema con un solo colore",
    "themeCreate": "Crea tema",
    "themeCustom": "Tema personalizzato",
    "themeBlue": "Blu",
    "themeRed": "Rosso",
    "themeGreen": "Verde",
    "themeViolet": "Viola",
    "themeOrange": "Arancione",
    "themeCyan": "Ciano",
    "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": "Svuota cache",
    "flushing": "Lavaggio…",
    "size": "Misurare",
    "hits": "Colpi",
    "evictions": "Sfratti",
    "loadingCacheStats": "Caricamento delle statistiche della cache…",
    "globalProxy": "Procura globale",
    "globalProxyDesc": "Configura un proxy in uscita globale per tutte le chiamate API. Singoli provider, combinazioni e chiavi possono sovrascrivere questo aspetto.",
    "noGlobalProxy": "Nessun proxy globale configurato",
    "globalLabel": "Globale",
    "configure": "Configura",
    "globalSystemPrompt": "Prompt del sistema globale",
    "saved": "Salvato",
    "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} caratteri",
    "thinkingBudgetTitle": "Pensare al bilancio",
    "thinkingBudgetDesc": "Controlla l'utilizzo dei token di ragionamento dell'intelligenza artificiale in tutte le richieste",
    "passthrough": "Passante",
    "passthroughDesc": "Nessun cambiamento: il cliente controlla il budget",
    "auto": "Auto",
    "autoDesc": "Elimina ogni configurazione pensante: lascia decidere al provider",
    "custom": "Costume",
    "customDesc": "Imposta un budget token fisso per tutte le richieste",
    "adaptive": "Adattivo",
    "adaptiveDesc": "Ridimensiona il budget in base alla complessità della richiesta",
    "effortNone": "Nessuno (0 token)",
    "effortLow": "Basso (token da 1.000)",
    "effortMedium": "Medio (token da 10.000)",
    "effortHigh": "Alto (token 128K)",
    "tokenBudget": "Bilancio simbolico",
    "tokens": "gettoni",
    "baseEffortLevel": "Livello di impegno base",
    "adaptiveHint": "La modalità adattiva si adatta a questo livello di base in base al conteggio dei messaggi, all'utilizzo dello strumento e alla lunghezza dei prompt.",
    "requireLogin": "Richiedi l'accesso",
    "requireLoginDesc": "Quando è attivo, il dashboard richiede la password. Quando OFF, accedi senza login.",
    "currentPassword": "password attuale",
    "enterCurrentPassword": "Inserisci la password attuale",
    "newPassword": "Nuova parola d'ordine",
    "enterNewPassword": "Inserisci la nuova password",
    "confirmPassword": "Conferma nuova password",
    "confirmPasswordPlaceholder": "Conferma la nuova password",
    "passwordsNoMatch": "Le password non corrispondono",
    "passwordUpdated": "Password aggiornata con successo",
    "failedUpdatePassword": "Impossibile aggiornare la password",
    "errorOccurred": "Si è verificato un errore",
    "updatePassword": "Aggiorna password",
    "setPassword": "Imposta password",
    "apiEndpointProtection": "Protezione endpoint API",
    "requireAuthModels": "Richiedi la chiave API per /models",
    "requireAuthModelsDesc": "Quando è attivo, l'endpoint /v1/models restituisce 404 per le richieste non autenticate. Impedisce il rilevamento del modello da parte di utenti non autorizzati.",
    "authModelHeading": "Modello autorizzativo attivo",
    "authModelClient": "Gli endpoint API client (/v1/*, /chat/*, /responses/*, /codex/*, /messages/*) richiedono una chiave API Bearer.",
    "authModelManagement": "Gli endpoint di gestione (/dashboard, /api/*) richiedono una sessione del dashboard o credenziali di gestione.",
    "authModelPublic": "Solo i percorsi di accesso, integrità e bootstrap sono pubblici.",
    "bruteForceProtection": "Accedi con protezione dalla forza bruta",
    "bruteForceProtectionDesc": "Limita e blocca /api/auth/login dopo ripetuti errori dallo stesso IP.",
    "corsAllowedOrigins": "Origini consentite CORS",
    "corsAllowedOriginsDesc": "Elenco separato da virgole delle origini dei browser autorizzati a chiamare questo server. Elenco vuoto = nessun accesso CORS al browser (il collegamento da server a server funziona ancora). Utilizzare CORS_ALLOW_ALL=true env var solo per lo sviluppo.",
    "blockedProviders": "Provider bloccati",
    "blockedProvidersDesc": "Nascondi provider specifici dalla risposta /v1/models. I fornitori bloccati non verranno visualizzati negli elenchi dei modelli.",
    "providersBlocked": "{count} provider bloccati da /models",
    "blockProviderTitle": "Blocca {provider}",
    "unblockProviderTitle": "Sblocca {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": "Pipeline di trasformazione a blocchi di sistema",
    "systemTransformsDesc": "Pipeline di trasformazioni ordinata per provider applicata al corpo della richiesta prima dell'inoltro. Supporta qualsiasi ID provider.",
    "systemTransformsAddProvider": "Aggiungi fornitore",
    "systemTransformsAddProviderPlaceholder": "Seleziona un fornitore...",
    "systemTransformsAddProviderAllConfigured": "Tutti i provider già configurati",
    "systemTransformsRemoveProvider": "Rimuovi fornitore",
    "systemTransformsNoProviders": "Nessun provider configurato. Aggiungi un fornitore per iniziare.",
    "systemTransformsOpMoveUp": "Vai su",
    "systemTransformsOpMoveDown": "Spostati giù",
    "systemTransformsOpDelete": "Elimina l'op",
    "routingStrategy": "Strategia di instradamento",
    "routingAdvancedGuideTitle": "Guida al percorso avanzata",
    "routingAdvancedGuideHint1": "Utilizza Fill First per una priorità prevedibile, Round Robin per l'equità e P2C per la resilienza alla latenza.",
    "routingAdvancedGuideHint2": "Se i fornitori variano in termini di qualità/costo, iniziare con Opzione costo per il lavoro in background e Meno utilizzato per un consumo equilibrato.",
    "fillFirst": "Riempi prima",
    "fillFirstDesc": "Utilizza gli account in ordine di priorità",
    "roundRobin": "Girotondo",
    "roundRobinDesc": "Scorri tutti gli account",
    "p2c": "P2C",
    "p2cDesc": "Scegline 2 a caso, usa quello più sano",
    "random": "Casuale",
    "randomDesc": "Account casuale per ogni richiesta",
    "leastUsed": "Meno usato",
    "leastUsedDesc": "Scegli l'account utilizzato meno di recente",
    "costOpt": "Opzione costo",
    "costOptDesc": "Preferisci il conto più economico disponibile",
    "resetAware": "RR consapevole del ripristino",
    "resetAwareDesc": "Preferisci account con una quota rimanente sana e reimpostazioni più vicine",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
    "stickyLimit": "Limite appiccicoso",
    "stickyLimitDesc": "Chiamate per account prima del cambio",
    "modelAliases": "Alias ​​del modello",
    "modelAliasesTitle": "Alias dei Modelli",
    "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
    "addCustomAlias": "Aggiungi Alias Personalizzato",
    "deprecatedModelId": "ID modello deprecato",
    "newModelId": "Nuovo ID modello",
    "customAliases": "Alias Personalizzati",
    "builtInAliases": "Alias Integrati",
    "backgroundDegradationTitle": "Degradazione Attività in Background",
    "backgroundDegradationDesc": "Rileva automaticamente le attività in background (titoli, riassunti) e reindirizza a modelli più economici",
    "enableDegradation": "Abilita Degradazione in Background",
    "enableDegradationHint": "Quando abilitato, le attività in background come generazione titoli e riassunti vengono reindirizzate automaticamente a modelli più economici",
    "tasksDetected": "Attività rilevate",
    "degradationMap": "Mappa di Degradazione dei Modelli",
    "premiumModel": "Modello premium",
    "cheapModel": "Modello economico",
    "detectionPatterns": "Pattern di Rilevamento",
    "newPattern": "es: \"genera un titolo\"",
    "aliasPatternPlaceholder": "claude-sonetto-*",
    "aliasTargetPlaceholder": "claude-sonetto-4-20250514",
    "pattern": "Modello",
    "targetModel": "Modello obiettivo",
    "add": "+ Aggiungi",
    "session": "Sessione",
    "sessionDetailsAria": "Dettagli della sessione",
    "status": "Stato",
    "authenticated": "Autenticato",
    "guest": "Ospite",
    "loginTime": "Orario di accesso",
    "sessionAge": "Età della sessione",
    "browser": "Navigatore",
    "clearLocalData": "Cancella dati locali",
    "logout": "Esci",
    "clearLocalDataConfirm": "Cancellare tutti i dati locali? Ciò ripristinerà le tue preferenze.",
    "unknown": "Sconosciuto",
    "systemActor": "sistema",
    "ipAccessControl": "Controllo dell'accesso IP",
    "ipAccessControlDesc": "Blocca o consenti indirizzi IP specifici",
    "ipModeDisabled": "Disabilitato",
    "ipModeBlacklist": "Lista nera",
    "ipModeWhitelist": "Lista bianca",
    "ipModeWhitelistPriority": "Priorità WL",
    "addIpAddress": "Aggiungi indirizzo IP",
    "ipAddressPlaceholder": "192.168.1.0/24 o 10.0.*.*",
    "block": "+ Blocca",
    "allow": "+ Consenti",
    "blocked": "Bloccato ({count})",
    "allowed": "Consentito ({count})",
    "temporaryBans": "Divieti temporanei ({count})",
    "minLeft": "{min}m rimasti",
    "auditLog": "Registro di controllo",
    "searchAuditLogs": "Cerca nei log di controllo...",
    "failedLoadAuditLog": "Impossibile caricare il registro di controllo",
    "noAuditEvents": "Nessun evento di controllo trovato",
    "action": "Azione",
    "actor": "Attore",
    "details": "Dettagli",
    "time": "Tempo",
    "fallbackChainsTitle": "Catene di ripiego",
    "fallbackChainsDesc": "Definire l'ordine di fallback del fornitore per modello",
    "addChain": "+ Aggiungi catena",
    "modelName": "Nome del modello",
    "modelNamePlaceholder": "claude-sonetto-4-20250514",
    "providersCommaSeparated": "Fornitori (separati da virgole, in ordine di priorità)",
    "providersCommaSeparatedPlaceholder": "antropico, openai, gemelli",
    "createChain": "Crea catena",
    "noFallbackChains": "Nessuna catena di fallback",
    "noFallbackChainsDesc": "Creare una catena per definire l'ordine di fallback del provider per un modello.",
    "loadingFallbackChains": "Caricamento catene di fallback...",
    "deleteChainConfirm": "Eliminare la catena di fallback per \"{model}\"?",
    "chainCreated": "Catena creata per {model}",
    "chainDeleted": "Catena eliminata per {model}",
    "failedCreateChain": "Impossibile creare la catena",
    "failedDeleteChain": "Impossibile eliminare la catena",
    "deleteChain": "Elimina catena",
    "fillModelAndProviders": "Inserisci il nome del modello e i fornitori",
    "addAtLeastOneProvider": "Aggiungi almeno un fornitore",
    "comboDefaultsTitle": "Impostazioni predefinite combinate",
    "comboDefaultsGuideTitle": "Come ottimizzare le impostazioni predefinite della combo",
    "comboDefaultsGuideHint1": "Mantenere bassi i tentativi nei flussi a bassa latenza; aumentare il timeout solo per attività di generazione prolungata.",
    "comboDefaultsGuideHint2": "Utilizzare le sostituzioni del provider quando un provider necessita di un comportamento di timeout/riprova diverso rispetto alle impostazioni predefinite globali.",
    "globalComboConfig": "Configurazione combinata globale",
    "defaultStrategy": "Strategia predefinita",
    "defaultStrategyDesc": "Applicato a nuove combo senza strategia esplicita",
    "comboStrategyAria": "Strategia combinata",
    "priority": "Priorità",
    "weighted": "Ponderato",
    "contextRelay": "Context Relay",
    "contextRelayDesc": "Hands off context between providers with automatic summarization",
    "maxRetriesLabel": "Numero massimo di tentativi",
    "retryDelayLabel": "Ritardo tentativi (ms)",
    "timeoutLabel": "Timeout (ms)",
    "healthCheck": "Controllo dello stato di salute",
    "healthCheckDesc": "Verifica preventiva la disponibilità del fornitore",
    "trackMetrics": "Tieni traccia delle metriche",
    "trackMetricsDesc": "Registra i parametri delle richieste per combo",
    "providerOverrides": "Il fornitore esegue l'override",
    "providerOverridesDesc": "Sostituisci timeout e tentativi per provider. Le impostazioni del provider sovrascrivono le impostazioni predefinite globali.",
    "providerMaxRetriesAria": "{provider} numero massimo di tentativi",
    "providerTimeoutAria": "{provider} timeout ms",
    "removeProviderOverrideAria": "Rimuovi la sostituzione {provider}",
    "newProviderNamePlaceholder": "per esempio. google, apri...",
    "newProviderNameAria": "Nuovo nome del fornitore",
    "retries": "riprova",
    "ms": "SM",
    "saveComboDefaults": "Salva impostazioni predefinite combo",
    "maxNestingDepth": "Profondità massima di nidificazione",
    "concurrencyPerModel": "Concorrenza/modello",
    "queueTimeout": "Timeout coda (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": "Profili dei fornitori",
    "providerProfilesDesc": "Impostazioni di resilienza separate per i provider OAuth (basati sulla sessione) e API Key (misurati). I fornitori di OAuth hanno soglie più rigide a causa di limiti di velocità inferiori.",
    "oauthProviders": "Provider OAuth",
    "apiKeyProviders": "Fornitori di chiavi API",
    "transientCooldown": "Recupero temporaneo",
    "rateLimitCooldown": "Recupero del limite di velocità",
    "maxBackoffLevel": "Livello massimo di backoff",
    "cbThreshold": "Soglia CB",
    "cbResetTime": "Tempo di ripristino dell'interruttore",
    "rateLimiting": "Limitazione della velocità",
    "rateLimitingDesc": "I fornitori di chiavi API sono automaticamente limitati in termini di velocità con impostazioni predefinite sicure. I limiti vengono appresi dalle intestazioni di risposta e si adattano nel tempo.",
    "defaultSafetyNet": "Rete di sicurezza predefinita",
    "rpm": "giri al minuto",
    "minGap": "Divario minimo",
    "maxConcurrent": "Massimo simultaneo",
    "activeLimiters": "Limitatori attivi",
    "noActiveLimiters": "Nessun limitatore di velocità attivo ancora.",
    "reservoir": "Serbatoio",
    "running": "Corsa",
    "queued": "In coda",
    "circuitBreakers": "Interruttori automatici",
    "breakerStateClosed": "Chiuso",
    "breakerStateOpen": "Aprire",
    "breakerStateHalfOpen": "Semiaperto",
    "tripped": "{count} è inciampato",
    "healthy": "{count} sano",
    "resetAll": "Reimposta tutto",
    "noCircuitBreakers": "Nessun interruttore ancora attivo. Vengono creati automaticamente quando le richieste passano attraverso la pipeline combinata.",
    "failures": "{count} errore/i",
    "policiesLocked": "Policy e identificatori bloccati",
    "allOperational": "Tutti i sistemi sono operativi: nessun blocco o interruttore scattato",
    "loadingPolicies": "Caricamento policy...",
    "lockedIdentifiers": "Identificatori bloccati",
    "unlockedIdentifier": "Sbloccato: {identifier}",
    "sinceDate": "dal {date}",
    "forceUnlock": "Sblocco forzato",
    "unlocking": "Sblocco...",
    "failedUnlock": "Impossibile sbloccare",
    "failedLoadWithStatus": "Impossibile caricare: {status}",
    "failedLoadResilience": "Impossibile caricare lo stato di resilienza",
    "saveFailed": "Salvataggio non riuscito",
    "resetFailed": "Reimpostazione non riuscita",
    "loadingResilience": "Caricamento dello stato di resilienza...",
    "retry": "Riprova",
    "systemStorage": "Sistema e archiviazione",
    "allDataLocal": "Tutti i dati archiviati localmente sul tuo computer",
    "databasePath": "Percorso del database",
    "exportDatabase": "Esporta banca dati",
    "exportAll": "Esporta tutto (.tar.gz)",
    "importDatabase": "Importa banca dati",
    "confirmDbImport": "Conferma l'importazione del database",
    "confirmDbImportDesc": "Questo sostituirà tutti i dati correnti con il contenuto di {file}. Un backup verrà creato automaticamente prima dell'importazione.",
    "yesImport": "Sì, importa",
    "lastBackup": "Ultimo backup",
    "noBackupYet": "Nessun backup ancora",
    "backupNow": "Esegui il backup ora",
    "backupRestore": "Backup e ripristino",
    "viewBackups": "Visualizza backup",
    "hide": "Nascondere",
    "backupRetentionDesc": "Gli snapshot del database vengono creati automaticamente prima del ripristino e ogni 15 minuti in caso di modifica dei dati. Conservazione: 24 ore su 24 + 30 backup giornalieri con rotazione intelligente.",
    "loadingBackups": "Caricamento dei backup...",
    "noBackupsYet": "Nessun backup ancora disponibile. I backup verranno creati automaticamente quando i dati cambiano.",
    "backupsAvailable": "{count} backup disponibili",
    "refresh": "Aggiorna",
    "confirm": "Confermare?",
    "yes": "SÌ",
    "no": "NO",
    "restore": "Ripristinare",
    "invalidFileType": "Tipo di file non valido. Sono accettati solo file .sqlite.",
    "exportFailed": "Esportazione non riuscita",
    "exportFailedWithError": "Esportazione non riuscita: {error}",
    "fullExportFailedWithError": "Esportazione completa non riuscita: {error}",
    "backupCreated": "Backup creato: {file}",
    "restoreSuccess": "Restaurato! Connessioni {connections}, nodi {nodes}, combo {combos}, chiavi API {apiKeys}.",
    "importSuccess": "Database importato! Connessioni {connections}, nodi {nodes}, combo {combos}, chiavi API {apiKeys}.",
    "minutesAgo": "{count}m fa",
    "hoursAgo": "{count}h fa",
    "daysAgo": "{count}d fa",
    "backupReasonManual": "manuale",
    "backupReasonPreRestore": "pre-ripristino",
    "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
    "noChangesSinceBackup": "Nessuna modifica dall'ultimo backup",
    "backupFailed": "Backup non riuscito",
    "restoreFailed": "Ripristino non riuscito",
    "importFailed": "Importazione non riuscita",
    "errorDuringRestore": "Si è verificato un errore durante il ripristino",
    "errorDuringImport": "Si è verificato un errore durante l'importazione",
    "modelPricing": "Prezzi del modello",
    "modelPricingDesc": "Configura le tariffe per modello • Tutte le tariffe in token da $/1 milione",
    "registry": "Registro",
    "priced": "Prezzo",
    "searchProvidersModels": "Cerca fornitori o modelli...",
    "showAll": "Mostra tutto",
    "noProvidersMatch": "Nessun fornitore corrisponde alla tua ricerca.",
    "howPricingWorks": "Come funzionano i prezzi",
    "cacheWrite": "Scrittura nella cache",
    "unsaved": "non salvato",
    "resetDefaults": "Ripristina le impostazioni predefinite",
    "saveProvider": "Salva fornitore",
    "model": "Modello",
    "models": "modelli",
    "moreProviders": "{count} altri fornitori",
    "withPricing": "con i prezzi configurati",
    "policiesCircuitBreakers": "Politiche e interruttori automatici",
    "activeIssuesDetected": "Rilevati problemi attivi",
    "off": "Spento",
    "resetPricingConfirm": "Ripristinare tutti i prezzi per {provider} ai valori predefiniti?",
    "pricingDescInput": "Input: token inviati al modello",
    "pricingDescOutput": "Output: token generati",
    "pricingDescCached": "Memorizzato nella cache: input riutilizzato (~50% della velocità di input)",
    "pricingDescReasoning": "Ragionamento: gettoni pensanti (ricade nell'Output)",
    "pricingDescCacheWrite": "Scrittura cache: creazione di voci cache (ricade su Input)",
    "pricingDescFormula": "Costo = (input × input_rate) + (output × output_rate) + (cache × cached_rate) per milione di token.",
    "pricingSettingsTitle": "Impostazioni dei prezzi",
    "totalModels": "Modelli totali",
    "active": "Attivo",
    "costCalculation": "Calcolo dei costi",
    "costCalculationDesc": "I costi vengono calcolati in base all'utilizzo dei token e alle tariffe configurate per ciascun modello.",
    "pricingFormat": "Formato dei prezzi",
    "pricingFormatDesc": "Tutte le tariffe sono in token $/1 milione (dollari per milione di token).",
    "tokenTypes": "Tipi di token",
    "inputTokenDesc": "Token di richiesta standard",
    "outputTokenDesc": "Token di completamento/risposta",
    "cachedTokenDesc": "Token di input memorizzati nella cache (in genere il 50% della velocità di input)",
    "reasoningTokenDesc": "Segnalini ragionamento/pensiero speciali (ripiego al tasso di produzione)",
    "cacheCreationTokenDesc": "Token utilizzati per creare voci nella cache (fallback alla velocità di input)",
    "customPricingNote": "Puoi sostituire i prezzi predefiniti per modelli specifici. Le sostituzioni personalizzate hanno la priorità sui prezzi rilevati automaticamente.",
    "editPricing": "Modifica prezzi",
    "viewFullDetails": "Visualizza i dettagli completi",
    "themeCoral": "Corallo",
    "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": "Impossibile cancellare i prezzi: {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": "Impossibile reimpostare i prezzi: {reason}",
    "tab": "Tab",
    "pricingSavedProvider": "Prezzo risparmiato per {provider}",
    "pricingSyncFailed": "Pricing Sync Failed",
    "pricingSaveFailedWithReason": "Impossibile salvare i prezzi: {reason}",
    "pricingResetProvider": "Reimpostazione dei prezzi per {provider}",
    "nextSync": "Next Sync",
    "pricingSyncFailedWithReason": "Sincronizzazione dei prezzi non riuscita: {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": "Configurazione aggressiva del motore",
    "compressionAggressiveConfigDesc": "Ottimizza il riepilogo, la compressione degli strumenti e le soglie di invecchiamento",
    "compressionUltraConfig": "Configurazione del motore Ultra",
    "compressionUltraConfigDesc": "Ottimizza l'eliminazione euristica, il fallback SLM e le soglie per messaggio",
    "compressionUltraRate": "Mantieni la tariffa",
    "compressionUltraMinScore": "Soglia di punteggio minimo",
    "compressionUltraSlmFallback": "Ripiego ad Aggressivo",
    "compressionUltraModelPath": "Percorso del modello SLM",
    "compressionSummarizerEnabled": "Abilita riepilogatore",
    "compressionMaxTokensPerMessage": "Token massimi per messaggio",
    "compressionMinSavings": "Soglia di risparmio minima",
    "compressionAgingThresholds": "Soglie di invecchiamento",
    "compressionAgingThresholdsDesc": "Numero di messaggi recenti conservati a ogni livello di invecchiamento (maggiore = più conservati)",
    "compressionToolStrategies": "Strategie di risultato dello strumento",
    "compressionToolStrategiesDesc": "Attiva/disattiva le strategie di compressione per diversi tipi di risultati dello strumento",
    "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": "minuti",
    "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": "Opzionale",
    "current": "Attuale",
    "remove": "Rimuovere",
    "search": "Ricerca",
    "oneproxyTitle": "1proxyMercato proxy gratuito",
    "oneproxyTotalProxies": "Procure totali",
    "oneproxyAvgQuality": "Qualità media",
    "resilienceScope": "Ambito:",
    "resilienceTrigger": "Grilletto:",
    "resilienceEffect": "Effetto:",
    "resilienceRequestQueueTitle": "Request Queue & Rate",
    "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
    "resilienceRequestsPerMinute": "Requests per minute",
    "resilienceMinTimeBetweenRequests": "Minimum time between requests",
    "resilienceConcurrentRequests": "Concurrent requests",
    "resilienceMaxQueueWaitTime": "Tempo massimo di attesa in coda",
    "resilienceBaseCooldown": "Base cooldown",
    "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
    "resilienceDefaultPerProvider": "Default (per provider)",
    "resilienceAlwaysOn": "Always on",
    "resilienceAlwaysOff": "Always off",
    "routingRemoveEntry": "Rimuovi la voce",
    "routingNeedlesSubstrings": "Aghi (sottostringhe da abbinare)",
    "routingCaseSensitive": "Maiuscole e minuscole",
    "routingPrefixes": "Prefissi",
    "routingMatch": "Incontro",
    "routingReplacement": "Sostituzione",
    "routingReplaceAllOccurrences": "Sostituisci tutte le occorrenze",
    "routingPatternRegex": "Modello (espressione regolare)",
    "routingFlags": "Bandiere",
    "routingNeedles": "Aghi",
    "routingBlockText": "Blocca il testo",
    "routingIdempotencyKey": "Chiave di idepotenza",
    "routingEntrypoint": "Punto di ingresso",
    "routingVersionFormat": "Formato della versione",
    "routingCchAlgorithm": "Algoritmo CCH",
    "routingWordsToObfuscate": "Parole da offuscare (ZWJ inserito dopo il primo carattere)",
    "logsSettingsTitle": "Impostazioni dei registri",
    "detailedLogsLabel": "Registri dettagliati abilitati",
    "detailedLogsDesc": "Abilita la registrazione dettagliata delle richieste/risposte",
    "callLogPipelineLabel": "Pipeline del registro delle chiamate",
    "callLogPipelineDesc": "Abilita la pipeline di elaborazione del registro delle chiamate",
    "maxDetailSizeLabel": "Dimensione massima dettaglio (KB)",
    "maxDetailSizeDesc": "Dimensione massima per voci di registro dettagliate",
    "ringBufferSizeLabel": "Dimensioni del buffer dell'anello",
    "ringBufferSizeDesc": "Dimensione del buffer circolare per i log",
    "semanticCacheEnabledLabel": "Cache semantica abilitata",
    "semanticCacheMaxSizeLabel": "Dimensione massima cache semantica",
    "semanticCacheMaxSizeDesc": "Numero massimo di voci della cache semantica",
    "semanticCacheTTLLabel": "Cache semantica TTL",
    "promptCacheEnabledLabel": "Cache dei prompt abilitata",
    "promptCacheEnabledDesc": "Abilita la memorizzazione nella cache dei prompt",
    "promptCacheStrategyLabel": "Strategia di cache rapida",
    "promptCacheStrategyDesc": "Strategia per la memorizzazione nella cache tempestiva",
    "alwaysPreserveClientCacheLabel": "Conserva sempre la cache del client",
    "alwaysPreserveClientCacheDesc": "Politica di conservazione della cache del client",
    "logRetentionPolicyTitle": "Politica di conservazione dei registri",
    "resilienceUseUpstream429HintsForBreaker": "Utilizza i suggerimenti 429 upstream (interruttore)",
    "appearanceLogoPreviewAlt": "Anteprima del logo",
    "appearanceFaviconPreviewAlt": "Anteprima della favicon",
    "oneproxyLastSync": "Ultima sincronizzazione",
    "oneproxyAllProtocols": "Tutti i protocolli",
    "oneproxyCountryCodePlaceholder": "Codice paese (ad es. USA)",
    "oneproxyMinQualityPlaceholder": "Qualità minima",
    "oneproxyLoadingProxies": "Caricamento proxy...",
    "oneproxyLastSyncLabel": "Ultima sincronizzazione:",
    "oneproxyProxiesFetched": "Proxy recuperati:",
    "oneproxyConsecutiveFailures": "Fallimenti consecutivi:",
    "oneproxyErrorLabel": "Errore:",
    "oneproxyNever": "Mai",
    "oneproxySyncStatusTitle": "Stato di sincronizzazione",
    "oneproxySuccess": "Successo",
    "oneproxyFailed": "Fallito",
    "routingAntigravitySignatureTitle": "Modalità cache della firma antigravità",
    "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": "Impronta digitale dell'intestazione (per fornitore)",
    "routingServerRejectedSave": "⚠ Salvataggio rifiutato dal server:",
    "routingAddTransformOp": "Aggiungi un'operazione di trasformazione",
    "routingClientCacheControlTitle": "Controllo della cache del client",
    "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": "Routing automatico a configurazione zero",
    "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": "Variante automatica predefinita",
    "visionBridge": "Ponte della Visione",
    "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": "Modello a ponte",
    "visionBridgeModelPlaceholder": "openai/gpt-4o-mini",
    "visionBridgeModelHint": "__MISSING__:Any OmniRoute model ID that supports vision can be used here.",
    "visionBridgePrompt": "Suggerimento del ponte",
    "visionBridgePromptPlaceholder": "Descrivi questa immagine in modo conciso.",
    "visionBridgePromptHint": "__MISSING__:Sent to the vision model before the extracted description is injected back into the original request.",
    "visionBridgeTimeoutMs": "Timeout (ms)",
    "visionBridgeMaxImagesPerRequest": "Numero massimo di immagini per richiesta",
    "resilienceMaxBackoffSteps": "Max backoff steps",
    "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
    "resilienceFailureThreshold": "Failure threshold",
    "resilienceResetTimeout": "Reimposta il timeout",
    "resilienceFailureThresholdLabel": "Soglia di fallimento",
    "resilienceResetTimeoutLabel": "Reimposta il timeout",
    "resilienceConnectionCooldownTitle": "Connection Cooldown",
    "resilienceUseUpstreamRetryHintsLabel": "Utilizza suggerimenti per i nuovi tentativi upstream",
    "resilienceUseUpstream429BreakerLabel": "Utilizza i suggerimenti 429 upstream (interruttore)",
    "resilienceMaxBackoffStepsLabel": "Passi di backoff massimi",
    "resilienceYes": "SÌ",
    "resilienceNo": "NO",
    "resilienceDefault": "Default",
    "storageDatabaseBackupRetention": "Conservazione del backup del database",
    "storagePurgeData": "Elimina dati",
    "retentionQuotaSnapshots": "Istantanee quota (giorni)",
    "retentionMcpAudit": "Audit MCP (giorni)",
    "retentionA2aEvents": "Eventi A2A (giorni)",
    "retentionCallLogs": "Registri delle chiamate (giorni)",
    "retentionUsageHistory": "Cronologia utilizzo (giorni)",
    "retentionMemoryEntries": "Voci di memoria (giorni)",
    "storageAutoVacuumMode": "Modalità di aspirazione automatica",
    "storageScheduledVacuum": "Vuoto programmato",
    "storageVacuumHour": "Ora del vuoto (0-23)",
    "storagePageSize": "Dimensioni pagina (byte)",
    "storageDatabaseSize": "Dimensioni del database",
    "storagePageCount": "Conteggio pagine",
    "storageFreelistCount": "Conteggio lista libera",
    "storageLastVacuum": "L'ultimo vuoto",
    "storageLastOptimization": "Ultima ottimizzazione",
    "storageIntegrityCheck": "Controllo di integrità",
    "storageIntegrityOk": "✓Va bene",
    "storageIntegrityError": "✗ Errore",
    "storageUsageTokenBuffer": "Buffer dei token di utilizzo",
    "compressionSettingsAutoTriggerMode": "Modalità di attivazione automatica",
    "compressionSettingsMcpDescriptionCompression": "Compressione della descrizione MCP",
    "compressionSettingsCavemanIntensity": "Intensità da cavernicolo",
    "compressionSettingsCavemanOutputMode": "Modalità di uscita cavernicolo",
    "compressionSettingsOutputIntensity": "Intensità di uscita",
    "compressionSettingsAutoClarityBypass": "Bypass automatico della chiarezza",
    "resilienceWaitForCooldown": "Attendi il raffreddamento",
    "resilienceEnableServerSideWait": "Abilita l'attesa lato server",
    "resilienceMaximumRetries": "Numero massimo di tentativi",
    "resilienceMaximumWaitPerRetry": "Attesa massima per tentativo",
    "memorySkillsSkillsmpMarketplace": "Mercato SkillsMP",
    "memorySkillsFailedToSave": "Impossibile salvare",
    "memorySkillsApiKey": "Chiave API",
    "memorySkillsActiveSkillsProvider": "Fornitore di competenze attive",
    "cliproxyapiFallback": "Fallback CLIProxyAPI",
    "cliproxyapiEnableFallback": "Abilita il fallback CLIProxyAPI",
    "cliproxyapiUrl": "URL dell'API CLIProxy",
    "cliproxyapiStatus": "Stato CLIProxyAPI",
    "cliproxyapiNotDetected": "Non rilevato",
    "payloadRulesTitle": "Regole sul carico utile",
    "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": "Modelli in fase di raffreddamento",
    "modelCooldownsEmpty": "Nessun modello in cooldown in questo momento.",
    "codexFastTierTitle": "Livello veloce del Codice",
    "codexFastTierDesc": "Inserisce globalmente service_tier=priority per le richieste OpenAI Codex.",
    "codexFastTierHint": "Se abilitato, OmniRoute aggiunge service_tier=priority alle richieste Codex in uscita per le connessioni che non specificano già un livello. Il livello di priorità richiede una chiave API OpenAI Enterprise o il percorso del Codex ChatGPT-auth; altri tipi di chiave riceveranno un errore relativo al livello da OpenAI. Le impostazioni per connessione nella pagina del provider Codex hanno la precedenza.",
    "codexFastTierSaveError": "Impossibile aggiornare l'impostazione del livello rapido del Codex",
    "codexFastTierTierLabel": "__MISSING__:Service tier",
    "codexFastTierTierPriority": "__MISSING__:Priority",
    "codexFastTierTierFlex": "__MISSING__:Flex",
    "codexFastTierTierDefault": "__MISSING__:Default",
    "codexFastTierModelsLabel": "__MISSING__:Fast-tier models",
    "codexFastTierModelsHint": "__MISSING__:Only checked models receive service_tier when Fast Tier is enabled.",
    "codexFastTierModelCheckbox": "__MISSING__:Enable Fast Tier for {model}",
    "claudeFastModeTitle": "Modalità veloce Claude",
    "claudeFastModeDesc": "Attiva le richieste selezionate di Claude in modalità Anthropic Fast (velocità: \"veloce\").",
    "claudeFastModeHint": "Anthropic non supporta ufficialmente la modalità veloce per i client in stile SDK. Se abilitato, OmniRoute inoltra un'intestazione X-CPA-Force-Fast-Mode in modo che una build CLIProxyAPI abbinata possa accettare lo spoofing del punto di ingresso. Solo i modelli Opus elencati sono controllati dal controllo lato client di Anthropic. Il livello di abbonamento, il piano Max e il saldo del credito in modalità veloce vengono ancora applicati lato server: Anthropic potrebbe restituire out_of_credits anche quando l'interruttore è attivo.",
    "claudeFastModeModelsLabel": "Applicato ai modelli ({count})",
    "claudeFastModeModelCheckbox": "Abilita la modalità veloce per {model}",
    "claudeFastModeSaveError": "Impossibile aggiornare l'impostazione della modalità veloce di Claude",
    "authz": {
      "title": "__MISSING__:Authz Inventory",
      "description": "__MISSING__:5-tier route classification with live bypass policy. Read shows the full taxonomy; mutations re-prompt for the management password.",
      "loading": "__MISSING__:Loading inventory…",
      "loadError": "__MISSING__:Failed to load authz inventory",
      "tier": {
        "LOCAL_ONLY": "__MISSING__:Local only",
        "ALWAYS_PROTECTED": "__MISSING__:Always protected",
        "MANAGEMENT": "__MISSING__:Management",
        "CLIENT_API": "__MISSING__:Client API",
        "PUBLIC": "__MISSING__:Public"
      },
      "bypass": {
        "section": "__MISSING__:Manage-scope bypass",
        "kill_switch": {
          "label": "__MISSING__:Bypass kill-switch",
          "desc": "__MISSING__:Master toggle. When off, no LOCAL_ONLY prefix is reachable from non-loopback regardless of the per-prefix list."
        },
        "prefix": {
          "label": "__MISSING__:Bypassable prefixes",
          "desc": "__MISSING__:LOCAL_ONLY prefixes that manage-scope API keys (or dashboard sessions) may reach from non-loopback hosts.",
          "add": "__MISSING__:Add prefix",
          "placeholder": "__MISSING__:/api/mcp/v2/",
          "empty": "__MISSING__:No prefixes configured. Bypass effectively off."
        },
        "cli_tools_runtime_note": "__MISSING__:Spawn-capable prefix. Compile-time deny; cannot be made bypassable. Shown read-only."
      },
      "password": {
        "prompt": {
          "label": "__MISSING__:Current password",
          "desc": "__MISSING__:Re-confirm to apply security-impacting changes."
        },
        "placeholder": "__MISSING__:Current management password",
        "cancel": "__MISSING__:Cancel",
        "submit": "__MISSING__:Apply"
      },
      "save": "__MISSING__:Save changes",
      "saved": "__MISSING__:Authz settings updated",
      "pending": "__MISSING__:Unsaved changes",
      "badge": {
        "bypassable": "__MISSING__:Bypassable via manage scope",
        "strict": "__MISSING__:Strict loopback",
        "auth_required": "__MISSING__:Auth required",
        "public": "__MISSING__:Public",
        "always_protected": "__MISSING__:Always protected",
        "spawn_capable": "__MISSING__:Spawn-capable"
      },
      "error": {
        "PASSWORD_REQUIRED": "__MISSING__:Current password required to apply these changes.",
        "PASSWORD_MISMATCH": "__MISSING__:Current password is incorrect.",
        "INSUFFICIENT_SCOPE": "__MISSING__:API key lacks the manage scope.",
        "BYPASS_PREFIX_NOT_ALLOWED": "__MISSING__:One or more prefixes target spawn-capable routes and cannot be bypassed.",
        "GENERIC": "__MISSING__:Failed to update authz settings."
      }
    },
    "resilienceBaseCooldownLabel": "Tempo di recupero della base",
    "scopeLabel": "Ambito",
    "triggerLabel": "Grilletto",
    "effectLabel": "Effetto",
    "statusEnabled": "Abilitato",
    "statusDisabled": "Disabilitato",
    "resilienceRequestQueueScope": "Per coda di richiesta",
    "resilienceRequestQueueTrigger": "Prima di inviare a monte",
    "resilienceRequestQueueEffect": "Accoda le richieste, limita la concorrenza e distanzia le chiamate",
    "resilienceRequestQueueDesc": "Questo livello controlla solo la coda e il ritmo. Non memorizza tempi di raffreddamento o interruttori automatici aperti.",
    "resilienceAutoEnableApiKeyProvidersDesc": "Abilita la protezione della coda per impostazione predefinita per le connessioni con chiave API attive.",
    "resilienceMaxQueueWait": "Tempo massimo di attesa in coda",
    "resilienceConnectionCooldownScope": "Connessione individuale",
    "resilienceConnectionCooldownTrigger": "Quando una connessione restituisce un errore upstream temporaneo",
    "resilienceConnectionCooldownEffect": "Ignora temporaneamente la connessione e aumenta il backoff in caso di errori ripetuti",
    "resilienceConnectionCooldownDesc": "Il tempo di recupero di base copre gli errori di connessione temporanei. Quando i suggerimenti per i nuovi tentativi upstream sono abilitati, la finestra esplicita del provider sovrascrive il tempo di attesa locale.",
    "resilienceUseUpstreamRetryHintsDesc": "Utilizza i valori riprova dopo/reimpostati dal provider upstream quando disponibili.",
    "resilienceUseUpstream429BreakerHints": "Usa i suggerimenti 429 a monte per il tempo di recupero dell'interruttore",
    "resilienceUseUpstream429BreakerHintsShort": "Utilizza i suggerimenti 429 upstream",
    "resilienceUseUpstream429BreakerHintsDesc": "Applicare i segnali Retry-After/quota esaurita dalle risposte 429 alla durata di raffreddamento dell'interruttore. L'impostazione predefinita utilizza una politica per fornitore: i fornitori di servizi cloud diretti sono attivi per impostazione predefinita; I provider con proxy inverso, self-hosted e supportati dalla CLI sono disattivati ​​per impostazione predefinita. Indipendente da \"Utilizza suggerimenti per i nuovi tentativi upstream\".",
    "resilienceProviderBreakerScope": "Intero fornitore",
    "resilienceProviderBreakerTrigger": "Errori finali di trasporto/server dopo l'esaurimento del fallback della connessione",
    "resilienceProviderBreakerEffect": "Blocca temporaneamente il provider fino alla scadenza del tempo di reimpostazione",
    "resilienceProviderBreakerDesc": "Lo stato dell'interruttore live viene visualizzato solo nella pagina Salute. I limiti di velocità 429 con ambito connessione rimangono nel raffreddamento della connessione e non fanno scattare l'interruttore del provider.",
    "resilienceResetTime": "Reimposta l'ora",
    "resilienceWaitForCooldownTitle": "Attendi il raffreddamento",
    "resilienceWaitForCooldownScope": "Richiesta attuale del cliente",
    "resilienceWaitForCooldownTrigger": "Quando tutte le connessioni candidate si stanno già raffreddando",
    "resilienceWaitForCooldownEffect": "Attende sul server e riprova allo scadere del primo tempo di recupero",
    "resilienceWaitForCooldownDesc": "Ciò influisce solo sulla richiesta corrente. Non memorizza la connessione o lo stato del provider.",
    "resilienceEnableServerWait": "Abilita l'attesa lato server",
    "resilienceEnableServerWaitDesc": "Quando abilitato, OmniRoute attende la scadenza del primo tempo di recupero e riprova automaticamente.",
    "resilienceMaxAttempts": "Tentativi massimi",
    "resilienceMaxWaitPerAttempt": "Attesa massima per tentativo",
    "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
    "forcedFingerprintBadge": "Required",
    "codexSessionAffinityTitle": "Affinità di sessione del Codice",
    "codexSessionAffinityDesc": "Mantiene una conversazione Codex sullo stesso account per questo numero di secondi. 0 lo disabilita.",
    "codexSessionAffinityTtl": "Affinità TTL (secondi)",
    "resetAwareQuotaCacheTitle": "Cache delle quote in grado di riconoscere la reimpostazione",
    "resetAwareQuotaCacheDesc": "Memorizza nella cache i dati di telemetria delle quote solo per gli ordini compatibili con la reimpostazione. Il controllo preliminare delle quote protegge comunque le richieste. 0/0 continua a recuperare in tempo reale.",
    "resetAwareQuotaCacheTtl": "TTL fresco (secondi)",
    "resetAwareQuotaCacheMaxStale": "Max obsoleto (secondi)",
    "qdrantCleanupSuccess": "OK: rimossi {count} punti (conservazione: {days} giorni)",
    "qdrantCleanupFailed": "La pulizia non è riuscita",
    "qdrantCleanupError": "Errore: {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": "Filtra catalogo",
    "filterCatalogDesc": "Filtri di output disponibili per categoria",
    "guidedConfig": "Configurazione",
    "guidedConfigDesc": "Regola il modo in cui RTK filtra l'output del terminale",
    "maxLines": "Max lines",
    "maxChars": "Max chars",
    "deduplicateThreshold": "Soglia di deduplicazione",
    "customFilters": "Filtri personalizzati",
    "detectedType": "Tipo rilevato",
    "confidence": "Fiducia",
    "beforeAfter": "Prima/Dopo",
    "trustProjectFilters": "Filtri di progetto attendibili",
    "rawOutputRetention": "Conservazione dell'output grezzo",
    "rawOutputNever": "Mai",
    "rawOutputFailures": "Fallimenti",
    "rawOutputAlways": "Sempre",
    "rawOutputMaxBytes": "Numero massimo di byte di output non elaborati",
    "filterTesting": "Filter Testing",
    "pasteOutput": "Paste tool output to test filtering...",
    "presetHigh": "Aggressivo",
    "presetLow": "Leggero",
    "presetMaxChars": "Caratteri di output massimi",
    "presetMaxLines": "Linee di uscita massime",
    "presetMedium": "Standard",
    "run": "Run",
    "result": "Result",
    "previewEmpty": "Run a sample to preview RTK output.",
    "detected": "Detected",
    "masterSwitchOffAlert": "__MISSING__:Token Saver master switch is OFF — these settings will not affect requests until you turn it on from the Endpoint page.",
    "tokensFiltered": "Tokens filtered",
    "filtersActive": "Filters active",
    "requests": "Requests",
    "avgSavings": "Avg savings",
    "simpleMode": "Semplice",
    "advancedMode": "Avanzato",
    "searchFilters": "Filtri di ricerca...",
    "tooltipDedup": "Con quanta aggressività rimuovere le righe ripetute.",
    "tooltipMaxChars": "Numero massimo di caratteri per blocco di output.",
    "tooltipMaxLines": "Numero massimo di righe da mantenere dall'output del comando. L'eccesso viene troncato."
  },
  "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": "Configurazione avanzata",
    "advancedConfigDesc": "Ottimizzare il comportamento di compressione",
    "aggressiveSettings": "Impostazioni aggressive",
    "aggressiveSettingsDesc": "Massima compressione con potenziali compromessi di qualità",
    "requests": "Requests",
    "tokensSaved": "Tokens saved",
    "savingsPercent": "Savings %",
    "avgLatency": "Avg latency",
    "languagePacks": "Language Packs",
    "languagePacksDesc": "Enable compression rules for specific languages.",
    "labelAutoTrigger": "Compressione automatica quando il contesto supera",
    "labelCompressionRate": "Resistenza alla compressione",
    "labelMaxTokens": "Token di destinazione per messaggio",
    "labelMinLength": "Lunghezza minima del messaggio",
    "labelMinSavings": "Token minimi da salvare",
    "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": "Modalità di uscita",
    "outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
    "outputModeTitle": "Output Mode",
    "quickSettings": "Impostazioni rapide",
    "quickSettingsDesc": "Impostazioni di compressione di base per iniziare",
    "autoClarity": "Auto-Clarity Bypass",
    "bypassConditions": "Bypass conditions",
    "bypassConditionsList": "sicurezza, irreversibile, chiarimento, sensibile all'ordine",
    "simpleMode": "Semplice",
    "advancedMode": "Avanzato",
    "tooltipAutoTrigger": "Comprimi automaticamente quando il contesto supera queste dimensioni.",
    "tooltipCompressionRate": "0,0 = nessuno, 1,0 = massimo. 0,5 = equilibrato.",
    "tooltipMaxTokens": "Conteggio dei token di destinazione dopo la compressione. Più basso = più aggressivo.",
    "tooltipMinLength": "I messaggi più brevi di questo non vengono compressi. Più basso = maggiore compressione.",
    "tooltipMinSavings": "Comprimi solo se salva almeno questo numero di token.",
    "ultraSettings": "Impostazioni ultra",
    "ultraSettingsDesc": "Compressione semantica basata su SLM",
    "preview": {
      "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
      "full": "Respond terse and compact. Preserve all technical substance.",
      "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
    }
  },
  "translator": {
    "title": "Traduttore",
    "metaTitle": "Parco giochi per traduttori | OmniRoute",
    "metaDescription": "Eseguire il debug, testare e visualizzare le traduzioni del formato API tra fornitori",
    "playgroundTitle": "Parco giochi per traduttori",
    "playground": "Parco giochi",
    "realtime": "Attività di traduzione in tempo reale",
    "chatTester": "Tester della chat",
    "testBench": "Banco di prova",
    "liveMonitor": "Monitoraggio dal vivo",
    "modeDescriptionPlayground": "Incolla qualsiasi corpo della richiesta API e guarda come OmniRoute lo traduce tra i formati del provider (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
    "modeDescriptionChatTester": "Invia richieste di chat reali tramite OmniRoute e controlla l'intero percorso di andata e ritorno: input, richiesta tradotta, risposta del fornitore e output tradotto.",
    "modeDescriptionTestBench": "Esegui scenari predefiniti e confronta la compatibilità tra provider e modelli.",
    "modeDescriptionLiveMonitor": "Guarda gli eventi di traduzione in tempo reale mentre le richieste fluiscono attraverso OmniRoute.",
    "modeDescriptionFallback": "Eseguire il debug, testare e visualizzare come OmniRoute traduce le richieste API tra provider.",
    "recentTranslations": "Traduzioni recenti",
    "noTranslations": "Nessuna traduzione ancora",
    "source": "Fonte",
    "target": "Bersaglio",
    "time": "Tempo",
    "model": "Modello",
    "status": "Stato",
    "latency": "Latenza",
    "totalTranslations": "Traduzioni totali",
    "successful": "Riuscito",
    "errors": "Errori",
    "avgLatency": "Latenza media",
    "millisecondsShort": "{value}ms",
    "notAvailableSymbol": "—",
    "liveAutoRefreshing": "Live: aggiornamento automatico",
    "paused": "In pausa",
    "eventsAppearHint": "Gli eventi di traduzione vengono visualizzati qui mentre le richieste passano attraverso OmniRoute. Utilizza uno di questi metodi per generare eventi:",
    "chatTesterTab": "Scheda Tester chat",
    "testBenchTab": "Scheda Banco di prova",
    "externalApiCalls": "Chiamate API esterne",
    "ideCliIntegrations": "Integrazioni IDE/CLI",
    "inMemoryNote": "Nota: gli eventi vengono archiviati in memoria e ripristinati al riavvio del server.",
    "ok": "OK",
    "errorShort": "ERR",
    "formatConverter": "Convertitore di formato",
    "formatConverterDescription": "Incolla o digita il corpo della richiesta JSON. Il traduttore rileverà automaticamente il formato di origine e lo convertirà nel formato di destinazione. Utilizzalo per eseguire il debug del modo in cui OmniRoute traduce le richieste tra formati (OpenAI ↔ Claude ↔ Gemini ↔ API delle risposte).",
    "translationPathHubSpoke": "{source} → OpenAI (intermedio) → {target}",
    "translationPathDirect": "{source} → {target} (traduttore diretto)",
    "translationPathPassthrough": "Stesso formato: nessuna traduzione necessaria",
    "openaiIntermediatePanel": "OpenAI intermedio",
    "autoFeaturesTitle": "Cosa fa automaticamente OmniRoute",
    "autoFeaturesCount": "8 caratteristiche",
    "featureReasoningCache": "Cache del ragionamento",
    "featureReasoningCacheDesc": "Reinserisce il Reasoning_content memorizzato nella cache per i modelli in modalità pensiero (DeepSeek V4, Kimi K2, Qwen) quando i client lo omettono dalla cronologia delle conversazioni.",
    "featureSchemaCoercion": "Coercizione dello schema",
    "featureSchemaCoercionDesc": "Risolve gli schemi degli strumenti danneggiati: aggiunge proprietà aggiuntive mancanti, disinfetta le descrizioni lunghe, normalizza gli oggetti nidificati.",
    "featureRoleNormalization": "Normalizzazione dei ruoli",
    "featureRoleNormalizationDesc": "Sviluppatore di mappe→sistema per target non OpenAI. Mappa sistema→utente per modelli che non supportano il ruolo di sistema.",
    "featureToolCallIds": "Normalizzazione dell'ID chiamata dello strumento",
    "featureToolCallIdsDesc": "Genera ID tool_call univoci quando mancanti. Normalizza il formato a 9 caratteri per provider come Mistral.",
    "featureMissingToolResponse": "Iniezione di risposta dello strumento",
    "featureMissingToolResponseDesc": "Inserisce messaggi tool_result vuoti quando i client inviano tool_call senza risposte corrispondenti.",
    "featureThinkingBudget": "Pensare al bilancio",
    "featureThinkingBudgetDesc": "Gestisce automaticamente la configurazione del pensiero. Rimuove i parametri di riflessione quando l'ultimo messaggio non proviene dall'utente.",
    "featureDirectPaths": "Percorsi di traduzione diretta",
    "featureDirectPathsDesc": "Alcune coppie di formati (Claude→Gemini) dispongono di traduttori diretti che aggirano l'hub OpenAI, producendo un output più accurato.",
    "featureImageMapping": "Mappatura delle dimensioni dell'immagine",
    "featureImageMappingDesc": "Traduce le convenzioni sulle dimensioni delle immagini tra i formati API (ad esempio, livelli di dettaglio OpenAI → Dimensioni Gemini).",
    "input": "Ingresso",
    "output": "Produzione",
    "auto": "Auto",
    "swapFormats": "Scambia formati",
    "translateAction": "Tradurre",
    "clear": "Chiaro",
    "inputPlaceholder": "Incolla qui il corpo della richiesta o seleziona un modello qui sotto...",
    "exampleTemplates": "Modelli di esempio",
    "exampleTemplatesHint": "— Fare clic per caricare",
    "templateLoadHint": "Il modello carica la richiesta nel formato {format}. Cambia il formato di origine per caricare in un formato diverso.",
    "compatibilityTester": "Tester di compatibilità",
    "compatibilityReport": "Rapporto sulla compatibilità",
    "testBenchDescription": "Esegui scenari predefiniti (Chat semplice, Chiamata di strumenti, ecc.) per verificare la compatibilità della traduzione e del provider. Seleziona un formato di origine e un provider di destinazione, quindi esegui tutti i test per visualizzare una percentuale di compatibilità. Usalo per scoprire quali funzionalità funzionano tra i diversi fornitori.",
    "targetProvider": "Fornitore di destinazione",
    "runAllTests": "Esegui tutti i test",
    "runTest": "Esegui prova",
    "reRun": "Rieseguire",
    "running": "Corsa...",
    "passed": "passato",
    "failed": "fallito",
    "passedIconLabel": "✅Superato",
    "chunks": "pezzi",
    "scenarioSimpleChat": "Chat semplice",
    "scenarioToolCalling": "Chiamata dello strumento",
    "scenarioMultiTurn": "Multigiro",
    "scenarioThinking": "Pensiero",
    "scenarioSystemPrompt": "Richiesta di sistema",
    "scenarioStreaming": "Streaming",
    "templateNames": {
      "simple-chat": "Chat semplice",
      "tool-calling": "Chiamata dello strumento",
      "multi-turn": "Multigiro",
      "thinking": "Pensiero",
      "system-prompt": "Richiesta di sistema",
      "streaming": "Streaming",
      "vision": "Visione",
      "schema-coercion": "Coercizione dello schema"
    },
    "templateDescriptions": {
      "simple-chat": "Messaggio di testo di base",
      "tool-calling": "Invocazione di funzioni/strumenti",
      "multi-turn": "Conversazione con la storia",
      "thinking": "Pensiero/ragionamento esteso",
      "system-prompt": "Istruzioni di sistema complesse",
      "streaming": "Richiesta di streaming SSE",
      "vision": "Richiesta multimodale con input di immagini",
      "schema-coercion": "Applicazione di schemi JSON/output strutturato"
    },
    "templatePayloads": {
      "simpleChat": {
        "system": "Sei un assistente utile.",
        "userGreeting": "Ciao! Come stai oggi?"
      },
      "toolCalling": {
        "userWeather": "Che tempo fa a San Paolo?",
        "toolDescription": "Ottieni il meteo attuale per una località",
        "cityNameDescription": "Nome della città"
      },
      "multiTurn": {
        "system": "Sei un assistente di codifica.",
        "userInitial": "Scrivi una funzione per ordinare un array in Python.",
        "assistantExample": "Ecco una semplice funzione di ordinamento:\n\n```pitone\ndef sort_array(arr):\n    restituire ordinato(arr)\n```",
        "userFollowUp": "Ora ordinalo in ordine decrescente."
      },
      "thinking": {
        "question": "Qual è la somma dei primi 100 numeri primi?"
      },
      "systemPrompt": {
        "systemInstruction": "Sei un ingegnere informatico senior specializzato in sistemi distribuiti. Rispondi alle domande in modo conciso utilizzando le migliori pratiche del settore. Fornisci sempre esempi di codice quando pertinente. Formatta le tue risposte utilizzando Markdown.",
        "question": "Come si implementa un modello di interruttore automatico?"
      },
      "streaming": {
        "prompt": "Raccontami una breve storia su un robot che impara a dipingere."
      },
      "vision": {
        "system": "Sei un assistente che descrive le immagini con precisione.",
        "userPrompt": "Cosa è mostrato in questa immagine?",
        "imageUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/600px-PNG_transparency_demonstration_1.png"
      },
      "schemaCoercion": {
        "userPrompt": "Cerca il meteo per Tokyo utilizzando le unità metriche e includi la suddivisione oraria.",
        "toolDescription": "Recupera il meteo per una città con opzioni strutturate.",
        "cityDescription": "La città da interrogare, ad es. \"Tokyo\" o \"New York\"."
      }
    },
    "openaiCompatibleLabel": "Compatibile con OpenAI",
    "anthropicCompatibleLabel": "Compatibile antropico",
    "noTemplateForFormat": "Nessun modello per questo formato",
    "translationFailed": "Traduzione non riuscita: {error}",
    "pipelineDebugger": "Debug della pipeline",
    "translationPipeline": "Pipeline di traduzione",
    "pipelineVisualization": "Visualizzazione della pipeline",
    "pipelineVisualizationHint": "Invia un messaggio per vedere come scorre la tua richiesta attraverso rilevamento → traduzione → chiamata al fornitore.",
    "chatTesterDescription": "Invia messaggi in un formato client specifico e ispeziona ogni passaggio della pipeline di traduzione.",
    "chatTesterFlow": "Richiesta client → Rilevamento formato → OpenAI Intermediate → Formato provider → Risposta",
    "clickStepToInspect": "Fare clic su qualsiasi passaggio per controllare i dati in quella fase.",
    "clientFormat": "Formato cliente",
    "provider": "Fornitore",
    "modelPlaceholder": "Seleziona o digita il nome di un modello...",
    "sendMessageToSeePipeline": "Invia un messaggio per vedere la pipeline di traduzione",
    "chatMessageHintPrefix": "Il tuo messaggio sarà formattato come a",
    "chatMessageHintSuffix": "richiesta, tradotta attraverso la pipeline e inviata al fornitore selezionato.",
    "youWithFormat": "Tu ({format})",
    "assistant": "Assistente",
    "typeMessage": "Digita un messaggio...",
    "send": "Inviare",
    "clientRequest": "Richiesta del cliente",
    "clientRequestDescription": "Il corpo della richiesta così come lo invierebbe il tuo cliente",
    "formatDetected": "Formato rilevato",
    "formatDetectedDescription": "OmniRoute rileva automaticamente il formato API dalla struttura della richiesta",
    "openaiIntermediate": "OpenAI intermedio",
    "openaiIntermediateDescription": "Tutti i formati vengono prima normalizzati nel formato OpenAI (il bridge universale)",
    "providerFormat": "Formato del fornitore",
    "providerFormatDescription": "Il formato OpenAI è tradotto nel formato nativo del provider",
    "providerResponse": "Risposta del fornitore",
    "providerResponseRawDescription": "La risposta non elaborata dall'API del provider",
    "providerResponseSseDescription": "Il flusso SSE non elaborato dall'API del provider",
    "unexpectedError": "Si è verificato un errore imprevisto",
    "error": "Errore",
    "errorMessage": "Errore: {message}",
    "requestFailed": "Richiesta non riuscita",
    "noTextExtracted": "(Nessun testo estratto)",
    "liveMonitorMemoryNote": "Gli eventi vengono archiviati in memoria e persi al riavvio.",
    "liveMonitorMemoryCapNote": "Conservati massimo 200 eventi.",
    "eventSourcesLabel": "Origini degli eventi:",
    "eventSourceTranslatorPage": "• Pagina del traduttore (Chat Tester, Test Bench)",
    "eventSourceMainPipeline": "• Pipeline di richiesta principale (traffico CLI/IDE/API)",
    "liveMonitorDescriptionPrefix": "Mostra gli eventi di traduzione mentre le chiamate API fluiscono attraverso OmniRoute. Gli eventi provengono dal buffer in memoria (si ripristina al riavvio). Utilizzo",
    "liveMonitorDescriptionSuffix": "o chiamate API esterne per generare eventi.",
    "streamTransformer": "Trasformatore di flusso",
    "modeDescriptionStreamTransformer": "Esegui i flussi SSE di completamenti della chat tramite il trasformatore delle risposte.",
    "streamTransformerTitle": "Risposte Trasformatore di flusso",
    "streamTransformerDescription": "Incolla un flusso SSE di completamenti della chat, eseguilo tramite il trasformatore di risposte di OmniRoute e controlla gli eventi di risposta.* emessi prima di collegare un client.",
    "loadTextSample": "Carica esempio di testo",
    "loadToolSample": "Carica l'esempio di chiamata dello strumento",
    "transformToResponses": "Trasforma in risposte",
    "rawChatSseInput": "Completamenti grezzi della chat SSE",
    "transformedResponsesSse": "API Risposte trasformate SSE",
    "noResultsYet": "Nessun risultato ancora",
    "transformedEvents": "Eventi trasformati",
    "uniqueEventTypes": "Tipi di eventi unici",
    "inputLines": "Linee di ingresso",
    "outputLines": "Linee di uscita",
    "transformedEventTimeline": "Cronologia degli eventi trasformata",
    "transformerTimelineHint": "Eseguire il trasformatore per ispezionare gli eventi risposta.output_* emessi in ordine.",
    "eventType": "Tipo di evento",
    "eventPreview": "Anteprima",
    "comboRouted": "Combo instradato",
    "uniqueEndpoints": "Endpoint unici",
    "routeDetails": "Dettagli del percorso",
    "comboBadge": "Combinato",
    "routeEndpointLabel": "Punto finale",
    "routeConnectionLabel": "Connessione",
    "scenarioVision": "Visione (comprensione dell'immagine)",
    "scenarioSchemaCoercion": "Coercizione dello schema (output strutturato)",
    "techniques": "Tecniche:"
  },
  "usage": {
    "title": "Utilizzo",
    "loggerTab": "Registratore",
    "proxyTab": "Procura",
    "budgetManagement": "Gestione del bilancio",
    "budgetSaved": "Limiti di budget salvati",
    "budgetSaveFailed": "Impossibile salvare il budget",
    "loadingBudgetData": "Caricamento dei dati del budget...",
    "noApiKeysTitle": "Nessuna chiave API",
    "noApiKeysDescription": "Aggiungi prima le chiavi API per impostare i limiti di budget.",
    "apiKey": "Chiave API",
    "todaysSpend": "La spesa di oggi",
    "thisMonth": "Questo mese",
    "setLimits": "Imposta limiti",
    "dailyLimitUsd": "Limite giornaliero (USD)",
    "monthlyLimitUsd": "Limite mensile (USD)",
    "warningThresholdPercent": "Soglia di avviso (%)",
    "dailyLimitPlaceholder": "per esempio. 5.00",
    "monthlyLimitPlaceholder": "per esempio. 50,00",
    "warningThresholdPlaceholder": "80",
    "saveLimits": "Salva limiti",
    "budgetOk": "Budget OK: {remaining} rimanente",
    "budgetExceeded": "Budget superato: le richieste potrebbero essere bloccate",
    "totalRequests": "Richieste totali",
    "noDataYet": "Nessun dato ancora",
    "latency": "Latenza",
    "latencyP50": "p50",
    "latencyP95": "p95",
    "latencyP99": "p99",
    "promptCache": "Cache dei suggerimenti",
    "systemHealth": "Salute del sistema",
    "entries": "Voci",
    "activeCount": "{count} attivo",
    "openCircuitBreakersDetected": "Rilevati interruttori automatici aperti",
    "hitRate": "Tasso di successo",
    "hitsMisses": "Colpi / Mancati",
    "circuitBreakers": "Interruttori automatici",
    "lockedIPs": "IP bloccati",
    "lockoutsAutoRefreshHint": "Blocchi del limite di velocità per modello • Aggiornamento automatico 10 secondi",
    "lockedCount": "{count, plural, one {# locked} other {# locked}}",
    "timeLeft": "{time} rimasto",
    "howItWorks": "Come funziona",
    "howItWorksSubtitle": "Scopri come le valutazioni convalidano le tue risposte LLM",
    "define": "Definire",
    "defineStepDescription": "Crea casi di test con prompt di input e criteri di output previsti utilizzando strategie come contiene, regex o corrispondenza esatta.",
    "run": "Correre",
    "runStepDescription": "Esegui casi di test sugli endpoint LLM tramite OmniRoute. Ogni caso viene inviato come una vera richiesta API.",
    "evaluate": "Valutare",
    "evaluateStepDescription": "Le risposte vengono confrontate con i criteri attesi. Visualizza il superamento/fallimento per ciascun caso con parametri di latenza e feedback dettagliato.",
    "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": "Suite di valutazione",
    "evalSuitesHint": "Fai clic su una suite per visualizzare i casi di test, quindi esegui per valutare i tuoi endpoint LLM",
    "evalsLoading": "Caricamento suite di valutazione...",
    "noEvalSuitesFound": "Nessuna suite di valutazione trovata",
    "noEvalSuitesDescription": "Le suite di valutazione possono essere definite tramite l'API o nel codice. Testano gli output del modello rispetto ai risultati attesi utilizzando strategie come contiene, regex, corrispondenza esatta e funzioni personalizzate.",
    "columnCase": "Caso",
    "columnStatus": "Stato",
    "columnLatency": "Latenza",
    "columnDetails": "Dettagli",
    "columnModel": "Modello",
    "columnStrategy": "Strategia",
    "columnExpected": "Previsto",
    "statsSuites": "Suite",
    "statsTestCases": "Casi di prova",
    "statsModels": "Modelli",
    "statsCoverage": "Copertura",
    "statsStrategiesCount": "{count} strategie",
    "evaluationStrategies": "Strategie di valutazione",
    "modelsUnderTest": "Modelli in prova",
    "searchSuitesPlaceholder": "Cerca suite...",
    "passSuffix": "passaggio",
    "casesCount": "{count, plural, one {# case} other {# cases}}",
    "runEval": "Esegui valutazione",
    "runAllSuites": "Esegui tutto",
    "runAllRunning": "Correre tutto...",
    "runAllProgress": "In esecuzione {current}/{total}: {name}",
    "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
    "runAllCompleted": "Ho eseguito le suite {suites}: {passed} superato, {failed} fallito",
    "runAllCompletedWithFailures": "Ho eseguito le suite {completed}; Impossibile completare {failedSuites}",
    "runningProgress": "In esecuzione {current}/{total}...",
    "passRate": "tasso di passaggio",
    "summaryBreakdown": "{passed} superato · {failed} fallito · {total} totale",
    "passedIconLabel": "✅Superato",
    "failedIconLabel": "❌ Fallito",
    "resultPassed": "Superato",
    "resultFailed": "Fallito",
    "expandResult": "Espandi i dettagli del risultato",
    "collapseResult": "Comprimi i dettagli dei risultati",
    "detailsContains": "Contiene: \"{term}\"",
    "detailsRegex": "Regex: {pattern}",
    "detailsExpected": "Previsto: \"{expected}\"",
    "expectedOutputLabel": "Risultato previsto",
    "noResultsYet": "Nessun risultato ancora",
    "testCasesCount": "Casi di test ({count})",
    "noTestCasesDefined": "Nessun caso di test definito",
    "runEvalHint": "Fai clic su \"Esegui valutazione\" per eseguire tutti i casi sull'endpoint LLM. Ogni test invia una richiesta reale tramite OmniRoute.",
    "notifyNoTestCases": "Nessun caso di test definito per questa suite",
    "notifyAllCasesPassed": "Tutti i casi {total} sono stati superati ✅",
    "notifySomeCasesFailed": "{passed}/{total} superato, {failed} fallito",
    "notifyEvalRunFailed": "L'esecuzione di valutazione non è riuscita",
    "notifyEvalTitle": "Valutazione: {name}",
    "modelEvals": "Valutazioni dei modelli",
    "evalsHeroDescription": "Testa e convalida i tuoi endpoint LLM eseguendo suite di valutazione predefinite. Ogni suite contiene casi di test che inviano richieste reali tramite OmniRoute e confrontano le risposte con i criteri previsti, aiutandoti a rilevare regressioni, confrontare modelli e garantire la qualità delle risposte tra i fornitori.",
    "qualityValidation": "Convalida della qualità",
    "modelComparison": "Confronto dei modelli",
    "regressionDetection": "Rilevamento della regressione",
    "latencyBenchmarks": "Benchmark di latenza",
    "modelLockouts": "Blocchi del modello",
    "noLockouts": "Nessun modello attualmente bloccato",
    "activeSessions": "Sessioni attive",
    "noSessions": "Nessuna sessione attiva",
    "sessionsHint": "Le sessioni vengono visualizzate mentre le richieste passano attraverso il proxy",
    "sessionsTrackedHint": "Tracciato tramite richiesta di impronta digitale • Aggiornamento automatico 5 s",
    "session": "Sessione",
    "age": "Età",
    "requests": "Richieste",
    "connection": "Connessione",
    "durationMillisecondsShort": "{value}ms",
    "durationSecondsShort": "{value}s",
    "durationMinutesShort": "{value}m",
    "durationHoursShort": "{value}h",
    "reasonSeparator": " - ",
    "notAvailableSymbol": "-",
    "providerLimits": "Limiti del fornitore",
    "noProviders": "Nessun provider connesso",
    "connectProvidersForQuota": "Connettiti ai provider con OAuth per monitorare i limiti di quota e l'utilizzo dell'API.",
    "accountsCount": "{count, plural, one {# account} other {# accounts}}",
    "filteredFromCount": "(filtrato da {count})",
    "autoRefresh": "Aggiornamento automatico",
    "refreshAll": "Aggiorna tutto",
    "loadingQuotas": "Caricamento...",
    "account": "Account",
    "modelQuotas": "Quote modello",
    "lastUsed": "Last Refreshed",
    "actions": "Azioni",
    "refreshQuota": "Aggiorna quota",
    "today": "Oggi",
    "tomorrow": "Domani",
    "dayTimeFormat": "{day}, {time}",
    "inDuration": "in {duration}",
    "notApplicable": "N / A",
    "rawPlanWithValue": "Piano grezzo: {plan}",
    "noPlanFromProvider": "Nessun piano dal fornitore",
    "noQuotaData": "Nessun dato sulle quote",
    "cardExpand": "__MISSING__:Expand",
    "cardCollapse": "__MISSING__:Collapse",
    "moreQuotas": "__MISSING__:+{count} more",
    "ungrouped": "Ungrouped",
    "viewFlat": "Flat",
    "viewByEnvironment": "By Environment",
    "noQuotaDataAvailable": "Nessun dato sulle quote disponibile",
    "noAccountsForTierFilter": "Nessun account trovato per il filtro del livello",
    "tierAll": "Tutto",
    "tierEnterprise": "Impresa",
    "tierTeam": "Squadra",
    "tierBusiness": "Attività commerciale",
    "tierUltra": "Ultra",
    "tierPro": "Pro",
    "tierPlus": "Più",
    "tierFree": "Gratuito",
    "tierLite": "__MISSING__:Lite",
    "tierUnknown": "Sconosciuto",
    "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": "Modifica i tagli",
    "forceRefresh": "Aggiorna ora",
    "suiteBuilderSaveFailed": "Failed to save suite",
    "clone": "Clone",
    "exportSuite": "Esportare",
    "importSuite": "Importare",
    "suiteExported": "Suite esportata",
    "suiteExportFailed": "Impossibile esportare la suite",
    "suiteImportReady": "Importazione della suite caricata per la revisione",
    "suiteImportFailed": "Impossibile importare la suite",
    "suiteImportInvalid": "JSON della suite di valutazione non valida",
    "suiteBuilderCloneSuffix": "copia",
    "suiteBuilderImportedSuite": "Suite importata",
    "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": "per esempio. def fibonacci",
    "suiteBuilderCaseExpectedPlaceholderExact": "Incolla l'esatta risposta prevista",
    "suiteBuilderCaseExpectedPlaceholderRegex": "per esempio. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
    "suiteBuilderCaseExpectedHintRegex": "Utilizza un'espressione regolare JavaScript senza racchiudere le barre.",
    "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": "Duplicato",
    "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 rimasto",
    "quotaCutoffsColumnHelp": "Interrompi le richieste quando la quota rimanente scende a questa percentuale o al di sotto.",
    "quotaCutoffsButtonDefault": "Predefinito",
    "quotaCutoffsButtonHelp": "Modifica i limiti minimi di quota rimanente per questo account.",
    "quotaCutoffsButtonDisabled": "Per questo account non sono ancora disponibili finestre di quota.",
    "quotaCutoffsTitle": "Limiti delle quote per {name} ({provider})",
    "quotaCutoffsExplainer": "Sostituisci la percentuale di quota minima rimanente nel momento in cui questo account smette di essere selezionato per ogni finestra di quota. Lascia vuoto per ereditare l'impostazione predefinita del provider.",
    "quotaCutoffsDefaultHint": "Min rimanente predefinito: {default}%",
    "quotaCutoffsResetAll": "Reimposta tutto",
    "quotaCutoffsNoWindows": "Per questo account non sono ancora disponibili finestre di quota.",
    "quotaThresholdInvalid": "Inserisci un numero intero compreso tra 0 e 100.",
    "budgetKpiToday": "Oggi",
    "budgetKpiThisMonth": "Questo mese",
    "budgetKpiProjEom": "Progetto EOM",
    "budgetKpiBlocked": "Bloccato",
    "budgetKpiAtRisk": "A rischio",
    "budgetKpiActiveKeys": "Chiavi attive",
    "budgetSearchKeysPlaceholder": "Cerca chiavi...",
    "budgetSortPctUsed": "Ordina: % utilizzato ↓",
    "budgetSortTodayDollar": "Ordina: Oggi $ ↓",
    "budgetSortMonthDollar": "Ordina: Mese $ ↓",
    "budgetSortNameAZ": "Ordina: Nome (A–Z)",
    "budgetColDailyLim": "Limite giornaliero",
    "budgetColMonthlyLim": "Limite mensile",
    "budgetColUsedPct": "Usato %",
    "budgetLoading": "Caricamento…",
    "budgetNoKeysMatch": "Nessuna chiave corrisponde ai filtri",
    "budgetLinearExtrapolation": "estrapolazione lineare",
    "budgetThisMonthSoFar": "Questo mese finora",
    "budgetProjectedEndOfMonth": "Fine mese prevista",
    "budgetByProvider": "per fornitore",
    "budgetDailyDollar": "Giornaliero $",
    "budgetWeeklyDollar": "Settimanale $",
    "budgetMonthlyDollar": "Mensile $",
    "budgetWarnAtPct": "Avvisa alle %",
    "quotaAlerts": "Avvisi sulle quote",
    "quotaTableRefreshing": "⟳ Rinfrescante...",
    "noSpendLast30Days": "Nessuna spesa negli ultimi 30 giorni",
    "updatedShort": "__MISSING__:Updated",
    "lastRefreshed": "__MISSING__:Last refreshed",
    "providerQuota": "__MISSING__:Provider Quota",
    "providerQuotaHomeHint": "__MISSING__:Live status across connected accounts"
  },
  "modals": {
    "waitingAuth": "In attesa di autorizzazione",
    "verificationUrl": "URL di verifica",
    "yourCode": "Il tuo codice",
    "remoteAccess": "Accesso remoto:",
    "connectedSuccess": "Connesso con successo!",
    "connectionFailed": "Connessione non riuscita",
    "chooseAuthMethod": "Scegli il tuo metodo di autenticazione:",
    "awsBuilderId": "ID del generatore AWS",
    "awsIamIdentity": "Centro identità AWS IAM",
    "googleAccount": "Account Google",
    "githubAccount": "Conto GitHub",
    "importToken": "Importa gettone",
    "pasteToken": "Incolla il token di aggiornamento da Kiro IDE.",
    "awsRegion": "Regione AWS",
    "autoDetecting": "Token di rilevamento automatico...",
    "readingFromCache": "Lettura dalla cache AWS SSO",
    "readingFromCursor": "Lettura dal database Cursor IDE",
    "initializing": "Inizializzazione...",
    "pricingConfig": "Configurazione dei prezzi",
    "loadingPricing": "Caricamento dati sui prezzi...",
    "pricingRatesFormat": "Formato delle tariffe dei prezzi",
    "noPricingData": "Nessun dato sui prezzi disponibile",
    "noModelsFound": "Nessun modello trovato"
  },
  "loggers": {
    "allProviders": "Tutti i fornitori",
    "allModels": "Tutti i modelli",
    "allAccounts": "Tutti i conti",
    "allApiKeys": "Tutte le chiavi API",
    "allTypes": "Tutti i tipi",
    "allLevels": "Tutti i livelli",
    "modelAZ": "Modello dalla A alla Z",
    "modelZA": "Modello Z-A",
    "loadingLogs": "Caricamento registri...",
    "loadingProxyLogs": "Caricamento dei registri proxy...",
    "noLogEntries": "Nessuna voce di registro trovata",
    "noPayloadData": "Nessun dato sul carico utile disponibile per questa voce di registro.",
    "proxyEvent": "Evento proxy",
    "proxy": "Procura",
    "level": "Livello",
    "directNative": "Diretto (nativo)",
    "combo": "Combinato",
    "inputTokens": "IO:",
    "outputTokens": "O:"
  },
  "stats": {
    "usageOverview": "Panoramica sull'utilizzo",
    "outputTokens": "Gettoni di uscita",
    "totalCost": "Costo totale",
    "usageByModel": "Utilizzo per modello",
    "usageByAccount": "Utilizzo per account",
    "failedToLoad": "Impossibile caricare le statistiche sull'utilizzo.",
    "tokenHealth": "Gettone di salute",
    "totalOAuth": "OAuth totale",
    "healthy": "Salutare",
    "warning": "Avvertimento",
    "errored": "Errore",
    "lastCheck": "Ultimo controllo",
    "noData": "Nessun dato",
    "share": "Condividere",
    "unableToLoad": "Impossibile caricare le metriche di sistema",
    "product": "Prodotto",
    "resources": "Risorse",
    "company": "Azienda"
  },
  "auth": {
    "welcome": "Benvenuto",
    "signIn": "Registrazione",
    "enterPassword": "Inserisci la tua password per continuare",
    "password": "Password",
    "unifiedProxy": "Proxy API AI unificato",
    "unifiedAiApiProxy": "Proxy API AI unificato",
    "unifiedAiApiProxyDesc": "Instrada le richieste a più fornitori di intelligenza artificiale attraverso un singolo endpoint. Bilanciamento del carico, failover e monitoraggio dell'utilizzo integrati.",
    "passwordNotEnabled": "La protezione tramite password non è abilitata",
    "loading": "Caricamento...",
    "invalidPassword": "Password non valida",
    "errorOccurredRetry": "Si è verificato un errore. Per favore riprova.",
    "configureInstance": "Configura la tua istanza OmniRoute",
    "runOnboardingWizard": "Esegui la procedura guidata di onboarding per impostare la tua password e connettere il tuo primo provider AI.",
    "startOnboarding": "Inizia l'onboarding",
    "secureYourInstance": "Proteggi la tua istanza",
    "setPasswordDescription": "Imposta una password per proteggere la tua dashboard e proteggere i tuoi endpoint API da accessi non autorizzati.",
    "configurePassword": "Configura password",
    "continue": "Continuare",
    "windowWillClose": "Questa finestra si chiuderà automaticamente...",
    "closeTabNow": "Puoi chiudere questa scheda ora.",
    "copyUrlManual": "Copia l'URL dalla barra degli indirizzi e incollalo nell'applicazione.",
    "accessDeniedDescription": "Non hai l'autorizzazione per accedere a questa risorsa. Controlla la tua chiave API o contatta l'amministratore.",
    "goToDashboard": "Vai alla dashboard",
    "featureMultiProviderTitle": "Multi-provider",
    "featureMultiProviderDesc": "OpenAI, Anthropic, Google e altro ancora",
    "featureLoadBalancingTitle": "Bilanciamento del carico",
    "featureLoadBalancingDesc": "Distribuisci le richieste in modo intelligente",
    "featureUsageTrackingTitle": "Monitoraggio dell'utilizzo",
    "featureUsageTrackingDesc": "Monitorare costi e gettoni",
    "resetPassword": "Reimposta password",
    "resetDescription": "Scegli un metodo per recuperare l'accesso alla tua dashboard",
    "stopServer": "Arrestare il server OmniRoute",
    "processing": "Elaborazione...",
    "pleaseWait": "Ti preghiamo di attendere mentre completiamo l'autorizzazione.",
    "authSuccess": "Autorizzazione riuscita!",
    "copyUrl": "Copia questo URL",
    "accessDenied": "Accesso negato",
    "methodCliTitle": "Metodo 1: reimpostazione CLI",
    "methodCliDescription": "Esegui il comando seguente sul server su cui è in esecuzione OmniRoute:",
    "methodCliHint": "Questo ti chiederà di impostare una nuova password. Il server deve essere prima arrestato.",
    "methodManualTitle": "Metodo 2: ripristino manuale",
    "methodManualDescription": "Elimina la password dal database e impostane una nuova all'avvio:",
    "setPasswordInYour": "Imposta una nuova password nel tuo",
    "fileLabelSuffix": "file:",
    "newPasswordPlaceholder": "la tua_nuova_password",
    "deleteSettingsFile": "Eliminare",
    "orRemovePasswordHashField": "o rimuovere il campo passwordHash",
    "restartServerWithNewPassword": "Riavvia il server: utilizzerà la nuova password",
    "backToLogin": "Torna all'accesso",
    "forgotPassword": "Ha dimenticato la password?",
    "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
    "Authorization": "Autorizzazione",
    "Content-Disposition": "Disposizione del contenuto",
    "waitingForAuthorization": "Waiting for authorization...",
    "waitingForGoogleAuthorization": "Waiting for Google authorization...",
    "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
    "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
    "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
    "exchangingCodeForTokens": "Exchanging code for tokens...",
    "nodeIncompatibleTitle": "Incompatible Node.js Version",
    "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
    "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
    "nodeIncompatibleHint": "OmniRoute requires Node.js 20.20.2+ (20.x LTS), 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended."
  },
  "landing": {
    "brandName": "OmniRoute",
    "navigateHome": "Naviga verso casa",
    "toggleMenu": "Cambia menu",
    "featuresLink": "Caratteristiche",
    "docsLink": "Documenti",
    "github": "GitHub",
    "versionLive": "La v1.0 è ora disponibile",
    "oneEndpoint": "Un endpoint per",
    "allProviders": "Tutti i fornitori di intelligenza artificiale",
    "heroDescription": "Proxy endpoint AI con dashboard Web: una porta JavaScript di CLIProxyAPI. Funziona perfettamente con Claude Code, OpenAI Codex, Cline, RooCode e altri strumenti CLI.",
    "getStarted": "Inizia",
    "viewOnGithub": "Visualizza su GitHub",
    "powerfulFeatures": "Funzionalità potenti",
    "featuresSubtitle": "Tutto ciò di cui hai bisogno per gestire la tua infrastruttura IA in un unico posto, progettato per essere scalabile.",
    "featureUnifiedEndpointTitle": "Endpoint unificato",
    "featureUnifiedEndpointDesc": "Accedi a tutti i fornitori tramite un unico URL API standard.",
    "featureEasySetupTitle": "Configurazione semplice",
    "featureEasySetupDesc": "Diventa subito operativo in pochi minuti con il comando npx.",
    "featureModelFallbackTitle": "Modello di ripiego",
    "featureModelFallbackDesc": "Cambia automaticamente provider in caso di guasto o latenza elevata.",
    "featureUsageTrackingTitle": "Monitoraggio dell'utilizzo",
    "featureUsageTrackingDesc": "Analisi dettagliate e monitoraggio dei costi su tutti i modelli.",
    "featureOAuthApiKeysTitle": "OAuth e chiavi API",
    "featureOAuthApiKeysDesc": "Gestisci in modo sicuro le credenziali in un unico deposito.",
    "featureCloudSyncTitle": "Sincronizzazione nel cloud",
    "featureCloudSyncDesc": "Sincronizza istantaneamente le tue configurazioni su tutti i dispositivi.",
    "featureCliSupportTitle": "Supporto CLI",
    "featureCliSupportDesc": "Funziona con Claude Code, Codex, Cline, Cursor e altro.",
    "featureDashboardTitle": "Pannello di controllo",
    "featureDashboardDesc": "Dashboard visiva per l'analisi del traffico in tempo reale.",
    "howItWorks": "Come funziona OmniRoute",
    "howItWorksDescription": "I dati fluiscono senza soluzione di continuità dalla tua applicazione attraverso il nostro livello di routing intelligente fino al miglior fornitore per il lavoro.",
    "howItWorksStep1Title": "1. CLI e SDK",
    "howItWorksStep1Description": "Le tue richieste partono dai tuoi strumenti preferiti o dal nostro SDK unificato. Basta cambiare l'URL di base.",
    "howItWorksStep2Title": "2. Hub OmniRoute",
    "howItWorksStep2Description": "Il nostro motore analizza il prompt, controlla lo stato del provider e instrada la latenza o il costo più bassi.",
    "howItWorksStep3Title": "3. Fornitori di IA",
    "howItWorksStep3Description": "La richiesta viene soddisfatta immediatamente da OpenAI, Anthropic, Gemini o altri.",
    "getStartedIn30Seconds": "Inizia in 30 secondi",
    "getStartedDescription": "Installa OmniRoute, configura i tuoi provider tramite dashboard web e inizia a instradare le richieste AI.",
    "installOmniRoute": "Installa OmniRoute",
    "installStepDescription": "Esegui il comando npx per avviare immediatamente il server",
    "openDashboard": "Apri Dashboard",
    "openDashboardStepDescription": "Configura provider e chiavi API tramite interfaccia web",
    "routeRequests": "Richieste di percorso",
    "routeRequestsStepDescription": "Punta i tuoi strumenti CLI su {endpoint}",
    "terminal": "terminale",
    "copy": "Copia",
    "copied": "✓ Copiato",
    "startingOmniRoute": "Avvio di OmniRoute...",
    "serverRunningOnLabel": "Server in esecuzione",
    "dashboardLabel": "Pannello di controllo",
    "readyToRoute": "Pronti per la rotta! ✓",
    "configureProvidersNote": "📝 Configura i fornitori nella dashboard o utilizza le variabili di ambiente",
    "dataLocation": "Posizione dei dati:",
    "dataLocationMacLinux": "macOS/Linux:",
    "dataLocationWindows": "Finestre:",
    "product": "Prodotto",
    "dashboardLink": "Pannello di controllo",
    "changelog": "Registro delle modifiche",
    "resources": "Risorse",
    "documentation": "Documentazione",
    "npm": "NPM",
    "legal": "Legale",
    "mitLicense": "Licenza del MIT",
    "footerTagline": "L'endpoint unificato per la generazione di IA. Connetti, instrada e gestisci i tuoi fornitori di intelligenza artificiale con facilità.",
    "copyright": "© {year} OmniRoute. Tutti i diritti riservati.",
    "flowToolClaudeCode": "Codice Claudio",
    "flowToolOpenAICodex": "Codice OpenAI",
    "flowToolCline": "Cline",
    "flowToolCursor": "Cursore",
    "flowProviderOpenAI": "OpenAI",
    "flowProviderAnthropic": "Antropico",
    "flowProviderGemini": "Gemelli",
    "flowProviderGithubCopilot": "Copilota GitHub",
    "interactiveDiagram": "Diagramma interattivo visibile sul desktop",
    "ctaTitle": "Pronto a semplificare la tua infrastruttura AI?",
    "ctaDescription": "Unisciti agli sviluppatori che stanno ottimizzando le loro integrazioni IA con OmniRoute. Open source e avvio gratuito.",
    "startFree": "Inizia gratis",
    "readDocumentation": "Leggi la documentazione"
  },
  "docs": {
    "title": "Documentazione",
    "quickStart": "Avvio rapido",
    "deploymentGuides": "Guide alla distribuzione",
    "features": "Caratteristiche",
    "supportedProviders": "Provider supportati",
    "supportedProvidersToc": "Fornitori",
    "commonUseCases": "Casi d'uso comuni",
    "clientCompatibility": "Compatibilità con il cliente",
    "protocolsToc": "Protocols",
    "apiReference": "Riferimento API",
    "managementApiReference": "Management API Reference",
    "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
    "method": "Metodo",
    "path": "Sentiero",
    "notes": "Note",
    "modelPrefixes": "Prefissi del modello",
    "prefix": "Prefisso",
    "troubleshooting": "Risoluzione dei problemi",
    "supportsChat": "Supporta sia gli endpoint di chat che quelli di risposta.",
    "oauthAutoRefresh": "Connessione OAuth con aggiornamento automatico del token.",
    "fullStreaming": "Supporto streaming completo per tutti i modelli.",
    "docsLabel": "Documenti",
    "docsHeroDescription": "Gateway AI per LLM multi-provider. Un endpoint per OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor e oltre 20 altri provider.",
    "openDashboard": "Apri Dashboard",
    "endpointPage": "Pagina dell'endpoint",
    "github": "GitHub",
    "reportIssue": "Segnala problema",
    "onThisPage": "In questa pagina",
    "documentationVersion": "Documentazione - v{version}",
    "quickStartStep1Title": "1. Installa ed esegui",
    "quickStartStep1Prefix": "Correre",
    "quickStartStep1Middle": "oppure clona da GitHub ed esegui",
    "quickStartStep2Title": "2. Crea la chiave API",
    "quickStartStep2Text": "Vai su Endpoint -> Chiavi registrate. Genera una chiave per ambiente.",
    "quickStartStep3Title": "3. Connetti i fornitori",
    "quickStartStep3Text": "Aggiungi account provider tramite accesso OAuth, chiave API o connessione automatica a livello gratuito.",
    "quickStartStep4Title": "4. Imposta l'URL di base del cliente",
    "quickStartStep4Prefix": "Punta il tuo client IDE o API a",
    "quickStartStep4Suffix": "Utilizza il prefisso del provider, ad esempio",
    "deploySetupTitle": "Guida all'installazione",
    "deploySetupText": "Installazione dettagliata, configurazione dell'ambiente e procedura dettagliata per la prima esecuzione di OmniRoute.",
    "deployElectronTitle": "Desktop elettronico",
    "deployElectronText": "Esegui OmniRoute come applicazione desktop nativa su Windows, macOS e Linux.",
    "deployDockerTitle": "Docker",
    "deployDockerText": "Distribuzione containerizzata con Docker Compose; pronto per stack di produzione e Kubernetes.",
    "deployVmTitle": "Macchina virtuale",
    "deployVmText": "Ospita autonomamente su qualsiasi VM Linux. Include unità di sistema, rotazione dei registri e strumenti di backup.",
    "deployFlyTitle": "Fly.io",
    "deployFlyText": "Distribuisci su Fly.io edge runtime con un fly.toml e un singolo comando di distribuzione.",
    "deployPwaTitle": "PWA",
    "deployPwaText": "Installa OmniRoute come app Web progressiva su browser Android, iOS e desktop.",
    "deployTermuxTitle": "Termux (Android)",
    "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
    "featureRoutingTitle": "Routing multi-provider",
    "featureRoutingText": "Instrada le richieste a oltre 30 fornitori di intelligenza artificiale attraverso un singolo endpoint compatibile con OpenAI. Supporta API di chat, risposte, audio e immagini.",
    "featureCombosTitle": "Combo e bilanciamento",
    "featureCombosText": "Crea combinazioni di modelli con catene di fallback e strategie di bilanciamento: round robin, priorità, casuale, meno utilizzato e con costi ottimizzati.",
    "featureUsageTitle": "Monitoraggio dell'utilizzo e dei costi",
    "featureUsageText": "Conteggio dei token in tempo reale, calcolo dei costi per provider/modello e suddivisione dettagliata dell'utilizzo per chiave API e account.",
    "featureAnalyticsTitle": "Pannello di analisi",
    "featureAnalyticsText": "Analisi visiva con grafici per richieste, token, errori, latenza, costi e popolarità del modello nel tempo.",
    "featureHealthTitle": "Monitoraggio sanitario",
    "featureHealthText": "Controlli dello stato in tempo reale, stato del fornitore, stati degli interruttori automatici e rilevamento automatico dei limiti di velocità con backoff esponenziale.",
    "featureCliTitle": "Strumenti CLI",
    "featureCliText": "Gestisci le configurazioni IDE, esporta/importa backup, scopri i profili codex e configura le impostazioni dalla dashboard.",
    "featureSecurityTitle": "Sicurezza e politiche",
    "featureSecurityText": "Autenticazione con chiave API, filtraggio IP, protezione prompt injection, policy di dominio, gestione delle sessioni e registrazione di controllo.",
    "featureCloudSyncTitle": "Sincronizzazione nel cloud",
    "featureCloudSyncText": "Sincronizza la tua configurazione con Cloudflare Workers per l'accesso remoto con credenziali crittografate e failover automatico.",
    "providersAcrossConnectionTypes": "{count} provider in tre tipi di connessione.",
    "manageProviders": "Gestisci fornitori",
    "providersCount": "{count} fornitori",
    "providerTypeFree": "Livello gratuito",
    "providerTypeOAuth": "OAuth",
    "providerTypeApiKey": "Chiave API",
    "useCaseSingleEndpointTitle": "Endpoint unico per molti provider",
    "useCaseSingleEndpointText": "Puntare i client a un URL di base e instradarli in base al prefisso del modello (ad esempio: gh/, cc/, kr/, openai/).",
    "useCaseFallbackTitle": "Fallback e cambio di modello con combo",
    "useCaseFallbackText": "Crea modelli combinati in Dashboard e mantieni stabile la configurazione del client mentre i fornitori ruotano internamente.",
    "useCaseUsageVisibilityTitle": "Visibilità sull'utilizzo, sui costi e sul debug",
    "useCaseUsageVisibilityText": "Tieni traccia dei token e dei costi per provider, account e chiave API nelle schede Utilizzo e Analisi.",
    "clientCherryStudioTitle": "Studio della ciliegia",
    "baseUrlLabel": "URL di base",
    "chatEndpointLabel": "Endpoint della chat",
    "modelRecommendationLabel": "Raccomandazione del modello: prefisso esplicito",
    "clientCodexTitle": "Modelli Copilot Codex/GitHub",
    "clientCodexBullet1": "Utilizza gli ID modello con",
    "clientCodexBullet2": "I modelli della famiglia Codex si instradano automaticamente verso",
    "clientCodexBullet3": "I modelli non Codex continuano",
    "clientCursorTitle": "Cursore IDE",
    "clientCursorBullet1": "Utilizzo",
    "clientCursorBullet1Suffix": "prefisso per i modelli Cursor.",
    "clientCursorBullet2": "Connessione OAuth: accedi dalla pagina Provider.",
    "clientClaudeTitle": "Codice Claude / Antigravità",
    "clientClaudeBullet1Prefix": "Utilizzo",
    "clientClaudeBullet1Middle": "(Claude) o",
    "clientClaudeBullet1Suffix": "(Antigravità).",
    "clientWindsurfTitle": "Windsurf",
    "clientWindsurfBullet1": "Utilizza OmniRoute come URL di base compatibile con OpenAI e mantieni i prefissi del provider espliciti per il routing deterministico.",
    "clientWindsurfBullet2": "Punta i modelli a `/v1/chat/completions` per il traffico generale e preserva `/v1/responses` per i flussi in stile Codex.",
    "clientWindsurfBullet3": "Utilizza Dashboard -> Strumenti CLI per una guida alla configurazione di Windsurf già pronta.",
    "clientClineTitle": "Cline",
    "clientClineBullet1": "Cline funziona meglio con prefissi provider/modello espliciti in modo che il router non debba mai indovinare il backend.",
    "clientClineBullet2": "Utilizza \"/v1/chat/completions\" per i modelli generali e riutilizza lo stesso URL di base OmniRoute su account diversi.",
    "clientClineBullet3": "Utilizza il dashboard Providers per convalidare la chiave OAuth/API prima di eseguire il debug dei problemi di runtime di Cline.",
    "clientKimiTitle": "Codifica Kimi",
    "clientKimiBullet1": "Utilizza OmniRoute come URL di base stabile ruotando gli account o le combinazioni di provider sottostanti.",
    "clientKimiBullet2": "Preferire modelli con prefisso nei flussi di codifica in modo che il fallback e la traccia di controllo rimangano espliciti.",
    "clientKimiBullet3": "Utilizza `/v1/responses` quando desideri un routing in stile Responses nativo per i client che utilizzano strumenti.",
    "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": "Endpoint chat compatibile con OpenAI (impostazione predefinita).",
    "endpointResponsesNote": "Endpoint API di risposta (Codex, serie o).",
    "endpointModelsNote": "Catalogo dei modelli per tutti i fornitori collegati.",
    "endpointAudioNote": "Trascrizione audio (Deepgram, AssemblyAI).",
    "endpointSpeechNote": "Generazione sintesi vocale (ElevenLabs, OpenAI TTS).",
    "endpointEmbeddingsNote": "Generazione embedding di testo (OpenAI, Cohere, Voyage).",
    "endpointImagesNote": "Generazione di immagini (NanoBanana).",
    "endpointRewriteChatNote": "Riscrivere l'helper per i client senza /v1.",
    "endpointRewriteResponsesNote": "Riscrivi l'helper per le risposte senza /v1.",
    "endpointRewriteModelsNote": "Riscrivere l'helper per l'individuazione dei modelli senza /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": "Utilizzare il prefisso del provider prima del nome del modello per instradare a un provider specifico. Esempio:",
    "modelPrefixesDescriptionEnd": "percorsi verso GitHub Copilot.",
    "provider": "Fornitore",
    "type": "Tipo",
    "troubleshootingModelRouting": "Se il client non riesce con il routing del modello, utilizzare un provider/modello esplicito (ad esempio: gh/gpt-5.1-codex).",
    "troubleshootingAmbiguousModels": "Se ricevi errori di modello ambigui, scegli il prefisso del provider anziché un semplice ID modello.",
    "troubleshootingCodexFamily": "Per i modelli della famiglia GitHub Codex, mantieni il modello come gh/codex-model; il router seleziona/risponde automaticamente.",
    "troubleshootingTestConnection": "Utilizza Dashboard > Provider > Verifica connessione prima di effettuare test da IDE o client esterni.",
    "troubleshootingCircuitBreaker": "Se un fornitore mostra l'interruttore aperto, attendi il raffreddamento o controlla la pagina Salute per i dettagli.",
    "troubleshootingOAuth": "Per i provider OAuth, eseguire nuovamente l'autenticazione se i token scadono. Controlla l'indicatore di stato della carta del fornitore.",
    "endpointCompletionsNote": "Endpoint di completamenti legacy per la generazione di testo.",
    "endpointModerationsNote": "Moderazione dei contenuti e classificazione della sicurezza.",
    "endpointRerankNote": "Riclassificazione dei documenti per la generazione aumentata di recupero (Cohere, Jina).",
    "endpointSearchNote": "Ricerca sul Web con 5 provider (Serper, Brave, Exa, Tavily, Perplexity).",
    "endpointSearchAnalyticsNote": "Analisi e metriche per le richieste di ricerca.",
    "endpointVideoNote": "Generazione video (flussi di lavoro ComfyUI, SD WebUI).",
    "endpointMusicNote": "Generazione di musica tramite flussi di lavoro ComfyUI.",
    "endpointMessagesNote": "Endpoint dei messaggi nativi antropici.",
    "endpointCountTokensNote": "Contare i token per un determinato payload del messaggio.",
    "endpointFilesNote": "Caricamento file per input multimodali.",
    "endpointBatchesNote": "Elaborazione batch per richieste API in blocco.",
    "endpointWsNote": "Endpoint WebSocket per lo streaming in tempo reale.",
    "mgmtProvidersListNote": "Elenca tutte le connessioni dei provider registrati.",
    "mgmtProvidersCreateNote": "Crea una nuova connessione al provider.",
    "mgmtProvidersUpdateNote": "Aggiorna una connessione al provider esistente.",
    "mgmtProvidersDeleteNote": "Elimina una connessione al provider.",
    "mgmtProvidersTestNote": "Testare la connettività e l'autenticazione per un provider.",
    "mgmtProvidersModelsNote": "Elenca i modelli disponibili per un fornitore specifico.",
    "mgmtSettingsGetNote": "Recupera le impostazioni correnti dell'applicazione.",
    "mgmtSettingsUpdateNote": "Aggiorna le impostazioni dell'applicazione.",
    "mgmtPayloadRulesGetNote": "Ottieni le regole di trasformazione del carico utile.",
    "mgmtPayloadRulesUpdateNote": "Aggiorna le regole di trasformazione del payload.",
    "mcpToolsTitle": "Strumenti MCP",
    "mcpToolsDescription": "OmniRoute espone gli strumenti {count} tramite Model Context Protocol per l'orchestrazione degli agenti.",
    "mcpToolsCount": "{count} strumenti",
    "mcpToolsToc": "Strumenti MCP",
    "mcpToolsRoutingTitle": "Instradamento e scoperta",
    "mcpToolsRoutingDesc": "Controlli dello stato, gestione combinata, monitoraggio delle quote, reporting dei costi e accesso al catalogo dei modelli.",
    "mcpToolsOperationsTitle": "Operazioni e strategia",
    "mcpToolsOperationsDesc": "Simulazione del percorso, controllo del budget, cambio di strategia, profili di resilienza e metriche dei fornitori.",
    "mcpToolsCacheTitle": "Gestione della cache",
    "mcpToolsCacheDesc": "Visualizza le statistiche della cache e svuota le cache semantiche o delle firme.",
    "mcpToolsCompressionTitle": "Motori di compressione",
    "mcpToolsCompressionDesc": "Configura la compressione RTK/Brotli, scambia motori e controlla l'analisi della compressione tramite combo.",
    "mcpToolsOneProxyTitle": "1Proxy/Tunnel",
    "mcpToolsOneProxyDesc": "Gestisci i proxy in uscita, ruota gli IP residenziali e controlla lo stato dei proxy.",
    "mcpToolsMemoryTitle": "Memoria",
    "mcpToolsMemoryDesc": "Cerca, aggiungi e cancella voci di memoria conversazionale persistente.",
    "mcpToolsSkillsTitle": "Competenze",
    "mcpToolsSkillsDesc": "Elenca, abilita, esegui e monitora l'esecuzione delle competenze personalizzate.",
    "featureAutoComboTitle": "Combinazione automatica",
    "featureAutoComboText": "Crea automaticamente combinazioni ottimizzate in base ai provider connessi, ai modelli di utilizzo e alle funzionalità del modello.",
    "featureSearchTitle": "Ricerca sul Web",
    "featureSearchText": "Ricerca web integrata con 5 fornitori (Serper, Brave, Exa, Tavily, Perplexity) inclusi analisi e monitoraggio dei costi.",
    "featureMemoryTitle": "Sistema di memoria",
    "featureMemoryText": "Memoria conversazionale persistente con estrazione, iniezione, recupero e riepilogo tra le sessioni.",
    "featureSkillsTitle": "Quadro delle competenze",
    "featureSkillsText": "Sistema di competenze estensibile con competenze integrate e personalizzate, esecuzione sandbox, intercettazione delle richieste e inserimento del contesto.",
    "featureAcpTitle": "Comunicazione dell'agente",
    "featureAcpText": "Registro ACP (Agent Communication Protocol) per la gestione dei flussi di lavoro da agente ad agente e l'orchestrazione degli strumenti.",
    "protocolAcpTitle": "ACP (comunicazione con l'agente)",
    "protocolAcpDesc": "Registra e gestisci gli agenti tramite il registro ACP per la comunicazione tra agenti e la condivisione degli strumenti.",
    "protocolAcpStep1": "Passare a Dashboard → Agenti per visualizzare gli agenti ACP registrati.",
    "protocolAcpStep2": "Registra nuovi agenti con funzionalità e configurazione dell'endpoint.",
    "protocolAcpStep3": "Utilizzare gli strumenti CLI per configurare i canali di comunicazione dell'agente."
  },
  "legal": {
    "privacyPolicy": "politica sulla riservatezza",
    "termsOfService": "Termini di servizio",
    "providerConfigurations": "Configurazioni del fornitore",
    "apiKeys": "Chiavi API",
    "usageLogs": "Registri di utilizzo",
    "applicationSettings": "Impostazioni dell'applicazione",
    "viewExportAnalytics": "Visualizza ed esporta analisi sull'utilizzo",
    "clearHistory": "Cancella la cronologia di utilizzo in qualsiasi momento",
    "configureRetention": "Configurare i criteri di conservazione dei log",
    "backupRestore": "Esegui il backup e ripristina il tuo database",
    "privacyMetadataTitle": "Informativa sulla privacy | OmniRoute",
    "privacyMetadataDescription": "Informativa sulla privacy per il router proxy API OmniRoute AI.",
    "termsMetadataTitle": "Termini di servizio | OmniRoute",
    "termsMetadataDescription": "Termini di servizio per il router proxy API OmniRoute AI.",
    "backToHome": "Ritorno a casa",
    "lastUpdated": "Ultimo aggiornamento: {date}",
    "policyLastUpdatedDate": "13 febbraio 2026",
    "listSeparator": "-",
    "questionsVisit": "Domande? Visita il nostro",
    "githubRepository": "Repositorio GitHub",
    "privacySection1Title": "1. Architettura locale-prima",
    "privacySection1Text": "OmniRoute è progettato come un'applicazione local-first. Tutta l'elaborazione e l'archiviazione dei dati avviene interamente sul tuo computer. Non esiste un server centralizzato che raccoglie le tue informazioni.",
    "privacySection2Title": "2. Dati che conserviamo",
    "privacyDataStoredIn": "I seguenti dati vengono archiviati localmente in",
    "privacyDataProviderConfigurationsDesc": "URL di connessione, tipi di provider e impostazioni di priorità",
    "privacyDataApiKeysDesc": "crittografati e archiviati localmente per l'autenticazione con i fornitori di intelligenza artificiale",
    "privacyDataUsageLogsDesc": "conteggi delle richieste, utilizzo dei token, nomi dei modelli, timestamp e tempi di risposta",
    "privacyDataApplicationSettingsDesc": "preferenze del tema, strategia di routing e configurazioni combinate",
    "privacySection3Title": "3. Nessuna telemetria",
    "privacySection3Text": "OmniRoute non raccoglie dati di telemetria, analisi o rapporti sugli arresti anomali. Nessun dato viene inviato a noi o a terzi. I tuoi modelli di utilizzo, le chiamate API e le configurazioni rimangono completamente privati.",
    "privacySection4Title": "4. Fornitori di IA di terze parti",
    "privacySection4Text": "Quando effettui chiamate API tramite OmniRoute, le tue richieste vengono inoltrate ai fornitori di intelligenza artificiale che hai configurato (ad esempio: OpenAI, Anthropic, Google). Questi fornitori hanno le proprie politiche sulla privacy che regolano il modo in cui gestiscono i tuoi dati. Si prega di rivedere:",
    "privacyOpenAiPolicy": "Informativa sulla privacy di OpenAI",
    "privacyAnthropicPolicy": "Informativa sulla privacy antropica",
    "privacyGooglePolicy": "Informativa sulla privacy di Google",
    "privacySection5Title": "5. Sincronizzazione cloud (opzionale)",
    "privacySection5Text": "Se abiliti la funzionalità opzionale di sincronizzazione cloud, le configurazioni del provider e le chiavi API potrebbero essere trasmesse a un endpoint cloud configurato. Questa funzionalità è disabilitata per impostazione predefinita e richiede un consenso esplicito.",
    "privacySection6Title": "6. Registrazione",
    "privacyLoggingIntro": "I registri delle richieste possono essere configurati tramite le impostazioni del dashboard. Puoi:",
    "privacySection7Title": "7. I tuoi diritti",
    "privacySection7TextStart": "Poiché tutti i dati sono archiviati localmente, hai il pieno controllo. Puoi cancellare i tuoi dati in qualsiasi momento rimuovendo il",
    "privacySection7TextEnd": "directory o utilizzando le funzionalità di backup e ripristino del database nel dashboard.",
    "termsSection1Title": "1. Panoramica",
    "termsSection1Text": "OmniRoute è un router proxy API AI locale che funziona interamente sul tuo computer. Indirizza le richieste a più fornitori di intelligenza artificiale con bilanciamento del carico, failover e monitoraggio dell'utilizzo.",
    "termsSection2Title": "2. Responsabilità dell'utente",
    "termsResponsibilityApiKeys": "Sei l'unico responsabile della gestione delle tue chiavi API e credenziali per fornitori di intelligenza artificiale di terze parti (OpenAI, Anthropic, Google, ecc.).",
    "termsResponsibilityCompliance": "Devi rispettare i termini di servizio di ciascun fornitore di intelligenza artificiale alla cui API accedi tramite OmniRoute.",
    "termsResponsibilitySecurity": "L'utente è responsabile della sicurezza dell'installazione locale di OmniRoute, inclusa l'impostazione di una password e la limitazione dell'accesso alla rete.",
    "termsSection3Title": "3. Come funziona",
    "termsSection3Text": "OmniRoute funge da proxy intermediario. Le chiamate API inviate a OmniRoute vengono tradotte e inoltrate ai provider AI configurati. OmniRoute non modifica il contenuto delle richieste o delle risposte oltre la necessaria traduzione del protocollo.",
    "termsSection4Title": "4. Trattamento dei dati",
    "termsDataStoredLocally": "Tutti i dati vengono archiviati localmente sul tuo computer in un database SQLite.",
    "termsNoTransmission": "OmniRoute non trasmette dati a server esterni a meno che non abiliti esplicitamente le funzionalità di sincronizzazione cloud.",
    "termsDataLocationText": "I log di utilizzo, le chiavi API e la configurazione sono archiviati in",
    "termsSection5Title": "5. Dichiarazione di non responsabilità",
    "termsSection5Text": "OmniRoute viene fornito \"così com'è\" senza garanzie di alcun tipo. Non siamo responsabili per eventuali costi sostenuti per l'utilizzo dell'API, interruzioni del servizio o perdita di dati. Mantieni sempre i backup della tua configurazione.",
    "termsSection6Title": "6. Sorgente aperta",
    "termsSection6Text": "OmniRoute è un software open source. Sei libero di esaminarlo, modificarlo e distribuirlo secondo i termini della sua licenza."
  },
  "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": "Strumenti CLI e destinazioni agente: qual è la differenza?",
    "comparisonCliToolsLabel": "Pagina Strumenti CLI",
    "comparisonCliToolsTitle": "Il tuo IDE invia richieste tramite OmniRoute",
    "comparisonCliToolsDesc": "Configura Claude Code, Codex, Cursor e altri IDE per utilizzare OmniRoute come URL di base API. OmniRoute funge da proxy, instradando le richieste ai provider configurati.",
    "comparisonAgentsLabel": "Questa pagina (Obiettivi dell'agente)",
    "comparisonAgentsTitle": "OmniRoute invia richieste agli strumenti CLI locali",
    "comparisonAgentsDesc": "OmniRoute può generare file binari della CLI locale (claude, codex, goose) come backend di esecuzione. Lo strumento CLI elabora la richiesta utilizzando la propria autenticazione e restituisce il risultato.",
    "comparisonSummary": "In breve: Strumenti CLI = configura gli strumenti in modo che puntino a OmniRoute. Destinazioni agente = OmniRoute utilizza gli strumenti come endpoint.",
    "agentUseCaseHint": "Può essere utilizzato come destinazione di esecuzione tramite il protocollo ACP",
    "flowDiagramClient": "Applicazione cliente",
    "flowDiagramClientDesc": "SDK, API o servizio upstream",
    "flowDiagramOmniRoute": "OmniRoute",
    "flowDiagramOmniRouteDesc": "Riceve la richiesta e seleziona il target",
    "flowDiagramSpawn": "Processo di generazione",
    "flowDiagramSpawnDesc": "Avvia il binario CLI tramite stdio",
    "flowDiagramCli": "Agente CLI",
    "flowDiagramCliDesc": "Processi con la propria autenticazione/modello",
    "fingerprintSettingsHint": "È possibile configurare la corrispondenza dell'impronta digitale CLI (mascherare le richieste come strumenti CLI specifici).",
    "settingsRoutingLink": "Impostazioni/Percorso",
    "openSettings": "Impostazioni",
    "copyRawUrlTitle": "Copia l'URL non elaborato negli appunti",
    "copied": "Copiato!",
    "copyUrl": "Copia l'URL",
    "startHere": "Inizia qui",
    "badgeNew": "Nuovo",
    "viewOnGithub": "Visualizza su GitHub",
    "howToUse": "Come usare",
    "browseAllSkillsOnGithub": "Sfoglia tutte le competenze su GitHub",
    "apiSkills": "Competenze API",
    "cliSkills": "Competenze CLI",
    "apiSkillsSubtitle": "__MISSING__:{count} skills — control OmniRoute via REST / HTTP",
    "cliSkillsSubtitle": "__MISSING__:{count} skills — control OmniRoute via the omniroute terminal binary",
    "howToUseStep1": "__MISSING__:Click <bold>{copyUrl}</bold> on the skill you want your agent to know about.",
    "howToUseStep2": "__MISSING__:In your AI agent (Claude, Cursor, Cline…), say:",
    "howToUseStep2Code": "__MISSING__:Use the skill at [pasted-url]",
    "howToUseStep3": "__MISSING__:The agent fetches the SKILL.md and learns OmniRoute's API or CLI — no manual docs needed."
  },
  "cloudAgents": {
    "title": "Agenti cloud",
    "description": "Gestire agenti di codifica autonomi (Jules, Devin, Codex Cloud)",
    "loading": "Caricamento attività...",
    "aboutTitle": "Informazioni sugli agenti cloud",
    "aboutDescription": "Gli agenti cloud sono assistenti remoti di codifica AI in grado di eseguire attività in modo autonomo. Funzionano in modo diverso dagli agenti CLI locali: interagisci con loro tramite l'API di OmniRoute.",
    "howItWorksTitle": "Come funziona:",
    "howItWorksDesc": "Crea un'attività → L'agente analizza e propone un piano → Tu approvi → L'agente esegue → Risultati restituiti",
    "newTaskTitle": "Crea nuova attività",
    "newTaskDescription": "Avvia una nuova attività con un agente cloud",
    "selectAgent": "Seleziona Agente",
    "taskDescription": "Descrizione dell'attività",
    "taskDescriptionPlaceholder": "Descrivi cosa vuoi che faccia l'agente...",
    "startTask": "Avvia attività",
    "tasks": "Compiti",
    "taskDetail": "Dettagli attività",
    "noTasks": "Nessuna attività ancora. Creane uno per iniziare.",
    "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": "Compito senza titolo",
    "created": "Creato",
    "conversation": "Conversazione",
    "result": "Risultato",
    "error": "Errore",
    "planReady": "Piano pronto per l'approvazione",
    "approvePlan": "Approvare il piano",
    "rejectPlan": "Rifiuta e annulla",
    "sendMessagePlaceholder": "Invia un messaggio all'agente...",
    "cancel": "Cancellare",
    "delete": "Eliminare",
    "selectTaskPrompt": "Seleziona un'attività per visualizzare i dettagli",
    "statusPending": "In attesa di",
    "statusRunning": "Corsa",
    "statusWaitingApproval": "In attesa di approvazione",
    "statusCompleted": "Completato",
    "statusFailed": "Fallito",
    "statusCancelled": "Annullato",
    "repositoryName": "Nome dell'archivio",
    "repositoryUrl": "URL dell'archivio",
    "branch": "Ramo"
  },
  "templateNames": {
    "simple-chat": "Simple Chat",
    "streaming": "Streaming",
    "system-prompt": "System Prompt",
    "thinking": "Thinking",
    "tool-calling": "Tool Calling",
    "multi-turn": "Multi-turn",
    "vision": "Visione",
    "schema-coercion": "Coercizione dello schema"
  },
  "templateDescriptions": {
    "simple-chat": "Basic chat template",
    "streaming": "Streaming template",
    "system-prompt": "System prompt template",
    "thinking": "Thinking template",
    "tool-calling": "Tool calling template",
    "multi-turn": "Multi-turn template",
    "vision": "Modello multimodale con input di immagini",
    "schema-coercion": "Applicazione di schemi JSON/output strutturato"
  },
  "templatePayloads": {
    "simpleChat": {
      "system": "Sei un utile assistente AI.",
      "userGreeting": "Ciao! Come posso aiutarti oggi?"
    },
    "streaming": {
      "prompt": "Scrivi una storia su"
    },
    "systemPrompt": {
      "question": "Qual è il significato della vita?",
      "systemInstruction": "Fornisci una risposta ponderata e filosofica."
    },
    "thinking": {
      "question": "Spiegare l'informatica quantistica"
    },
    "toolCalling": {
      "cityNameDescription": "Il nome della città per la quale ottenere il meteo",
      "toolDescription": "Ottieni il meteo attuale per una località",
      "userWeather": "Che tempo fa a Tokio?"
    },
    "multiTurn": {
      "system": "Sei un assistente utile.",
      "assistantExample": "Sarei felice di aiutarti in questo.",
      "userInitial": "Ho bisogno di aiuto con",
      "userFollowUp": "Puoi approfondire questo argomento?"
    }
  },
  "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": "Replica del ragionamento",
    "reasoningCacheDesc": "Conserva il pensiero del modello per i flussi di chiamata degli strumenti multigiro",
    "reasoningEntries": "Voci attive",
    "reasoningReplayRate": "Velocità di riproduzione",
    "reasoningReplays": "Replay totali",
    "reasoningCharsCached": "Caratteri memorizzati nella cache",
    "reasoningMisses": "Mancati cache",
    "reasoningByProvider": "Per fornitore",
    "reasoningByModel": "Per modello",
    "reasoningRecentEntries": "Voci recenti",
    "reasoningToolCallId": "ID chiamata strumento",
    "reasoningChars": "Caratteri",
    "reasoningAge": "Età",
    "reasoningView": "Visualizzazione",
    "reasoningDetail": "Contenuto del ragionamento",
    "reasoningBehavior": "Comportamento",
    "reasoningBehaviorCapture": "Cattura il contenuto del ragionamento dalle risposte in streaming",
    "reasoningBehaviorReplay": "Reinietta al turno successivo quando il cliente lo omette",
    "reasoningBehaviorFallback": "Prima la memoria con fallback SQLite per il ripristino in caso di arresto anomalo",
    "reasoningBehaviorTtl": "TTL: 2 ore | Voci massime: 2.000 (memoria)",
    "reasoningBehaviorModels": "Supportato: DeepSeek, Kimi, Qwen-Thinking, GLM",
    "reasoningClearAll": "Cancella cache del ragionamento",
    "reasoningClearSuccess": "Cancellate le voci della cache dei ragionamenti {count}",
    "reasoningClearError": "Impossibile cancellare la cache del ragionamento",
    "reasoningNoData": "Nessuna voce di ragionamento ancora memorizzata nella cache. Le voci vengono visualizzate quando i modelli di pensiero utilizzano la chiamata degli strumenti.",
    "cachePerformanceRetry": "Riprova",
    "cachePerformanceHitRate": "Tasso di successo",
    "cachePerformanceAvgLatency": "Latenza media (ms)",
    "cachePerformanceP95Latency": "p95 Latenza (ms)",
    "retry": "Riprova",
    "reasoningAvgChars": "Caratteri medi",
    "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": "Globale",
    "levelProvider": "Fornitore",
    "levelCombo": "Combinato",
    "levelKey": "Chiave",
    "levelDirect": "Diretto (senza delega)",
    "titleGlobal": "Configurazione proxy globale",
    "titleLevel": "{level} Proxy — {label}",
    "loading": "Caricamento della configurazione del proxy...",
    "inheritingFrom": "Ereditando da",
    "source": "Fonte",
    "savedProxy": "Proxy salvato",
    "custom": "Costume",
    "selectSavedProxyPlaceholder": "Seleziona proxy salvato...",
    "proxyType": "Tipo di procura",
    "host": "Ospite",
    "hostPlaceholder": "1.2.3.4 o proxy.example.com",
    "port": "Porta",
    "authOptional": "Autenticazione (facoltativa)",
    "username": "Nome utente",
    "usernamePlaceholder": "Nome utente",
    "password": "Password",
    "passwordPlaceholder": "Password",
    "connected": "Collegato",
    "ip": "IP:",
    "connectionFailed": "Connessione non riuscita",
    "testConnection": "Testare la connessione",
    "clear": "Chiaro",
    "cancel": "Cancellare",
    "save": "Salva",
    "errorSelectSavedProxy": "Seleziona prima un proxy salvato.",
    "errorSelectProxyFirst": "Seleziona prima un proxy.",
    "errorProxyNotFound": "Proxy selezionato non trovato.",
    "errorClearSavedProxy": "Impossibile cancellare il proxy salvato",
    "errorSaveProxy": "Impossibile salvare la configurazione del proxy",
    "errorClearProxy": "Impossibile cancellare la configurazione del proxy",
    "errorSocks5Hidden": "SOCKS5 è configurato ma nascosto perché NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
  },
  "oauthModal": {
    "title": "Connetti {providerName}",
    "waiting": "In attesa di autorizzazione",
    "completeAuthInPopup": "Completa l'autorizzazione nel popup.",
    "popupClosedHint": "Se il popup si chiude senza reindirizzare indietro (ad esempio Qoder), questa finestra di dialogo passerà automaticamente alla modalità di immissione manuale dell'URL.",
    "popupBlocked": "Popup bloccato? Inserisci l'URL manualmente",
    "deviceCodeVisitUrl": "Visita l'URL seguente e inserisci il codice:",
    "deviceCodeVerificationUrl": "URL di verifica",
    "deviceCodeYourCode": "Il tuo codice",
    "deviceCodeWaiting": "In attesa di autorizzazione...",
    "googleOAuthWarning": "Accesso remoto + Google OAuth: le credenziali predefinite accettano solo reindirizzamenti a <code>localhost</code>. Dopo l'autorizzazione, il tuo browser proverà ad aprire <code>localhost</code>: copia l'URL completo e incollalo di seguito. Per un utilizzo completamente remoto senza questo passaggio manuale, <a>configura le tue credenziali OAuth</a>.",
    "remoteAccessInfo": "Accesso remoto: poiché stai accedendo a OmniRoute da remoto, dopo l'autorizzazione vedrai una pagina di errore (localhost non trovato). Questo è normale: basta copiare l'URL completo dalla barra degli indirizzi del browser e incollarlo di seguito.",
    "step1OpenUrl": "Passaggio 1: apri questo URL nel tuo browser",
    "copy": "Copia",
    "step2PasteCallback": "Passaggio 2: incolla qui l'URL di richiamata o il codice di autorizzazione",
    "step2Hint": "Dopo l'autorizzazione, incolla l'URL di richiamata completo. Per Claude Code e Cline, puoi anche incollare direttamente il codice di autenticazione, ad es. <code>code#state</code>.",
    "connect": "Collegare",
    "cancel": "Cancellare",
    "success": "Connessione riuscita!",
    "successMessage": "Il tuo account {providerName} è stato collegato.",
    "done": "Fatto",
    "error": "Connessione non riuscita",
    "tryAgain": "Riprova"
  },
  "cursorAuthModal": {
    "title": "Connetti l'IDE del cursore",
    "autoDetecting": "Token di rilevamento automatico...",
    "readingFromCursor": "Lettura da Cursor IDE o cursor-agent",
    "tokensAutoDetected": "Token rilevati automaticamente con successo da Cursor IDE!",
    "cursorNotDetected": "IDE del cursore non rilevato. Incolla manualmente il token.",
    "accessToken": "Gettone di accesso",
    "required": "*",
    "accessTokenPlaceholder": "Il token di accesso si popolerà automaticamente...",
    "machineId": "ID macchina",
    "optional": "(opzionale)",
    "machineIdPlaceholder": "L'ID macchina verrà compilato automaticamente...",
    "importing": "Importazione...",
    "importToken": "Importa gettone",
    "cancel": "Cancellare",
    "errorAutoDetect": "Impossibile rilevare automaticamente i token",
    "errorAutoDetectFailed": "Il rilevamento automatico dei token non è riuscito",
    "errorEnterToken": "Inserisci il token di accesso",
    "errorImportFailed": "Importazione non riuscita"
  },
  "pricingModal": {
    "title": "Configurazione dei prezzi",
    "loading": "Caricamento dati sui prezzi...",
    "pricingRatesFormat": "Formato delle tariffe dei prezzi",
    "ratesDescription": "Tutte le tariffe sono in <strong>dollari per milione di token</strong> ($/1 milione di token). Esempio: un tasso di input di 2,50 significa $ 2,50 per 1.000.000 di token di input.",
    "model": "Modello",
    "input": "Ingresso",
    "output": "Produzione",
    "cached": "Memorizzato nella cache",
    "reasoning": "Ragionamento",
    "cacheCreation": "Creazione della cache",
    "noPricingData": "Nessun dato sui prezzi disponibile",
    "resetToDefaults": "Ripristina le impostazioni predefinite",
    "cancel": "Cancellare",
    "saving": "Risparmio...",
    "saveChanges": "Salva modifiche",
    "resetConfirm": "Ripristinare tutti i prezzi ai valori predefiniti? Questa operazione non può essere annullata.",
    "errorSaveFailed": "Impossibile salvare i prezzi",
    "errorResetFailed": "Impossibile reimpostare i prezzi"
  },
  "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": "Tipo",
    "labelHost": "Ospite",
    "labelPort": "Porta",
    "labelUsername": "Nome utente",
    "labelPassword": "Password",
    "labelRegion": "Regione",
    "labelStatus": "Stato",
    "labelNotes": "Note",
    "usernamePlaceholderEdit": "Lascia vuoto per mantenere il nome utente corrente",
    "passwordPlaceholderEdit": "Lascia vuoto per mantenere la password corrente",
    "statusActive": "Attivo",
    "statusInactive": "Inattivo",
    "cancel": "Cancellare",
    "save": "Salva",
    "bulkModalTitle": "Assegnazione di proxy in blocco",
    "bulkLabelScope": "Ambito",
    "bulkLabelProxy": "Procura",
    "bulkClearAssignment": "(Cancella assegnazione)",
    "bulkLabelScopeIds": "ID ambito (separati da virgola o nuova riga)",
    "bulkScopeIdsPlaceholder": "provider-openai,provider-antropico",
    "bulkApply": "Fare domanda a",
    "labelScope": "__MISSING__:Scope",
    "labelProxy": "__MISSING__:Proxy",
    "scopeGlobal": "__MISSING__:global",
    "scopeProvider": "__MISSING__:provider",
    "scopeAccount": "__MISSING__:account",
    "scopeCombo": "__MISSING__:combo",
    "bulkImportErrorMissingName": "NOME mancante",
    "bulkImportErrorMissingHost": "HOST mancante",
    "bulkImportErrorInvalidPort": "PORTA non valida (deve essere 1-65535)",
    "bulkImportErrorInvalidType": "TIPO non valido (usa http, https o calzini5)",
    "bulkImportErrorInvalidStatus": "STATO non valido (uso attivo o inattivo)",
    "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}% di successo",
    "avgLatency": "{latency}ms in media",
    "assignmentsCount": "{count} compiti",
    "noData": "No Data",
    "testSuccess": "✓ {ip}",
    "testLatency": "{latency}ms",
    "testFailure": "✗ {error}",
    "bulkImport": "Importazione in blocco",
    "bulkImportTitle": "Proxy di importazione in blocco",
    "bulkImportDescription": "Incolla i profili proxy utilizzando il formato delimitato da pipe. Un proxy per riga. I proxy esistenti (stesso host + porta) verranno aggiornati.",
    "bulkImportParse": "Analizzare",
    "bulkImportImport": "Importa {count} proxy",
    "bulkImportImporting": "Importazione...",
    "bulkImportParsed": "{count} proxy analizzati",
    "bulkImportSkipped": "{count} righe saltate",
    "bulkImportParseErrors": "{count} errori",
    "bulkImportNoValidEntries": "Nessuna voce valida trovata. Controlla il formato e riprova.",
    "bulkImportSuccess": "Importazione completata: {created} creato, {updated} aggiornato, {failed} non riuscito",
    "bulkImportErrorLine": "Linea {line}: {reason}",
    "bulkImportMaxExceeded": "Massimo 100 proxy per importazione",
    "bulkImportPreview": "Anteprima",
    "clearAssignment": "(incarico chiaro)",
    "bulkProxyAssignment": "Assegnazione di proxy in blocco"
  },
  "playground": {
    "title": "Title",
    "description": "Description",
    "endpoint": "Endpoint",
    "provider": "Provider",
    "model": "Model",
    "accountKey": "Account Key",
    "autoAccounts": "Automatico ({count} account)",
    "noAccounts": "No Accounts",
    "send": "Send",
    "cancel": "Cancel",
    "audioFile": "Audio File",
    "attachImages": "Attach Images",
    "multipartFormData": "Multipart Form Data",
    "upToImages": "Up To Images",
    "selectAudioFile": "Select Audio File",
    "clearAll": "Clear All",
    "request": "Request",
    "response": "Response",
    "transcription": "Transcription",
    "copy": "Copy",
    "resetToDefault": "Reset To Default",
    "downloadAudio": "Download Audio",
    "copyText": "Copy Text",
    "transcriptionHint": "Transcription Hint",
    "imagesGenerated": "{count} immagini generate",
    "generatedImage": "Immagine generata {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": "Chat conversazionale",
    "clearChat": "Chiacchierata chiara",
    "typeMessagePlaceholder": "Digita un messaggio... (Maiusc+Invio per una nuova riga)",
    "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": "Compressione",
      "tps": "TPS",
      "duration": "Duration",
      "time": "Time"
    },
    "loadingLogs": "Loading logs...",
    "noLogs": "No logs yet. Make some API calls to see them here.",
    "noMatchingLogs": "No logs matching current filters.",
    "callLogsInfo": "Call logs are also saved as JSON files to {dataDir} and rotated based on {retentionDays} and {maxEntries}."
  },
  "proxyLogger": {
    "filterAll": "All",
    "filterErrors": "Errors",
    "filterSuccess": "Success",
    "filterTimeout": "Timeout",
    "colStatus": "Status",
    "colProxy": "Proxy",
    "colTls": "TLS",
    "colType": "Type",
    "colLevel": "Level",
    "colProvider": "Provider",
    "colTarget": "Target",
    "colLatency": "Latency",
    "colClientIp": "Client IP",
    "colTime": "Time",
    "recording": "Recording",
    "paused": "Paused",
    "searchPlaceholder": "Search host, provider, target, IP...",
    "allTypes": "All Types",
    "allLevels": "All Levels",
    "allProviders": "All Providers",
    "total": "total",
    "ok": "OK",
    "err": "ERR",
    "timeoutShort": "TMO",
    "direct": "direct",
    "newest": "Newest",
    "oldest": "Oldest",
    "latencyDesc": "Latency ↓",
    "latencyAsc": "Latency ↑",
    "refresh": "Refresh",
    "columns": "Columns",
    "loadingProxyLogs": "Loading proxy logs...",
    "noProxyLogs": "No proxy logs yet. Configure proxies and make API calls to see them here.",
    "noMatchingLogs": "No logs match the current filters.",
    "tlsFingerprint": "Chrome 124 TLS Fingerprint"
  },
  "endpointOptions": {
    "speech": "Speech",
    "search": "Search",
    "images": "Images",
    "chat": "Chat",
    "music": "Music",
    "responses": "Responses",
    "rerank": "Rerank",
    "video": "Video",
    "embeddings": "Embeddings",
    "transcription": "Transcription"
  },
  "toolDescriptions": {
    "cline": "Cline",
    "openclaw": "Openclaw",
    "droid": "Droid",
    "codex": "Codex",
    "claude": "Claude",
    "kilo": "Kilo"
  },
  "runtime": {
    "title": "Runtime",
    "description": "Realtime observability — 3-layer resilience + sessions + quota alerts",
    "pause": "Pause",
    "resume": "Resume",
    "refreshNow": "Refresh now",
    "kpiSessions": "Sessions",
    "kpiCircuits": "Circuits",
    "kpiCooldowns": "Cooldowns",
    "kpiLockouts": "Lockouts",
    "hintStickyBound": "{count} sticky-bound",
    "hintRecovering": "{count} recovering",
    "hintAllHealthy": "all healthy",
    "hintOpen": "open",
    "hintConnsCooling": "connections cooling",
    "hintModelsBlocked": "models blocked",
    "resilienceTitle": "3-Layer Resilience",
    "resilienceSubtitle": "Mirrors the documented resilience model",
    "providersHealthy": "{percent}% providers healthy",
    "layer": "Layer {n}",
    "layer1Title": "Provider Circuit Breakers",
    "layer1Desc": "Stop traffic to providers failing at the upstream level",
    "layer2Title": "Connection Cooldowns",
    "layer2Desc": "Skip one bad account/key; other connections keep serving",
    "layer3Title": "Model Lockouts",
    "layer3Desc": "Per-model rate-limit locks; same connection still serves other models",
    "badgeAffectedOf": "{affected} of {total} affected",
    "badgeCooling": "{count} cooling",
    "badgeLocked": "{count} locked",
    "emptyCircuits": "No circuit breakers active yet",
    "emptyCooldowns": "No connection cooldowns active",
    "emptyLockouts": "No model lockouts",
    "moreCooldowns": "+{count} more cooldowns",
    "moreLockouts": "+{count} more lockouts",
    "feedTitle": "Live Feed",
    "feedSubtitle": "Last {count} events",
    "feedFilterAll": "All",
    "feedFilterCircuits": "Circuits",
    "feedFilterCooldowns": "Cooldowns",
    "feedFilterLockouts": "Lockouts",
    "feedFilterSessions": "Sessions",
    "feedFilterQuotas": "Quotas",
    "feedClear": "Clear",
    "feedEmptyWaiting": "Waiting for events... (polled every 5s)",
    "feedEmptyFiltered": "No events match this filter",
    "sessionsTitle": "Active Sessions",
    "sessionsSubtitle": "Sticky-bound request fingerprints (live)",
    "sessionsActive": "{count} active",
    "sessionsEmptyTitle": "No active sessions",
    "sessionsEmptyHint": "Sessions appear as requests flow through the proxy",
    "tblSession": "Session",
    "tblAge": "Age",
    "tblIdle": "Idle",
    "tblReqs": "Reqs",
    "tblBoundTo": "Bound to",
    "topApiKeys": "Top API keys",
    "quotaMonitorsTitle": "Quota Monitors",
    "quotaMonitorsSubtitle": "Live quota state per account window",
    "openQuota": "Open Quota",
    "allQuotasHealthy": "All quotas healthy",
    "statusExhausted": "EXHAUSTED",
    "statusAlerting": "ALERTING",
    "statusError": "ERROR",
    "moreSuffix": "+{count} more"
  },
  "quotaShare": {
    "title": "Quota Sharing",
    "description": "Share provider quotas across API keys with % limits",
    "newPool": "New pool",
    "betaTitle": "Beta — UI preview.",
    "betaDescription": "Configuration is saved in localStorage (not yet persisted on the server). Per-request cap enforcement is not yet wired into the proxy pipeline. This screen lets you design and visualize the quota split; real enforcement will land in a future iteration with DB persistence and upstream call interception.",
    "kpiActivePools": "Active pools",
    "kpiKeysAllocated": "Keys allocated",
    "kpiAvgUnallocated": "Avg unallocated",
    "kpiProvidersWithQuota": "Providers w/ quota",
    "emptyTitle": "No pools configured",
    "emptyDescription": "Create a pool to assign API keys to share a provider's quota window with % allocations.",
    "loading": "Loading…",
    "removePool": "Remove pool",
    "removeConfirm": "Remove this pool?",
    "pool": "Pool",
    "used": "used",
    "allocationsCount": "Allocations ({count})",
    "allocatedFree": "{allocated}% allocated · {free}% free",
    "noAllocations": "No keys allocated yet",
    "capLabel": "cap {value}",
    "notTrackedYet": "(not tracked yet)",
    "policy": "Policy",
    "policyHard": "hard",
    "policySoft": "soft",
    "policyBurst": "burst",
    "policyHardHint": "Block when key exhausts allocation",
    "policySoftHint": "Allow overflow, alert only",
    "policyBurstHint": "Allow burst into free pool",
    "editAllocations": "Edit allocations",
    "newPoolTitle": "New quota pool",
    "providerConnection": "Provider connection (account)",
    "selectConnection": "Select a connection…",
    "noEligibleConnections": "No connections with quota data. Refresh from /dashboard/quota first.",
    "quotaWindow": "Quota window",
    "selectWindow": "Select a window…",
    "alreadyUsedSuffix": "(already used)",
    "windowReset": "Reset",
    "duplicatePoolError": "A pool for this connection + window already exists",
    "cancel": "Cancel",
    "createPool": "Create pool",
    "editTitle": "Edit allocations",
    "noKeysAdded": "No keys allocated. Add one below.",
    "totalLabel": "Total: {percent}%",
    "totalExceeded": "⚠ exceeds 100%",
    "addKey": "+ Add key…",
    "equalSplit": "Equal split",
    "save": "Save allocations",
    "betaPreviewLabel": "Beta: anteprima dell'interfaccia utente.",
    "betaConfigSavedPrefix": "La configurazione viene salvata in",
    "betaConfigSavedSuffix": "(non ancora persistente sul server). L'applicazione del limite per richiesta non è ancora collegata alla pipeline del proxy. Questa schermata consente di progettare e visualizzare la ripartizione delle quote; l'attuazione reale avverrà in una futura iterazione con la persistenza del DB e l'intercettazione delle chiamate a monte.",
    "policyLabel": "Politica:",
    "resetIn": "reimpostato",
    "quotaTotal": "totale"
  },
  "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"
  }
}
