{
  "nav": {
    "models": "Modelli",
    "playground": "Playground",
    "keys": "Chiavi",
    "analytics": "Analisi",
    "premium": "Premium",
    "signOut": "Esci",
    "openMenu": "Apri menu di navigazione",
    "theme": "Tema",
    "switchLight": "Passa al tema chiaro",
    "switchDark": "Passa al tema scuro",
    "language": "Cambia lingua",
    "switchToChinese": "Passa al cinese",
    "switchToEnglish": "Passa all'inglese",
    "modelsMenu": "Sfoglia i tipi di modello"
  },
  "auth": {
    "createYourAccount": "Crea il tuo account",
    "signIn": "Accedi",
    "email": "Email",
    "password": "Password",
    "emailPlaceholder": "tuo@esempio.com",
    "passwordPlaceholderSetup": "almeno 8 caratteri",
    "passwordPlaceholderLogin": "la tua password",
    "setupDescription": "Imposta l'email e la password che proteggeranno questo pannello.",
    "loginDescription": "Accedi per gestire chiavi, instradamento e analisi.",
    "createAccount": "Crea account",
    "creating": "Creazione…",
    "signingIn": "Accesso…",
    "loading": "Caricamento…",
    "newPasswordAutoComplete": "new-password",
    "currentPasswordAutoComplete": "current-password",
    "serverUnreachableBefore": "Impossibile raggiungere il server. Assicurati che il backend sia in esecuzione (",
    "serverUnreachableAfter": ")."
  },
  "common": {
    "save": "Salva",
    "saving": "Salvataggio…",
    "cancel": "Annulla",
    "discard": "Scarta",
    "delete": "Elimina",
    "confirm": "Conferma",
    "copy": "Copia",
    "copied": "Copiato",
    "show": "Mostra",
    "hide": "Nascondi",
    "apply": "Applica",
    "applied": "Applicato",
    "applying": "Applicazione…",
    "active": "Attivo",
    "inactive": "Inattivo",
    "never": "mai",
    "loading": "Caricamento…",
    "error": "Errore",
    "noData": "Nessun dato ancora",
    "unsavedChanges": "Modifiche non salvate",
    "saveChanges": "Salva modifiche",
    "remove": "Rimuovi",
    "unknownError": "Errore sconosciuto",
    "model": "Modello",
    "provider": "Fornitore",
    "success": "Successo",
    "failures": "Fallimenti",
    "dismiss": "Chiudi",
    "status": "Stato"
  },
  "models": {
    "title": "Modelli",
    "chatModelsTab": "Chat",
    "fusionTab": "Fusion",
    "embeddingsTab": "Embedding",
    "imageTab": "Immagine",
    "audioTab": "Audio",
    "imageTitle": "Modelli di immagini",
    "audioTitle": "Modelli audio",
    "imageDesc": "Modelli di generazione testo-immagine.",
    "audioDesc": "Modelli di generazione testo-parlato.",
    "mediaHint": "Genera tramite",
    "mediaEmpty": "Nessun modello ancora. Vengono sincronizzati dal catalogo.",
    "newBadge": "Nuovo",
    "monthlyTokenBudget": "Budget mensile di token",
    "remaining": "rimanenti",
    "used": "usati",
    "of": "di",
    "showAllModels": "Mostra tutti i {count} modelli",
    "showLess": "Mostra meno",
    "vision": "Visione",
    "visionTitle": "Accetta input di immagini",
    "tools": "Strumenti",
    "toolsTitle": "Emette chiamate a strumenti strutturate, quindi è idoneo per richieste con strumenti",
    "penalty": "−{value} penalità",
    "obs": "{count} oss",
    "tokPerMonth": "{count} tok/mese",
    "rpmLimit": "{count} rpm",
    "rpdLimit": "{count} gpd",
    "noKey": "nessuna chiave",
    "dragToReorder": "Trascina per riordinare",
    "dragToReorderGroup": "Trascina per riordinare il modello",
    "providerCount": "{count} fornitori",
    "servedBy": "Servito da {providers}",
    "viewProviders": "Vedi fornitori",
    "backToModels": "Torna ai modelli",
    "providersHeading": "Fornitori che servono questo modello",
    "codeSnippetHeading": "Usa questo modello",
    "modelNotFound": "Questo modello non è disponibile o non ha fornitori configurati.",
    "providerIdsHeading": "ID modello dei fornitori",
    "providerIdsHint": "Invia l'ID modello unificato per il failover su tutti i fornitori, oppure un ID specifico per fissare un fornitore.",
    "copyModelName": "Copia nome modello",
    "aggregateBudget": "{count}/mese",
    "aggregateBudgetTitle": "Token gratuiti totali al mese tra i fornitori di questo modello",
    "rateRpm": "{count} RPM",
    "rateRpd": "{count} GPD",
    "rateTitle": "Limitato — nessun budget mensile fisso di token",
    "unifyToggle": "Unifica modelli duplicati",
    "unifyToggleHint": "Mostra un modello servito da più fornitori come un unico elemento, con failover tra i fornitori quando selezionato.",
    "columnModel": "Modello",
    "columnOn": "Attivo",
    "noModelsBefore": "Nessun modello disponibile. Aggiungi chiavi API nella ",
    "keysPageLink": "pagina Chiavi",
    "noModelsAfter": " prima.",
    "hiddenNoKeys": "Nascosto (nessuna chiave): {platforms}",
    "searchPlaceholder": "Cerca modelli o fornitori…",
    "clearSearch": "Cancella ricerca",
    "ctxAny": "Qualsiasi contesto",
    "ctxBadge": "{size} ctx",
    "ctxTitle": "Finestra di contesto",
    "copyModelId": "Copia ID modello",
    "showingCount": "{shown} di {total} modelli",
    "clearFilters": "Cancella filtri",
    "noMatches": "Nessun modello corrisponde ai tuoi filtri.",
    "noModelsTitle": "Nessun modello configurato",
    "settingsHeading": "Impostazioni provider",
    "settingsHint": "Le modifiche locali ai modelli del catalogo vengono mantenute tra le sincronizzazioni del catalogo. I modelli del catalogo eliminati restano eliminati finché non li aggiungi di nuovo tramite la configurazione.",
    "catalogModel": "catalogo",
    "customModel": "personalizzato",
    "localOverride": "override locale",
    "displayName": "Nome visualizzato",
    "contextWindow": "Contesto",
    "inFallback": "Nella catena",
    "saveModelSettings": "Salva impostazioni modello"
  },
  "strategies": {
    "title": "Strategia di routing",
    "description": "Scegli una strategia di routing. In modalità Manuale trascini per impostare l'ordine; le altre strategie instradano in base al punteggio live tra affidabilità, velocità e intelligenza.",
    "weightsSummary": "affidabilità {reliability}% · velocità {speed}% · intelligenza {intelligence}%",
    "guardrails": "Protezioni",
    "guardrailsTooltip": "Protezioni sempre attive: margine quota gratuita × penalità limite di velocità live. Sotto 1.0 significa che il modello è trattenuto.",
    "scoreTooltip": "Punteggio finale di routing = media ponderata dei tre assi, moltiplicata per le protezioni. Punteggi più alti instradano per primi.",
    "modeManualHint": "Modalità Manuale: le richieste seguono l'ordine sottostante, dall'alto verso il basso. Trascina per riordinare.",
    "modeScoreHint": "I punteggi si aggiornano dal traffico live. L'ordine sottostante è come le richieste vengono instradate in questo momento.",
    "manual": "Manuale",
    "manualBlurb": "Instrada nell'ordine esatto che imposti qui sotto. Trascina le maniglie per riordinare. Nessun punteggio; la catena viene seguita dall'alto verso il basso.",
    "balanced": "Bilanciato",
    "balancedBlurb": "L'affidabilità è prioritaria (50%), con velocità e intelligenza pesate equamente (25% ciascuna). Un default sensato per tutti gli usi.",
    "smartest": "Più intelligente",
    "smartestBlurb": "Preferisci il modello più capace che funziona ancora. Intelligenza 55%, affidabilità 35%, velocità 10%.",
    "fastest": "Più veloce",
    "fastestBlurb": "Preferisci il modello più veloce che funziona ancora. Velocità 55%, affidabilità 35%, intelligenza 10%.",
    "reliable": "Più affidabile",
    "reliableBlurb": "Massimizza il tasso di successo sopra ogni cosa. Affidabilità 70%, velocità e intelligenza 15% ciascuna.",
    "custom": "Personalizzato",
    "customBlurb": "Imposta il tuo equilibrio di affidabilità, velocità e intelligenza con i cursori. Stesso motore dei preset, solo i tuoi pesi.",
    "adjust": "Regola",
    "customWeights": "Pesi personalizzati",
    "customWeightsHelp": "I cursori sono indipendenti; le quote si auto-bilanciano al 100%.",
    "weightReliability": "Affidabilità",
    "weightSpeed": "Velocità",
    "weightIntelligence": "Intelligenza",
    "weightRequired": "Almeno un peso deve essere maggiore di zero.",
    "scoreColumn": "Punteggio"
  },
  "keys": {
    "pageTitle": "Chiavi",
    "pageDescription": "Credenziali dei fornitori e la chiave API unificata con cui si connettono le tue app.",
    "tabProviders": "Fornitori",
    "tabQuotaSignals": "Segnali quota",
    "tabApiKey": "Chiave API unificata",
    "tabAnthropic": "Anthropic",
    "unifiedKey": "La tua chiave API unificata",
    "regenerate": "Rigenera",
    "showKey": "Mostra",
    "hideKey": "Nascondi",
    "copyKey": "Copia",
    "copiedKey": "Copiato",
    "baseUrl": "URL di base",
    "endpointChat": "Chat",
    "endpointResponses": "Risposte",
    "endpointEmbeddings": "Embedding",
    "endpointEmbeddingsHint": "model: \"auto\" o una famiglia dalla scheda Embedding",
    "endpointMessages": "Messaggi",
    "endpointMessagesHint": "Compatibile con Anthropic (Claude)",
    "anthropicTitle": "Modelli Claude (Anthropic)",
    "anthropicDesc": "Punta un client SDK Claude o Anthropic a questo server. I client Anthropic inviano nomi di modelli Claude — mappa ciascuno su Auto (il router sceglie un modello gratuito) o fissa uno specifico.",
    "anthropicBaseUrl": "URL di base",
    "anthropicAuth": "Intestazione Auth",
    "anthropicAuto": "Auto — il router sceglie il modello migliore",
    "anthropicSave": "Salva mappatura",
    "anthropicSaved": "Salvato",
    "anthropicNote": "I client Anthropic mantengono i loro nomi di modelli Claude incorporati; la mappatura sopra decide come ciascuno viene instradato nel tuo pool.",
    "familyDefault": "Default",
    "familyOpus": "Opus",
    "familySonnet": "Sonnet",
    "familyHaiku": "Haiku",
    "selectPlatform": "Seleziona un fornitore",
    "addKey": "Aggiungi chiave",
    "keyAdded": "Chiave aggiunta",
    "adding": "Aggiunta…",
    "selectProvider": "Seleziona un fornitore…",
    "accountId": "ID account",
    "label": "Etichetta",
    "noKeyNeeded": "(nessuna chiave necessaria)",
    "outboundProxy": "Proxy in uscita",
    "outboundProxyDescription": "Instrada le richieste LLM in uscita attraverso un proxy. Supporta SOCKS5, HTTP e HTTPS.",
    "proxyUrl": "URL proxy",
    "saveProxy": "Salva",
    "savingProxy": "Salvataggio…",
    "proxyLoadFailed": "Impossibile caricare le impostazioni del proxy.",
    "addCustom": "Aggiungi un modello personalizzato compatibile con OpenAI",
    "addCustomDescription": "Punta a qualsiasi endpoint compatibile con OpenAI: llama.cpp, LM Studio, vLLM, un Ollama locale o un gateway remoto. Elenca un modello per riga (o separato da virgole) per aggiungerne diversi in una volta; condividono tutti lo stesso endpoint. La chiave API è opzionale (la maggior parte dei server locali non ne necessita).",
    "customBaseUrl": "URL di base",
    "customModels": "Modelli",
    "customDisplayName": "Nome visualizzato",
    "customDisplayNamePerModel": "per-modello",
    "customDisplayNameOptional": "opzionale",
    "customApiKey": "Chiave API",
    "customCapabilities": "Funzionalità",
    "addModel": "Aggiungi modello",
    "modelAdded": "Modello aggiunto",
    "addModels": "Aggiungi {count} modelli",
    "addingCustom": "Aggiunta…",
    "getApiKey": "Ottieni chiave API",
    "deleteKeyConfirm": "Eliminare questa chiave? Non è possibile annullare.",
    "checkAll": "Controlla tutto",
    "checking": "Controllo…",
    "editLabel": "Modifica etichetta",
    "saveLabel": "Salva etichetta",
    "unifiedKeyDescBefore": "Usa questa come tua chiave OpenAI ",
    "unifiedKeyDescAfter": "; autentica le richieste a questo proxy.",
    "serverUnreachableBefore": "Impossibile raggiungere il server su ",
    "serverUnreachableAfter": ". Assicurati che il backend sia in esecuzione. npm run dev avvia entrambi, e i log del server vengono stampati con il prefisso server.",
    "paneProviderKey": "Chiave fornitore",
    "paneImportFile": "Importa file",
    "paneCustomEndpoint": "Endpoint personalizzato",
    "platform": "Piattaforma",
    "apiToken": "Token API",
    "noKeyNeededPlaceholder": "Nessuna chiave API necessaria",
    "bearerTokenPlaceholder": "Bearer token",
    "pasteKeyPlaceholder": "incolla la chiave qui",
    "keylessHint": "Nessuna chiave API necessaria: il livello gratuito di questo fornitore è anonimo (limitato per IP).",
    "enable": "Abilita",
    "noProviderKeys": "Nessuna chiave fornitore ancora. Aggiungine una sopra per iniziare il routing.",
    "filterPlaceholder": "Filtra fornitori o chiavi",
    "filterAll": "Tutti",
    "filterHealthy": "Funzionanti",
    "filterIssues": "Con problemi",
    "filterDisabled": "Disabilitati",
    "noFilterMatch": "Nessun fornitore corrisponde ai tuoi filtri.",
    "providerCountSummary": "{providers} fornitori · {keys} chiavi",
    "summaryHealthy": "{count} funzionanti",
    "summaryIssueOne": "{count} problema",
    "summaryIssueOther": "{count} problemi",
    "providerActions": "Azioni fornitore",
    "routeViaProxy": "Instrada tramite proxy",
    "checkNow": "Controlla ora",
    "proxyEnvHintBefore": "Configurabile anche tramite la variabile d'ambiente ",
    "proxyEnvHintAfter": " (ha precedenza). Lascia vuoto per disabilitare. Esempi:",
    "confirmRemove": "Confermi?",
    "quotaSignalsTitle": "Segnali di quota",
    "quotaSignalsEmptyTitle": "Ancora nessuna osservazione di quota",
    "quotaSignalsEmptyDesc": "Questa sezione si riempie quando i provider restituiscono header di limite, errori di quota o segnali di validazione.",
    "quotaKeyRef": "chiave n. {id}",
    "quotaPoolRef": "pool {pool}",
    "quotaLimit": "Limite",
    "quotaRemaining": "Rimanente",
    "quotaReset": "Reset",
    "quotaObserved": "Osservato",
    "customType": "Tipo",
    "customTypeChat": "Chat",
    "customTypeEmbedding": "Embedding",
    "customTypeImage": "Immagine",
    "customTypeAudio": "Audio",
    "customModel": "Modello",
    "customFamily": "Famiglia",
    "customFamilyPlaceholder": "predefinito: id del modello",
    "addEmbeddingModel": "Aggiungi embedding",
    "addImageModel": "Aggiungi modello immagine",
    "addAudioModel": "Aggiungi modello audio",
    "importKeys": "Importa chiavi provider",
    "importKeysDescription": "Carica file .env, JSON, JSONC, CSV, Markdown o di testo.",
    "importFiles": "File",
    "importFileCount": "{count} selezionati",
    "previewFiles": "Anteprima",
    "previewing": "Anteprima in corso…",
    "selected": "Selezionati",
    "provider": "Provider",
    "keyName": "Nome chiave",
    "keyValue": "Valore chiave",
    "chooseProvider": "Scegli provider",
    "noPreviewKeys": "Nessuna chiave trovata in quei file.",
    "skippedItems": "Ignorati:",
    "moreItems": "+{count} altri",
    "importSelected": "Importa {count}",
    "importing": "Importazione in corso…",
    "noImportSelection": "Seleziona almeno una riga con un provider.",
    "duplicate": "Duplicato",
    "duplicatesFound": "{count} duplicato/i rilevato/i — già esistente/i e verrà/no saltato/i.",
    "importResult": "Importati {imported}; falliti {failed}.",
    "export": {
      "json": "JSON",
      "env": ".env",
      "csv": "CSV"
    },
    "exportAll": "All keys",
    "exportHealthy": "Healthy only",
    "exportKeys": "Export API keys",
    "exportFormat": "Format",
    "exportHealthyOnly": "Healthy keys only",
    "exportHealthyOnlyDesc": "Exclude keys that are currently failing health checks",
    "exportWillExport": "Will export",
    "exportKey": "key",
    "exportKeys plural": "keys",
    "exporting": "Exporting…",
    "exportDownload": "Download",
    "exportSuccess": "Exported {count} keys"
  },
  "status": {
    "healthy": "funzionante",
    "rateLimited": "limitato",
    "invalid": "non valido",
    "error": "errore",
    "unchecked": "non controllato"
  },
  "analytics": {
    "title": "Analisi",
    "description": "Volume richieste, latenza, utilizzo token ed errori.",
    "range24h": "24h",
    "range7d": "7g",
    "range30d": "30g",
    "range90d": "90g",
    "requests": "Richieste",
    "successRate": "Tasso di successo",
    "inputTokens": "Token in input",
    "outputTokens": "Token in output",
    "avgLatency": "Latenza media",
    "p95Latency": "Latenza P95",
    "avgTtft": "TTFT medio",
    "estSavings": "Risparmio stimato",
    "requestsByProvider": "Richieste per fornitore",
    "avgLatencyByProvider": "Latenza media per fornitore",
    "ttftByProvider": "Tempo al primo token per fornitore",
    "ttftEmpty": "Ancora nessun tempo al primo token registrato.",
    "requestsOverTime": "Richieste nel tempo",
    "tokensOverTime": "Token nel tempo",
    "byModel": "Per modello",
    "byPlatform": "Per piattaforma",
    "errors": "Errori",
    "errorDistribution": "Distribuzione errori",
    "pinnedRequests": "Richieste fissate",
    "pinnedHonored": "Onorate",
    "fallbackAttempts": "Tentativi di fallback",
    "savingsHint": "Hai effettivamente risparmiato ${actual} negli ultimi {range}. Questo è quanto gli stessi token sarebbero costati su API a pagamento, prezzate per modello. Il numero mostrato proietta il tuo ritmo dagli ultimi {span} di dati a 30 giorni interi.",
    "savingsHintExact": "Hai effettivamente risparmiato ${actual} negli ultimi {range}. Questo è quanto gli stessi token sarebbero costati su API a pagamento, prezzate per modello. Il numero mostrato è il tuo totale reale di 30 giorni.",
    "requestsHintPinned": "{pinned} di queste richieste hanno fissato un modello specifico per nome. {honored} sono state servite dal modello fissato; {failed} sono cadute in fallback su uno diverso. Le restanti sono state instradate automaticamente.",
    "requestsHintAuto": "Tutte le richieste in questo periodo sono state instradate automaticamente; nessun client ha fissato un modello specifico per nome.",
    "requestsHintTypes": "{chat} richieste di chat e {embedding} di embedding.",
    "rangeLabel24h": "24 ore",
    "rangeLabel7d": "7 giorni",
    "rangeLabel30d": "30 giorni",
    "rangeLabel90d": "90 giorni",
    "spanDays": "{count} giorni",
    "spanHours": "{count} ore",
    "latencyMs": "Latenza (ms)",
    "latency": "Latenza",
    "pinned": "Fissate",
    "inTokens": "Token in",
    "outTokens": "Token out",
    "saved": "Risparmiato",
    "message": "Messaggio",
    "time": "Ora",
    "perModelBreakdown": "Analisi per modello",
    "usageByKey": "Utilizzo per chiave",
    "keyColumn": "Chiave",
    "keyLabelFallback": "Chiave n. {id}",
    "errorsByProvider": "Errori per fornitore",
    "recentErrors": "Errori recenti",
    "noErrors": "Nessun errore",
    "recentCalls": "Chiamate recenti",
    "clientIp": "IP del client",
    "clientAgent": "App client",
    "requestedModelHint": "Richiesto {model}, servito dal fallback"
  },
  "playground": {
    "title": "Playground",
    "description": "Invia una richiesta di chat attraverso il router e scopri quale fornitore la serve.",
    "autoModel": "Auto (catena di fallback)",
    "fusionModel": "Fusion (sintesi multi-modello)",
    "selectModel": "Seleziona modello",
    "searchModels": "Cerca modelli…",
    "noModelsFound": "Nessun modello trovato",
    "send": "Invia",
    "sending": "Invio…",
    "clear": "Cancella",
    "inputPlaceholder": "Scrivi un messaggio… (⏎ per inviare, ⇧⏎ per nuova riga)",
    "emptyTitle": "Invia un messaggio per iniziare.",
    "emptyDescription": "Utilizzando {model}. Cambia modello nel selettore sopra.",
    "noModels": "Nessun modello ancora. Aggiungi una chiave API nella pagina Chiavi per popolare questa lista.",
    "copyReply": "Copia risposta",
    "fallback": "fallback",
    "fallbacks": "fallback",
    "fusionPanel": "Panel",
    "fusionJudge": "Giudice",
    "fusionTrace": "{count} risposte modello",
    "fusionFailed": "nessuna risposta",
    "fusionJudgeSynth": "ha sintetizzato la risposta finale",
    "errorPrefix": "Errore:",
    "errorTitle": "Richiesta non riuscita",
    "systemPromptLabel": "Prompt di sistema",
    "systemPromptPlaceholder": "Facoltativo. Inviato come messaggio di sistema prima della chat."
  },
  "embeddings": {
    "title": "Modelli",
    "description": "Gli embedding fanno fallback solo all'interno di una famiglia: lo stesso modello servito da un altro fornitore. I vettori di modelli diversi sono incompatibili, quindi il router non scambia mai i modelli.",
    "defaultBadge": "Default · auto",
    "makeDefault": "Imposta come default",
    "moveUp": "Sposta su",
    "moveDown": "Sposta giù",
    "usageToday": "{count} richieste oggi",
    "usageMonth": "{count} tok questo mese",
    "autoDescription": "model: \"auto\" su POST /v1/embeddings instrada alla famiglia default. Nominare una famiglia (o un ID modello fornitore) fissa quella famiglia; i fornitori al suo interno vengono provati in ordine.",
    "unsavedChanges": "Modifiche non salvate",
    "saveChanges": "Salva modifiche",
    "savingChanges": "Salvataggio…",
    "tokMax": "{tokens} tok max",
    "emptyTitle": "Ancora nessun modello di embedding",
    "emptyDesc": "Le famiglie di embedding compaiono qui quando aggiungi una chiave provider che supporta gli embedding.",
    "dragToReorder": "Trascina per riordinare il provider"
  },
  "fusion": {
    "title": "Fusion",
    "description": "Un pannello di modelli risponde in parallelo, poi un giudice sintetizza una risposta più forte. Usalo chiamando l'API con modello \"fusion\".",
    "panelSource": "Origine pannello",
    "panelSourceHelp": "Da dove provengono i modelli del pannello quando una richiesta non specifica i propri.",
    "mode": {
      "auto": "Auto (Catena di Fallback)",
      "autoHelp": "Seleziona un insieme diversificato di modelli dalla tua Catena di Fallback, classificati dalla tua strategia di routing attiva.",
      "explicit": "Pannello esplicito",
      "explicitHelp": "Usa sempre i modelli specifici che scegli qui sotto."
    },
    "panelModels": "Modelli del pannello",
    "selectedCount": "{count} di {max} selezionati",
    "noModels": "Nessun modello è ancora collegato. Aggiungi una chiave API, poi abilita i modelli nella Catena di Fallback.",
    "panelSize": "Dimensione pannello",
    "panelSizeHelp": "Quanti modelli diversi selezionare automaticamente (1–{max}).",
    "judge": "Modello giudice",
    "judgeHelp": "Il modello che sintetizza le risposte del pannello in una. Auto usa il tuo modello disponibile con il punteggio più alto.",
    "judgeAuto": "Auto (miglior disponibile)",
    "strategy": "Strategia",
    "strategySynthesize": "Sintetizza — combina il pannello in una risposta",
    "strategyBestOf": "Miglior risultato — restituisce la singola risposta più forte (nessuna chiamata al giudice)",
    "strategySynthesizeShort": "Sintetizza",
    "strategyBestOfShort": "Miglior risultato",
    "exposePanel": "Esponi dettagli pannello",
    "exposePanelHelp": "Allega la risposta di ogni modello e i metadati del giudice in un campo x_fusion nella risposta.",
    "howToUse": "Come usare",
    "howToUseHelp": "Invia una normale richiesta chat con modello \"fusion\". Queste impostazioni sono il default; qualsiasi richiesta può sovrascriverle con un campo \"fusion\".",
    "unsavedChanges": "Modifiche non salvate",
    "save": "Salva"
  },
  "premium": {
    "title": "Premium",
    "description": "Il catalogo live dei modelli, su ogni dispositivo.",
    "loading": "Caricamento…",
    "checkForUpdates": "Controlla aggiornamenti",
    "syncing": "Sincronizzazione…",
    "catalogFeed": "Feed catalogo",
    "liveFeed": "Feed live",
    "monthlySnapshot": "Istantanea mensile",
    "lastChecked": "Ultimo controllo: {when}",
    "liveDescription": "Nuovi modelli gratuiti, cambi di quota e correzioni arrivano qui entro ore dal rilascio. L'app controlla automaticamente due volte al giorno; nessuna azione necessaria.",
    "snapshotDescription": "Livello gratuito: il catalogo si aggiorna da un'istantanea mensile, controllata automaticamente due volte al giorno. Premium passa al feed live, aggiornato ogni 2-3 giorni.",
    "lastSyncProblem": "Ultimo problema di sincronizzazione: {error}",
    "license": "Licenza",
    "planAnnual": "Premium Annuale",
    "planLifetime": "Premium a Vita",
    "expired": "Scaduto",
    "inactive": "Inattivo",
    "lifetimeNote": "Licenza a vita: non scade mai.",
    "renewsOn": "Rinnova il {date}.",
    "willNotRenew": "Non si rinnoverà. Premium fino al {date}, poi questa installazione torna al catalogo mensile gratuito.",
    "keyInactive": "Questa chiave non è più attiva. L'app continua a funzionare con il catalogo mensile gratuito.",
    "manageSubscription": "Gestisci abbonamento",
    "openingPortal": "Apertura…",
    "removeKey": "Rimuovi chiave da questo dispositivo",
    "manageHint": "Gestisci abbonamento apre il portale di fatturazione Stripe: annulla, aggiorna la tua carta o scarica le fatture. Rimuovere la chiave disattiva solo questo dispositivo; il tuo acquisto rimane intatto.",
    "licenseKey": "Chiave di licenza",
    "licenseKeyPlaceholder": "fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "activate": "Attiva",
    "activating": "Attivazione…",
    "keyHint": "La tua chiave è nell'email di acquisto e nella pagina post-checkout. L'hai persa?",
    "recoverKey": "Recuperala sul sito web",
    "upsellTitle": "Passa al feed live per $19 all'anno",
    "upsellDescription": "Nuovi modelli gratuiti nel momento in cui esistono, invece che 30 giorni dopo. Una chiave, ogni dispositivo. Annulla quando vuoi; il router rimane gratuito per sempre.",
    "goPremium": "Vai a Premium",
    "bundled": "incluso",
    "planGeneric": "Premium"
  },
  "languages": {
    "en": "English",
    "zh-CN": "中文 (简体)",
    "fr": "Français",
    "es": "Español",
    "pt-BR": "Português (Brasil)",
    "it": "Italiano"
  },
  "errors": {
    "boundaryTitle": "Qualcosa è andato storto",
    "boundaryDescription": "La dashboard ha riscontrato un errore imprevisto. I tuoi dati sono al sicuro. Riprova o torna alla pagina dei modelli.",
    "tryAgain": "Riprova",
    "goHome": "Torna ai modelli"
  },
  "notFound": {
    "title": "Pagina non trovata",
    "description": "Questa pagina non esiste o potrebbe essere stata spostata."
  },
  "setup": {
    "title": "Per iniziare",
    "subtitle": "Tre passaggi per instradare la tua prima richiesta.",
    "progress": "{done} di {total}",
    "step1Title": "Aggiungi una chiave provider",
    "step1Desc": "Collega almeno un account provider. Le chiavi gratuite funzionano.",
    "step1Cta": "Aggiungi chiavi",
    "step2Title": "Invia una richiesta di prova",
    "step2Desc": "Scegli un modello nel Playground e saluta.",
    "step2Cta": "Apri Playground",
    "step3Title": "Collega la tua app",
    "step3Desc": "Usa la tua chiave API unificata con qualsiasi client compatibile OpenAI.",
    "copyKey": "Copia chiave API",
    "copyUrl": "Copia URL di base",
    "copiedKey": "Chiave API copiata negli appunti",
    "copiedUrl": "URL di base copiato negli appunti"
  },
  "palette": {
    "title": "Palette dei comandi",
    "placeholder": "Cerca pagine, modelli, azioni…",
    "empty": "Nessun risultato",
    "groupPages": "Pagine",
    "groupActions": "Azioni",
    "groupModels": "Modelli",
    "toggleTheme": "Attiva/disattiva la modalità scura"
  },
  "penaltyInspector": {
    "title": "Pressione del router",
    "subtitle": "Penalità, cooldown ed errori negli ultimi {minutes} min",
    "rowCount": "{count} attivi",
    "offChain": "fuori catena",
    "penaltyValue": "Penalità {value}",
    "factor": "punteggio x{factor}",
    "noCooldown": "Nessun cooldown",
    "cooldownChip": "{key}: {time}",
    "errorsHeading": "{count} errori recenti",
    "noRecentErrors": "Nessun errore recente",
    "noKey": "nessuna chiave",
    "reasons": {
      "penalty": "penalizzato",
      "cooldown": "cooldown",
      "recent_errors": "in errore"
    }
  },
  "validation": {
    "required": "Obbligatorio",
    "url": "Inserisci un URL valido che inizi con http:// o https://",
    "email": "Inserisci un indirizzo email valido",
    "passwordMin": "Almeno {min} caratteri"
  }
}
