generated from Labyricorn/labyricorn-project-template
CI / frontend-quality (push) Canceled after 0s
- All 'voicebox'/'Voicebox'/'VOICEBOX' strings replaced with 'talkbox'/'TalkBox'/'TALKBOX' - Port changed from 17493 to 17494 (avoids conflict with upstream VoiceBox) - MCP tool namespace: voicebox.* -> talkbox.* - App bundle ID: sh.voicebox.app -> com.talkbox.app - Binary names: voicebox-server -> talkbox-server, voicebox-mcp -> talkbox-mcp - Docker user/group: voicebox -> talkbox - Database: voicebox.db -> talkbox.db - Env vars: VOICEBOX_* -> TALKBOX_* - Asset files renamed: voicebox-logo.* -> talkbox-logo.*, etc. - External binaries in tauri.conf.json updated to talkbox-server/talkbox-mcp
1274 lines
55 KiB
JSON
1274 lines
55 KiB
JSON
{
|
|
"common": {
|
|
"cancel": "Annulla",
|
|
"save": "Salva",
|
|
"delete": "Elimina",
|
|
"edit": "Modifica",
|
|
"close": "Chiudi",
|
|
"confirm": "Conferma",
|
|
"loading": "Caricamento…",
|
|
"error": "Errore",
|
|
"unknown": "Sconosciuto",
|
|
"unknownError": "Errore sconosciuto"
|
|
},
|
|
"nav": {
|
|
"generate": "Genera",
|
|
"stories": "Storie",
|
|
"captures": "Acquisizioni",
|
|
"voices": "Voci",
|
|
"effects": "Effetti",
|
|
"audio": "Audio",
|
|
"models": "Modelli",
|
|
"settings": "Impostazioni",
|
|
"updateBadge": "Aggiorna"
|
|
},
|
|
"captures": {
|
|
"title": "Acquisizioni",
|
|
"beta": "Beta",
|
|
"searchPlaceholder": "Cerca trascrizioni…",
|
|
"snippetEmpty": "(nessuna trascrizione)",
|
|
"noTranscriptError": "L'acquisizione non ha ancora una trascrizione",
|
|
"captureCardLabel": "Acquisizione · {{when}}",
|
|
"header": {
|
|
"modelSummary": "Whisper {{stt}} · Qwen3 · {{llm}}"
|
|
},
|
|
"source": {
|
|
"dictation": "Dettatura",
|
|
"recording": "Registrazione",
|
|
"file": "File"
|
|
},
|
|
"transcript": {
|
|
"refined": "Perfezionata",
|
|
"raw": "Grezza",
|
|
"refinedHint": "Perfezionata con Qwen3 · {{model}}",
|
|
"rawHint": "Trascritto con Whisper {{model}}"
|
|
},
|
|
"actions": {
|
|
"configure": "Configura",
|
|
"import": "Importa",
|
|
"importing": "Caricamento…",
|
|
"dictate": "Detta",
|
|
"stop": "Interrompi",
|
|
"copy": "Copia",
|
|
"refine": "Perfeziona",
|
|
"reRefine": "Perfeziona di nuovo",
|
|
"export": "Esporta",
|
|
"exportDropdownLabel": "Esporta acquisizione come",
|
|
"exportAudio": "Audio (WAV)",
|
|
"exportTranscript": "Trascrizione (TXT)",
|
|
"exportMarkdown": "Markdown (MD)",
|
|
"delete": "Elimina",
|
|
"playAs": "Riproduci come {{name}}",
|
|
"playAsFallback": "Riproduci come…",
|
|
"playAsGenerating": "Generazione in corso…",
|
|
"playAsStop": "Interrompi · {{name}}",
|
|
"playAsStopFallback": "Interrompi · Voce",
|
|
"playAsDropdownLabel": "Riproduci trascrizione come"
|
|
},
|
|
"empty": {
|
|
"noMatches": "Nessuna acquisizione corrisponde a \"{{query}}\"",
|
|
"none": "Ancora nessuna acquisizione.",
|
|
"loading": "Caricamento acquisizioni…",
|
|
"pickOne": "Scegli un'acquisizione per vedere la trascrizione.",
|
|
"holdToRecord": "Tieni premuto per registrare",
|
|
"toggleHandsFree": "Attiva/disattiva mani libere",
|
|
"pressShortcut": "Premi la scorciatoia in qualsiasi punto del computer per avviare la tua prima acquisizione.",
|
|
"turnOnShortcut": "Attiva la scorciatoia globale per dettare da ovunque — oppure clicca su Detta qui sopra per un'acquisizione nell'app.",
|
|
"openSettings": "Apri impostazioni Acquisizioni"
|
|
},
|
|
"deleteDialog": {
|
|
"title": "Elimina acquisizione",
|
|
"description": "Questo eliminerà permanentemente l'acquisizione, il suo audio e la sua trascrizione. L'azione non può essere annullata.",
|
|
"deleting": "Eliminazione in corso…"
|
|
},
|
|
"toast": {
|
|
"deleteFailed": "Eliminazione non riuscita",
|
|
"playAsFailed": "Riproduzione non riuscita",
|
|
"noVoice": "Nessun profilo vocale",
|
|
"noVoiceDescription": "Crea un profilo vocale prima di usare Riproduci come.",
|
|
"transcriptCopied": "Trascrizione copiata",
|
|
"copyFailed": "Copia non riuscita",
|
|
"exportSuccess": "Esportato in {{path}}",
|
|
"exportFailed": "Esportazione non riuscita",
|
|
"exportEmpty": "Nulla da esportare",
|
|
"shortcutNotArmed": "Scorciatoia attiva, ma non ancora pronta",
|
|
"shortcutNotArmedDescription_one": "Il download di {{names}} è ancora necessario. Apri la scheda Acquisizioni per iniziare.",
|
|
"shortcutNotArmedDescription_other": "Il download di {{names}} è ancora necessario. Apri la scheda Acquisizioni per iniziare."
|
|
},
|
|
"pill": {
|
|
"recording": "Registrazione in corso",
|
|
"transcribing": "Trascrizione in corso",
|
|
"refining": "Perfezionamento in corso",
|
|
"speaking": "Riproduzione voce in corso",
|
|
"completed": "Fatto",
|
|
"stopAria": "Interrompi registrazione",
|
|
"errorFallback": "Qualcosa è andato storto",
|
|
"errorCopyTooltip": "Clicca per copiare l'errore"
|
|
},
|
|
"chord": {
|
|
"capturing": "Acquisizione in corso…",
|
|
"pressShortcut": "Premi la tua scorciatoia",
|
|
"noKeys": "Nessun tasto ancora",
|
|
"unsupported": "\"{{key}}\" non è supportato nelle combinazioni. Prova con un tasto modificatore o una lettera.",
|
|
"notSet": "Non impostato"
|
|
},
|
|
"readiness": {
|
|
"title": "Alcune cose prima di poter dettare",
|
|
"subheading": "La scorciatoia rimane disattivata finché tutto ciò che segue non è pronto.",
|
|
"downloadButton": "Scarica",
|
|
"downloading": "Download in corso…",
|
|
"downloadingPercent": "Download in corso… {{pct}}%",
|
|
"downloadStarted": "Download avviato",
|
|
"downloadStartedDescription": "Il download di {{name}} è avviato. La scorciatoia si attiverà al termine del processo.",
|
|
"downloadFailed": "Download non riuscito",
|
|
"stt": {
|
|
"label": "{{name}} (da voce a testo)",
|
|
"ready": "Modello scaricato.",
|
|
"missing": "Necessario per trascrivere il tuo audio",
|
|
"missingWithSize": "Necessario per trascrivere il tuo audio · {{size}}"
|
|
},
|
|
"llm": {
|
|
"label": "{{name}} (perfezionamento)",
|
|
"ready": "Modello scaricato.",
|
|
"missing": "Sistemazione della trascrizione grezza prima dell'incollo",
|
|
"missingWithSize": "Sistemazione della trascrizione grezza prima dell'incollo · {{size}}"
|
|
},
|
|
"inputMonitoring": {
|
|
"label": "Permesso Monitoraggio input",
|
|
"ready": "macOS consente a TalkBox di rilevare la tua scorciatoia globale.",
|
|
"missing": "macOS deve consentire a TalkBox di rilevare la scorciatoia globale.",
|
|
"openSettings": "Apri Impostazioni"
|
|
},
|
|
"accessibility": {
|
|
"label": "Permesso Accessibilità",
|
|
"ready": "TalkBox può incollare le trascrizioni in altre app.",
|
|
"missing": "Richiesto per poter incollare le trascrizioni nell'app in primo piano.",
|
|
"openSettings": "Apri Impostazioni"
|
|
}
|
|
},
|
|
"permissions": {
|
|
"accessibility": {
|
|
"title": "Concedi il permesso di Accessibilità per attivare l'incollo automatico",
|
|
"body": "TalkBox richiede <path>Impostazioni di Sistema → Privacy e Sicurezza → Accessibilità</path> per incollare le trascrizioni in altre app. Senza di questo, la tua dettatura verrà comunque salvata nella scheda Acquisizioni.",
|
|
"openSettings": "Apri Impostazioni",
|
|
"recheck": "L'ho abilitato",
|
|
"rechecking": "Verifica in corso…",
|
|
"stillMissing": "Non ancora rilevato. Di solito macOS richiede la chiusura e la riapertura di TalkBox dopo aver attivato il permesso."
|
|
},
|
|
"inputMonitoring": {
|
|
"title": "Concedi il Monitoraggio input per attivare la scorciatoia globale",
|
|
"body": "TalkBox richiede <path>Impostazioni di Sistema → Privacy e Sicurezza → Monitoraggio input</path> per rilevare la tua combinazione di dettatura. L'opzione è attiva, ma macOS sta bloccando gli eventi della tastiera finché non lo consenti.",
|
|
"openSettings": "Opzioni Impostazioni",
|
|
"recheck": "L'ho abilitato",
|
|
"rechecking": "Verifica in corso…",
|
|
"stillMissing": "Non ancora rilevato. Di solito macOS richiede la chiusura e la riapertura di TalkBox dopo aver attivato il permesso."
|
|
}
|
|
}
|
|
},
|
|
"voicesTab": {
|
|
"title": "Voci",
|
|
"loading": "Caricamento voci…",
|
|
"searchPlaceholder": "Cerca voci…",
|
|
"newVoice": "Nuova voce",
|
|
"avatarAlt": "Avatar di {{name}}",
|
|
"selectChannels": "Seleziona canali…",
|
|
"channelDefaultLabel": "{{name}} (Predefinito)",
|
|
"columns": {
|
|
"name": "Nome",
|
|
"language": "Lingua",
|
|
"generations": "Generazioni",
|
|
"samples": "Campioni",
|
|
"effects": "Effetti",
|
|
"channels": "Canali"
|
|
}
|
|
},
|
|
"voiceInspector": {
|
|
"loading": "Caricamento…",
|
|
"defaultEffectsHint": "Applicati automaticamente alle nuove generazioni con questa voce.",
|
|
"fields": {
|
|
"description": "Descrizione"
|
|
},
|
|
"toast": {
|
|
"invalidImageFormat": "Seleziona un formato PNG, JPG o WebP",
|
|
"avatarUpdated": "Avatar aggiornato",
|
|
"savedDescription": "\"{{name}}\" salvato."
|
|
}
|
|
},
|
|
"audioChannels": {
|
|
"title": "Canali audio",
|
|
"newChannel": "Nuovo canale",
|
|
"loading": "Caricamento…",
|
|
"confirmDelete": "Eliminare questo canale?",
|
|
"noVoicesAssigned": "Nessuna voce assegnata",
|
|
"selectDevice": "Seleziona dispositivo",
|
|
"addDevice": "Aggiungi dispositivo",
|
|
"addVoice": "Aggiungi voce",
|
|
"defaultSuffix": "predefinito",
|
|
"empty": {
|
|
"message": "Ancora nessun canale audio. Crea il tuo primo canale per reindirizzare le voci a dispositivi specifici.",
|
|
"action": "Crea canale"
|
|
},
|
|
"labels": {
|
|
"outputDevices": "Dispositivi di output",
|
|
"assignedVoices": "Voci assegnate"
|
|
},
|
|
"devices": {
|
|
"title": "Dispositivi disponibili",
|
|
"defaultNote": "Il canale predefinito utilizza il dispositivo predefinito di sistema",
|
|
"toggleHint": "Clicca sui dispositivi per aggiungerli o rimuoverli dal canale selezionato",
|
|
"selectHint": "Seleziona un canale per assegnare i dispositivi",
|
|
"empty": "Nessun dispositivo audio trovato",
|
|
"requiresTauri": "La selezione del dispositivo audio richiede Tauri"
|
|
},
|
|
"fields": {
|
|
"name": "Nome canale",
|
|
"namePlaceholder": "es. Virtual Cable, Broadcast"
|
|
},
|
|
"createDialog": {
|
|
"title": "Crea canale audio",
|
|
"description": "Crea un nuovo canale audio (bus) per reindirizzare le voci a dispositivi di output specifici.",
|
|
"action": "Crea"
|
|
},
|
|
"editDialog": {
|
|
"title": "Modifica canale",
|
|
"description": "Aggiorna le impostazioni del canale e le assegnazioni delle voci."
|
|
}
|
|
},
|
|
"profileForm": {
|
|
"createTitle": "Crea voce",
|
|
"editTitle": "Modifica voce",
|
|
"createDescription": "Crea un nuovo profilo vocale da un campione audio o da una voce integrata.",
|
|
"editDescription": "Aggiorna i dettagli del tuo profilo vocale e gestisci i campioni.",
|
|
"draftRestored": "Bozza ripristinata",
|
|
"discard": "Scarta",
|
|
"source": {
|
|
"clone": "Clona da audio",
|
|
"builtin": "Voce integrata"
|
|
},
|
|
"builtin": {
|
|
"hint": "Scegli una voce predefinita. Queste non richiedono un campione audio.",
|
|
"badge": "Voce integrata",
|
|
"note": "Questo profilo utilizza una voce integrata. La voce non può essere modificata dopo la creazione."
|
|
},
|
|
"sampleTabs": {
|
|
"upload": "Carica",
|
|
"record": "Registra",
|
|
"system": "Audio di sistema"
|
|
},
|
|
"fields": {
|
|
"engine": "Motore",
|
|
"voice": "Voce",
|
|
"name": "Nome",
|
|
"namePlaceholder": "La mia voce",
|
|
"descriptionLabel": "Descrizione (Facoltativa)",
|
|
"descriptionPlaceholder": "Descrivi questa voce…",
|
|
"language": "Lingua",
|
|
"referenceText": "Testo di riferimento",
|
|
"referenceTextPlaceholder": "Inserisci il testo esatto pronunciato nell'audio…",
|
|
"defaultEngine": "Motore predefinito",
|
|
"noPreference": "Nessuna preferenza",
|
|
"defaultEngineHint": "Seleziona automaticamente questo motore quando viene scelto il profilo.",
|
|
"defaultEffects": "Effetti predefiniti",
|
|
"defaultEffectsHint": "Effetti applicati automaticamente a tutte le nuove generazioni con questa voce.",
|
|
"personalityLabel": "Personalità",
|
|
"personalityPlaceholder": "es. \"un pirata scontroso che parla solo con metafore marinaresche\"",
|
|
"personalityHint": "Chi è questa voce e come parla. Guida il pulsante Componi e l'opzione di riscrittura nel personaggio nella pagina di generazione. Lascia vuoto per nasconderli entrambi."
|
|
},
|
|
"avatar": {
|
|
"alt": "Anteprima avatar"
|
|
},
|
|
"actions": {
|
|
"saving": "Salvataggio…",
|
|
"saveChanges": "Salva modifiche",
|
|
"createProfile": "Crea profilo"
|
|
},
|
|
"validation": {
|
|
"nameRequired": "Il nome è richiesto",
|
|
"referenceRequired": "Il testo di riferimento è richiesto quando si aggiunge un campione",
|
|
"sampleRequired": "Il campione audio è richiesto",
|
|
"referenceTextRequired": "Il testo di riferimento è richiesto",
|
|
"audioTooLong": "L'audio è troppo lungo ({{duration}}). La durata massima è {{max}}.",
|
|
"audioFailed": "Impossibile convalidare il file audio. Prova con un file diverso."
|
|
},
|
|
"toast": {
|
|
"recordingComplete": "Registrazione completata",
|
|
"recordingCompleteDescription": "L'audio è stato registrato con successo.",
|
|
"recordingError": "Errore di registrazione",
|
|
"systemAudioCaptured": "Audio di sistema acquisito",
|
|
"systemAudioCapturedDescription": "L'audio è stato acquisito con successo.",
|
|
"systemAudioError": "Errore di acquisizione dell'audio di sistema",
|
|
"transcribeFailed": "Trascrizione non riuscita",
|
|
"transcribeFailedFallback": "Impossibile trascrivere l'audio",
|
|
"noFile": "Nessun file selezionato",
|
|
"noFileDescription": "Seleziona prima un file audio.",
|
|
"invalidFile": "Tipo di file non valido",
|
|
"invalidImageFormat": "Seleziona un file immagine (PNG, JPG o WebP)",
|
|
"fileTooLarge": "File troppo grande",
|
|
"imageTooLargeDescription": "L'immagine deve essere inferiore a 5MB",
|
|
"avatarRemoved": "Avatar rimosso",
|
|
"avatarRemovedDescription": "L'immagine dell'avatar è stata rimossa con successo.",
|
|
"avatarRemoveFailed": "Impossibile rimuovere l'avatar",
|
|
"avatarUploadFailed": "Caricamento dell'avatar non riuscito",
|
|
"avatarUploadFailedFallback": "Impossibile caricare l'avatar",
|
|
"effectsUpdateFailed": "Aggiornamento degli effetti non riuscito",
|
|
"effectsUpdateFailedFallback": "Impossibile salvare la catena di effetti",
|
|
"voiceUpdated": "Voce aggiornata",
|
|
"voiceUpdatedDescription": "\"{{name}}\" è stata aggiornata con successo.",
|
|
"noVoiceSelected": "Nessuna voce selezionata",
|
|
"noVoiceSelectedDescription": "Seleziona una voce integrata.",
|
|
"profileCreated": "Profilo creato",
|
|
"profileCreatedBuiltin": "\"{{name}}\" è stato creato con una voce integrata.",
|
|
"profileCreatedSample": "\"{{name}}\" è stato creato con un campione.",
|
|
"sampleRequired": "Campione audio richiesto",
|
|
"sampleRequiredDescription": "Fornisci un campione audio per creare il profilo vocale.",
|
|
"referenceTextRequired": "Testo di riferimento richiesto",
|
|
"referenceTextRequiredDescription": "Fornisci il testo di riferimento per il campione audio.",
|
|
"invalidAudio": "File audio non valido",
|
|
"invalidAudioDescription": "La durata dell'audio è {{duration}}, ma il massimo consentito è {{max}}.",
|
|
"validationError": "Errore di convalida",
|
|
"rollbackFailed": "Ripristino non riuscito",
|
|
"rollbackFailedDescription": "Impossibile rimuovere il profilo creato dopo il fallimento del caricamento del campione.",
|
|
"profileRolledBack": "Il profilo è stato ripristinato.",
|
|
"sampleFailed": "Impossibile aggiungere il campione",
|
|
"sampleFailedDescription": "Impossibile aggiungere il campione.",
|
|
"sampleFailedRolledBack": "Impossibile aggiungere il campione. Il profilo è stato ripristinato.",
|
|
"saveFailed": "Impossibile salvare il profilo"
|
|
}
|
|
},
|
|
"audioSample": {
|
|
"chooseFile": "Scegli file",
|
|
"uploadHint": "Clicca per scegliere un file o trascinalo qui. Durata massima: 30 secondi.",
|
|
"fileUploaded": "File caricato",
|
|
"fileLabel": "File: {{name}}",
|
|
"play": "Riproduci",
|
|
"pause": "Pausa",
|
|
"transcribe": "Trascrivi",
|
|
"transcribing": "Trascrizione in corso…",
|
|
"remove": "Rimuovi",
|
|
"startRecording": "Avvia registrazione",
|
|
"recordHint": "Clicca per avviare la registrazione. Durata massima: 30 secondi.",
|
|
"stopRecording": "Interrompi registrazione",
|
|
"remaining": "{{time}} rimanenti",
|
|
"recordingComplete": "Registrazione completata",
|
|
"recordAgain": "Registra di nuovo",
|
|
"startCapture": "Avvia acquisizione",
|
|
"systemHint": "Acquisisci l'audio dal tuo sistema. Durata massima: 30 secondi.",
|
|
"stopCapture": "Interrompi acquisizione",
|
|
"captureComplete": "Acquisizione completata",
|
|
"captureAgain": "Acquisisci di nuovo"
|
|
},
|
|
"sampleList": {
|
|
"loading": "Caricamento campioni…",
|
|
"empty": {
|
|
"title": "Ancora nessun campione",
|
|
"hint": "Aggiungi il tuo primo campione audio per iniziare"
|
|
},
|
|
"editing": "Modifica della trascrizione",
|
|
"placeholder": "Inserisci il testo di riferimento…",
|
|
"saving": "Salvataggio…",
|
|
"editTranscription": "Modifica trascrizione",
|
|
"deleteSample": "Elimina campione",
|
|
"addSample": "Aggiungi campione",
|
|
"note": "Nota: Un singolo campione di 30 secondi rappresenta la combinazione ideale. La qualità potrebbe diminuire con più campioni. In un aggiornamento futuro, i campioni potrebbero essere intercambiabili e contrassegnati per stili diversi della stessa voce.",
|
|
"deleteDialog": {
|
|
"title": "Elimina campione",
|
|
"description": "Sei sicuro di voler eliminare questo campione audio? Questa azione non può essere annullata.",
|
|
"deleting": "Eliminazione in corso…"
|
|
},
|
|
"player": {
|
|
"play": "Riproduci campione",
|
|
"pause": "Pausa campione",
|
|
"stop": "Interrompi",
|
|
"stopAria": "Interrompi riproduzione",
|
|
"position": "Posizione riproduzione campione",
|
|
"positionValue": "{{current}} di {{total}}"
|
|
},
|
|
"toast": {
|
|
"invalidText": "Testo non valido",
|
|
"invalidTextDescription": "Il testo di riferimento non può essere vuoto.",
|
|
"updated": "Campione aggiornato",
|
|
"updatedDescription": "Il testo di riferimento è stato aggiornato con successo.",
|
|
"updateFailed": "Aggiornamento non riuscito",
|
|
"updateFailedFallback": "Impossibile aggiornare il campione"
|
|
}
|
|
},
|
|
"profiles": {
|
|
"card": {
|
|
"noDescription": "Nessuna descrizione",
|
|
"designed": "progettato",
|
|
"export": "Esporta profilo",
|
|
"edit": "Modifica profilo",
|
|
"delete": "Elimina profilo",
|
|
"selectLabel": "{{name}}, {{language}}. Seleziona come voce per la generazione.",
|
|
"selectLabelSelected": "{{name}}, {{language}}. Selezionato come voce per la generazione."
|
|
},
|
|
"list": {
|
|
"errorLoading": "Errore durante il caricamento dei profili: {{message}}",
|
|
"empty": "Ancora nessun profilo vocale. Crea il tuo primo profilo per iniziare.",
|
|
"createVoice": "Crea voce",
|
|
"unsupportedNote": "È possibile selezionare solo i profili vocali supportati dal modello attuale."
|
|
},
|
|
"deleteDialog": {
|
|
"title": "Elimina profilo",
|
|
"body": "Sei sicuro di voler eliminare \"{{name}}\"? Questa azione non può essere annullata.",
|
|
"deleting": "Eliminazione in corso…"
|
|
}
|
|
},
|
|
"effects": {
|
|
"title": "Effetti",
|
|
"newPreset": "Nuovo preset",
|
|
"noDescription": "Nessuna descrizione",
|
|
"placeholder": "Seleziona un preset o creane uno nuovo",
|
|
"effectCount_one": "{{count}} effetto",
|
|
"effectCount_other": "{{count}} effetti",
|
|
"sections": {
|
|
"builtin": "Integrati",
|
|
"custom": "Personalizzati",
|
|
"new": "Nuovo"
|
|
},
|
|
"badge": {
|
|
"builtin": "integrato"
|
|
},
|
|
"unsaved": {
|
|
"title": "Preset non salvato",
|
|
"hint": "Configura gli effetti nel pannello di destra."
|
|
},
|
|
"detail": {
|
|
"newTitle": "Nuovo preset",
|
|
"editTitle": "Modifica preset",
|
|
"savePreset": "Salva preset",
|
|
"saveAsCustom": "Salva come personalizzato",
|
|
"saving": "Salvataggio…",
|
|
"deleting": "Eliminazione in corso…"
|
|
},
|
|
"fields": {
|
|
"name": "Nome",
|
|
"namePlaceholder": "Il mio preset…",
|
|
"description": "Descrizione",
|
|
"descriptionPlaceholder": "Descrivi cosa fa questo preset…"
|
|
},
|
|
"preview": {
|
|
"label": "Anteprima",
|
|
"button": "Anteprima",
|
|
"processing": "Elaborazione in corso…",
|
|
"hint": "L'anteprima applica gli effetti alla versione pulita senza salvare."
|
|
},
|
|
"saveAs": {
|
|
"title": "Salva come preset personalizzato",
|
|
"description": "Crea un nuovo preset personalizzato basato sulla catena di effetti attuale.",
|
|
"suggestedName": "{{name}} (Copia)"
|
|
},
|
|
"toast": {
|
|
"saved": "Preset salvato",
|
|
"createdDescription": "\"{{name}}\" è stato creato.",
|
|
"updated": "Preset aggiornato",
|
|
"deleted": "Preset eliminato",
|
|
"saveFailed": "Salvataggio non riuscito",
|
|
"deleteFailed": "Eliminazione non riuscita",
|
|
"previewFailed": "Anteprima non riuscita",
|
|
"nameRequired": "Nome richiesto"
|
|
},
|
|
"chain": {
|
|
"loadPreset": "Carica preset…",
|
|
"addEffect": "Aggiungi effetto…",
|
|
"clear": "Svuota",
|
|
"enable": "Abilita",
|
|
"disable": "Disabilita",
|
|
"remove": "Rimuovi"
|
|
},
|
|
"types": {
|
|
"chorus": {
|
|
"label": "Chorus / Flanger",
|
|
"params": {
|
|
"rate_hz": "Velocità LFO (Hz)",
|
|
"depth": "Profondità di modulazione",
|
|
"feedback": "Quantità di feedback",
|
|
"centre_delay_ms": "Ritardo centrale (ms)",
|
|
"mix": "Miscela Wet/Dry"
|
|
}
|
|
},
|
|
"reverb": {
|
|
"label": "Riverbero",
|
|
"params": {
|
|
"room_size": "Dimensione stanza",
|
|
"damping": "Smorzamento alte frequenze",
|
|
"wet_level": "Livello Wet",
|
|
"dry_level": "Livello Dry",
|
|
"width": "Ampiezza stereo"
|
|
}
|
|
},
|
|
"delay": {
|
|
"label": "Delay",
|
|
"params": {
|
|
"delay_seconds": "Tempo di ritardo (secondi)",
|
|
"feedback": "Quantità di feedback",
|
|
"mix": "Miscela Wet/Dry"
|
|
}
|
|
},
|
|
"compressor": {
|
|
"label": "Compressore",
|
|
"params": {
|
|
"threshold_db": "Soglia (dB)",
|
|
"ratio": "Rapporto di compressione",
|
|
"attack_ms": "Tempo di attacco (ms)",
|
|
"release_ms": "Tempo di rilascio (ms)"
|
|
}
|
|
},
|
|
"gain": {
|
|
"label": "Guadagno",
|
|
"params": {
|
|
"gain_db": "Guadagno (dB)"
|
|
}
|
|
},
|
|
"highpass": {
|
|
"label": "Filtro passa-alto",
|
|
"params": {
|
|
"cutoff_frequency_hz": "Frequenza di taglio (Hz)"
|
|
}
|
|
},
|
|
"lowpass": {
|
|
"label": "Filtro passa-basso",
|
|
"params": {
|
|
"cutoff_frequency_hz": "Frequenza di taglio (Hz)"
|
|
}
|
|
},
|
|
"pitch_shift": {
|
|
"label": "Pitch Shift",
|
|
"params": {
|
|
"semitones": "Semitoni di spostamento"
|
|
}
|
|
}
|
|
},
|
|
"builtinPresets": {
|
|
"Robotic": {
|
|
"name": "Robotico",
|
|
"description": "Voce robotica metallica (flanger con LFO lento e feedback elevato)"
|
|
},
|
|
"Radio": {
|
|
"name": "Radio",
|
|
"description": "Voce sottile da radio AM con filtraggio passa-banda e leggera compressione"
|
|
},
|
|
"Echo Chamber": {
|
|
"name": "Camera d'eco",
|
|
"description": "Riverbero ampio con eco prolungato"
|
|
},
|
|
"Deep Voice": {
|
|
"name": "Voce profonda",
|
|
"description": "Tonalità più bassa con maggiore calore"
|
|
}
|
|
}
|
|
},
|
|
"stories": {
|
|
"title": "Storie",
|
|
"newStory": "Nuova storia",
|
|
"loading": "Caricamento storie…",
|
|
"searchPlaceholder": "Cerca storie…",
|
|
"empty": {
|
|
"title": "Ancora nessuna storia",
|
|
"hint": "Crea la tua prima storia per iniziare",
|
|
"noMatches": "Nessuna storia corrisponde a \"{{query}}\""
|
|
},
|
|
"row": {
|
|
"itemCount_one": "{{count}} elemento",
|
|
"itemCount_other": "{{count}} elementi",
|
|
"ariaLabel": "Storia {{name}}, {{count}} elementi, {{updated}}",
|
|
"actionsLabel": "Azioni per {{name}}"
|
|
},
|
|
"createDialog": {
|
|
"title": "Crea nuova storia",
|
|
"description": "Crea una nuova storia per organizzare le tue generazioni vocali in conversazioni.",
|
|
"action": "Crea",
|
|
"creating": "Creazione in corso…"
|
|
},
|
|
"editDialog": {
|
|
"title": "Modifica storia",
|
|
"description": "Aggiorna il nome e la descrizione della storia.",
|
|
"saving": "Salvataggio in corso…"
|
|
},
|
|
"deleteDialog": {
|
|
"title": "Sei sicuro?",
|
|
"description": "Questo eliminerà permanentemente la storia e tutti i suoi elementi. Questa azione non può essere annullata.",
|
|
"deleting": "Eliminazione in corso…"
|
|
},
|
|
"fields": {
|
|
"name": "Nome",
|
|
"namePlaceholder": "La mia storia",
|
|
"descriptionLabel": "Descrizione (facoltativa)",
|
|
"descriptionPlaceholder": "Una conversazione tra…"
|
|
},
|
|
"toast": {
|
|
"nameRequired": "Nome richiesto",
|
|
"nameRequiredDescription": "Inserisci il nome della storia",
|
|
"created": "Storia creata",
|
|
"createdDescription": "\"{{name}}\" è stata creata",
|
|
"createFailed": "Impossibile creare la storia",
|
|
"updateFailed": "Impossibile aggiornare la storia",
|
|
"deleteFailed": "Impossibile eliminare la storia"
|
|
}
|
|
},
|
|
"storyContent": {
|
|
"selectStory": {
|
|
"title": "Seleziona una storia",
|
|
"hint": "Scegli una storia dall'elenco per visualizzarne il contenuto"
|
|
},
|
|
"loading": "Caricamento storia…",
|
|
"notFound": {
|
|
"title": "Storia non trovata",
|
|
"hint": "Impossibile caricare la storia selezionata"
|
|
},
|
|
"generatingCount_one": "Generazione di {{count}} traccia audio",
|
|
"generatingCount_other": "Generazione di {{count}} tracce audio",
|
|
"add": "Aggiungi",
|
|
"searchPlaceholder": "Cerca per nome o trascrizione…",
|
|
"searchNoMatches": "Nessuna generazione corrispondente trovata",
|
|
"searchNoAvailable": "Nessuna generazione disponibile",
|
|
"exportAudio": "Esporta audio",
|
|
"empty": {
|
|
"title": "Nessun elemento in questa storia",
|
|
"hint": "Genera del testo parlato utilizzando la casella sottostante per aggiungere elementi"
|
|
},
|
|
"itemActions": {
|
|
"playFromHere": "Riproduci da qui",
|
|
"regenerate": "Rigenera",
|
|
"removeFromStory": "Rimuovi dalla storia"
|
|
},
|
|
"importAudio": "Importa audio…",
|
|
"importing": "Importazione in corso…",
|
|
"dropToImport": "Rilascia l'audio per importarlo",
|
|
"toast": {
|
|
"removeFailed": "Impossibile rimuovere l'elemento",
|
|
"reorderFailed": "Impossibile riordinare gli elementi",
|
|
"exportFailed": "Impossibile esportare l'audio",
|
|
"addFailed": "Impossibile aggiungere la generazione",
|
|
"regenerateFailed": "Impossibile rigenerare",
|
|
"importFailed": "Impossibile importare l'audio"
|
|
}
|
|
},
|
|
"history": {
|
|
"empty": "Ancora nessuna generazione vocale…",
|
|
"actions": {
|
|
"menu": "Azioni",
|
|
"play": "Riproduci",
|
|
"exportAudio": "Esporta audio",
|
|
"exportPackage": "Esporta pacchetto",
|
|
"applyEffects": "Applica effetti",
|
|
"regenerate": "Rigenera"
|
|
},
|
|
"deleteDialog": {
|
|
"title": "Elimina generazione",
|
|
"body": "Sei sicuro di voler eliminare questa generazione da \"{{name}}\"? Questa azione non può essere annullata.",
|
|
"deleting": "Eliminazione in corso…"
|
|
},
|
|
"clearFailedDialog": {
|
|
"title": "Cancella generazioni non riuscite",
|
|
"body_one": "Questo eliminerà permanentemente {{count}} generazione non riuscita dalla tua cronologia. L'azione non può essere annullata.",
|
|
"body_other": "Questo eliminerà permanentemente {{count}} generazioni non riuscite dalla tua cronologia. L'azione non può essere annullata.",
|
|
"clearing": "Cancellazione in corso…",
|
|
"clearAll": "Cancella tutto"
|
|
},
|
|
"importDialog": {
|
|
"title": "Importa generazione",
|
|
"body": "Importa la generazione da \"{{name}}\". Questo la aggiungerà alla tua cronologia.",
|
|
"importing": "Importazione in corso…",
|
|
"action": "Importa"
|
|
},
|
|
"effectsDialog": {
|
|
"title": "Applica effetti",
|
|
"body": "Configura gli effetti di post-elaborazione da applicare a questa generazione. Verrà creata una nuova versione.",
|
|
"sourceLabel": "Sorgente",
|
|
"sourcePlaceholder": "Seleziona la versione sorgente",
|
|
"apply": "Applica",
|
|
"applying": "Applicazione in corso…"
|
|
}
|
|
},
|
|
"generation": {
|
|
"placeholder": {
|
|
"storyWithEffects": "Genera testo parlato per \"{{name}}\"… (digita / per gli effetti)",
|
|
"story": "Genera testo parlato per \"{{name}}\"…",
|
|
"profile": "Genera testo parlato usando {{name}}…",
|
|
"effectsHint": "Digita / per effetti come [risata], [sospiro]…",
|
|
"selectVoice": "Seleziona un profilo vocale qui sopra…"
|
|
},
|
|
"button": {
|
|
"generate": "Genera testo parlato",
|
|
"generating": "Generazione in corso…",
|
|
"selectFirst": "Seleziona prima un profilo vocale"
|
|
},
|
|
"instruct": {
|
|
"show": "Mostra istruzioni di pronuncia",
|
|
"hide": "Nascondi istruzioni di pronuncia",
|
|
"tooltip": "Istruzioni di pronuncia (tono, emozione, ritmo)",
|
|
"placeholder": "Istruzioni di pronuncia — es. Parla lentamente con calore, Autorevole e chiaro…"
|
|
},
|
|
"voiceSelector": {
|
|
"placeholder": "Seleziona una voce…"
|
|
},
|
|
"effects": {
|
|
"none": "Nessun effetto",
|
|
"profileDefault": "Predefinito del profilo"
|
|
},
|
|
"compose": {
|
|
"tooltip": "Componi",
|
|
"ariaLabel": "Componi una battuta nel personaggio",
|
|
"failedTitle": "Composizione non riuscita",
|
|
"failedDescription": "Impossibile generare il testo da questa personalità."
|
|
},
|
|
"persona": {
|
|
"tooltipActive": "Parla nel personaggio",
|
|
"tooltipInactive": "Parla nel personaggio",
|
|
"ariaLabelActive": "Parla nel personaggio",
|
|
"ariaLabelInactive": "Parla nel personaggio"
|
|
}
|
|
},
|
|
"main": {
|
|
"importVoice": "Importa voce",
|
|
"createVoice": "Crea voce",
|
|
"import": {
|
|
"invalidTitle": "Tipo di file non valido",
|
|
"invalidDescription": "Seleziona un file .talkbox.zip valido",
|
|
"successTitle": "Profilo importato",
|
|
"successDescription": "Profilo vocale importato con successo",
|
|
"failedTitle": "Impossibile importare il profilo",
|
|
"dialogTitle": "Importa profilo",
|
|
"dialogDescription": "Importa il profilo da \"{{name}}\". Questo creerà un nuovo profilo contenente tutti i campioni.",
|
|
"importing": "Importazione in corso…",
|
|
"action": "Importa"
|
|
}
|
|
},
|
|
"settings": {
|
|
"tabs": {
|
|
"general": "Generali",
|
|
"generation": "Generazione",
|
|
"captures": "Acquisizioni",
|
|
"mcp": "MCP",
|
|
"gpu": "GPU",
|
|
"logs": "Log",
|
|
"changelog": "Registro modifiche",
|
|
"about": "Informazioni"
|
|
},
|
|
"language": {
|
|
"label": "Lingua",
|
|
"description": "Scegli la lingua di visualizzazione di TalkBox."
|
|
},
|
|
"theme": {
|
|
"label": "Tema",
|
|
"description": "Adatta al sistema, oppure scegli un aspetto fisso chiaro o scuro.",
|
|
"options": {
|
|
"system": "Sistema",
|
|
"light": "Chiaro",
|
|
"dark": "Scuro"
|
|
}
|
|
},
|
|
"general": {
|
|
"docs": {
|
|
"title": "Leggi la documentazione"
|
|
},
|
|
"discord": {
|
|
"title": "Unisciti a Discord",
|
|
"subtitle": "Ricevi aiuto e condividi le voci"
|
|
},
|
|
"serverUrl": {
|
|
"title": "URL del server",
|
|
"description": "L'indirizzo del server backend di TalkBox.",
|
|
"invalidUrl": "Inserisci un URL valido",
|
|
"updatedTitle": "URL del server aggiornato",
|
|
"updatedDescription": "Connesso a {{url}}"
|
|
},
|
|
"keepServerRunning": {
|
|
"title": "Mantieni il server in esecuzione alla chiusura dell'app",
|
|
"description": "Il server continuerà a funzionare in background dopo la chiusura dell'applicazione.",
|
|
"failedTitle": "Impossibile aggiornare l'impostazione",
|
|
"failedDescription": "Impossibile sincronizzare l'impostazione con il backend.",
|
|
"updatedTitle": "Impostazione aggiornata",
|
|
"runningDescription": "Il server rimarrà in esecuzione alla chiusura dell'app",
|
|
"stoppedDescription": "Il server si arresterà alla chiusura dell'app"
|
|
},
|
|
"networkAccess": {
|
|
"title": "Consenti l'accesso alla rete",
|
|
"description": "Rende il server accessibile da altri dispositivi sulla tua rete. Riavvia l'app dopo la modifica.",
|
|
"updatedTitle": "Impostazione aggiornata",
|
|
"enabled": "Accesso alla rete abilitato. Riavvia l'app per applicare le modifiche.",
|
|
"disabled": "Accesso alla rete disabilitato. Riavvia l'app per applicare le modifiche."
|
|
},
|
|
"connection": {
|
|
"connecting": "Connessione in corso",
|
|
"offline": "Offline",
|
|
"online": "Online"
|
|
},
|
|
"updates": {
|
|
"title": "Aggiornamenti dell'app",
|
|
"devSuffix": " (sviluppo)",
|
|
"devMode": {
|
|
"title": "Modalità di sviluppo",
|
|
"description": "Gli aggiornamenti automatici sono disabilitati in modalità di sviluppo."
|
|
},
|
|
"check": {
|
|
"title": "Controlla aggiornamenti",
|
|
"available": "Versione {{version}} disponibile",
|
|
"checking": "Verifica in corso…",
|
|
"upToDate": "L'applicazione è aggiornata",
|
|
"button": "Controlla"
|
|
},
|
|
"error": "Errore di aggiornamento",
|
|
"download": {
|
|
"title": "Aggiorna alla versione {{version}}",
|
|
"description": "Scarica e installa l'ultima versione.",
|
|
"button": "Scarica"
|
|
},
|
|
"downloading": "Download dell'aggiornamento in corso…",
|
|
"ready": {
|
|
"title": "Aggiornamento pronto per l'installazione",
|
|
"description": "La versione {{version}} è stata scaricata. Riavvia per completare.",
|
|
"button": "Riavvia ora"
|
|
}
|
|
},
|
|
"api": {
|
|
"title": "Accesso API",
|
|
"description": "Integra TalkBox nel tuo flusso di lavoro tramite l'API REST all'indirizzo <code>{{url}}</code>",
|
|
"viewReference": "Visualizza il riferimento API completo",
|
|
"endpoints": {
|
|
"generate": "Genera testo parlato",
|
|
"health": "Stato del server",
|
|
"profiles": "Elenca voci",
|
|
"history": "Generazioni passate"
|
|
}
|
|
}
|
|
},
|
|
"generation": {
|
|
"title": "Generazione",
|
|
"description": "Controlli per la generazione di testi lunghi. Queste impostazioni si applicano a tutti i motori.",
|
|
"chunkLimit": {
|
|
"title": "Limite di suddivisione automatica",
|
|
"description": "I testi lunghi vengono suddivisi in blocchi in corrispondenza dei confini delle frasi. Valori più bassi possono migliorare la qualità per output lunghi.",
|
|
"value": "{{chars}} caratteri"
|
|
},
|
|
"crossfade": {
|
|
"title": "Dissolvenza incrociata tra blocchi",
|
|
"description": "Sfuma l'audio tra i blocchi per rendere fluide le transizioni. Imposta a 0 per un taglio netto.",
|
|
"cut": "Taglio netto",
|
|
"ms": "{{ms}}ms"
|
|
},
|
|
"normalize": {
|
|
"title": "Normalizza audio",
|
|
"description": "Regola il volume dell'output a un livello coerente in tutte le generazioni."
|
|
},
|
|
"autoplay": {
|
|
"title": "Riproduzione automatica alla generazione",
|
|
"description": "Riproduci automaticamente l'audio al completamento di una generazione."
|
|
},
|
|
"folder": {
|
|
"title": "Cartella delle generazioni",
|
|
"description": "Cartella del disco in cui vengono memorizzati i file audio generati.",
|
|
"open": "Apri"
|
|
},
|
|
"sidebar": {
|
|
"aboutTitle": "Informazioni sulla generazione vocale",
|
|
"aboutBody": "Clona una voce da un breve campione, quindi genera testo parlato in qualsiasi voce e in qualsiasi lingua. Integra la sintesi vocale (TTS) in agenti IA, giochi, podcast o narrazioni a lungo formato.",
|
|
"differencesTitle": "Cosa cambia",
|
|
"clone": {
|
|
"title": "Clona qualsiasi voce in pochi secondi.",
|
|
"body": "Bastano pochi secondi di audio di riferimento. Supporto multi-campione per una qualità superiore quando ne hai bisogno."
|
|
},
|
|
"engines": {
|
|
"title": "Sette motori, 23 lingue.",
|
|
"body": "Scegli il compromesso più adatto alle tue esigenze tra qualità, velocità o copertura multilingue."
|
|
},
|
|
"agentReady": {
|
|
"title": "Pronto per gli agenti.",
|
|
"body": "API REST con controllo per singolo profilo — assegna a qualsiasi IA una voce che hai clonato."
|
|
}
|
|
}
|
|
},
|
|
"captures": {
|
|
"dictation": {
|
|
"title": "Dettatura",
|
|
"description": "Acquisisci audio da qualsiasi punto del tuo computer con una scorciatoia globale.",
|
|
"globalShortcut": {
|
|
"title": "Scorciatoia globale",
|
|
"description": "Tieni premuta la scorciatoia per registrare da qualsiasi punto del tuo computer. Rilascia per trascrivere."
|
|
},
|
|
"pushToTalk": {
|
|
"title": "Scorciatoia Push-to-talk",
|
|
"description": "Tieni premuti questi tasti in qualsiasi punto del sistema per registrare. Rilascia per interrompere e trascrivere.",
|
|
"change": "Cambia"
|
|
},
|
|
"toggle": {
|
|
"title": "Scorciatoia di attivazione/disattivazione",
|
|
"description": "Premi una volta per avviare una registrazione a mani libere. Premi di nuovo per interromperla. Di solito corrisponde alla combinazione push-to-talk più lo Spazio.",
|
|
"change": "Cambia"
|
|
},
|
|
"chordPicker": {
|
|
"pttTitle": "Imposta la scorciatoia push-to-talk",
|
|
"pttDescription": "Tieni premuti i tasti che desideri utilizzare, quindi rilasciali e clicca su Salva. L'indicatore del tasto modificatore sul lato destro mostra se si tratta della variante sinistra o destra.",
|
|
"toggleTitle": "Imposta la scorciatoia di attivazione/disattivazione",
|
|
"toggleDescription": "Tieni premuti i tasti che desideri utilizzare, quindi rilasciali e clicca su Salva. Scegli una combinazione diversa rispetto a quella del push-to-talk."
|
|
},
|
|
"preview": {
|
|
"title": "Anteprima",
|
|
"description": "Cosa appare sullo schermo mentre tieni premuta la scorciatoia."
|
|
},
|
|
"copyToClipboard": {
|
|
"title": "Copia trascrizione negli appunti",
|
|
"description": "La trascrizione ripulita viene salvata negli appunti al termine dell'acquisizione."
|
|
},
|
|
"autoPaste": {
|
|
"title": "Incollo automatico nel campo di testo attivo",
|
|
"description": "Se un campo di inserimento testo è attivo in un'altra app, incolla direttamente al suo interno. TalkBox salva e ripristina il contenuto precedente dei tuoi appunti."
|
|
}
|
|
},
|
|
"transcription": {
|
|
"title": "Trascrizione",
|
|
"description": "Scegli quale modello di riconoscimento vocale (speech-to-text) eseguire sulle tue acquisizioni.",
|
|
"model": {
|
|
"title": "Modello di trascrizione",
|
|
"description": "Whisper è integrato in TalkBox ed è eseguito interamente sul tuo computer.",
|
|
"base": "Whisper Base · 74M · {{tail}}",
|
|
"small": "Whisper Small · 244M · {{tail}}",
|
|
"medium": "Whisper Medium · 769M · {{tail}}",
|
|
"large": "Whisper Large · 1.5B · {{tail}}",
|
|
"turbo": "Whisper Turbo · Large v3 ridotto · {{tail}}",
|
|
"tail": {
|
|
"fast": "Veloce",
|
|
"balanced": "Bilanciato",
|
|
"higher": "Precisione superiore",
|
|
"best": "Massima precisione",
|
|
"nearBest": "Precisione quasi massima, veloce"
|
|
}
|
|
},
|
|
"language": {
|
|
"title": "Lingua",
|
|
"description": "Il rilevamento automatico funziona per la maggior parte delle acquisizioni. Imposta una lingua fissa se parli sempre la stessa.",
|
|
"auto": "Rilevamento automatico",
|
|
"en": "Inglese",
|
|
"es": "Spagnolo",
|
|
"fr": "Francese",
|
|
"de": "Tedesco",
|
|
"ja": "Giapponese",
|
|
"zh": "Cinese",
|
|
"hi": "Hindi"
|
|
},
|
|
"archive": {
|
|
"title": "Archivia audio",
|
|
"description": "Conserva la registrazione originale insieme a ciascuna trascrizione."
|
|
}
|
|
},
|
|
"refinement": {
|
|
"title": "Perfezionamento",
|
|
"description": "Esegui facoltativamente un modello linguistico locale (LLM) sulle trascrizioni per rimuovere intercalari, correggere la punteggiatura e le autocorrezioni.",
|
|
"auto": {
|
|
"title": "Perfeziona automaticamente le trascrizioni",
|
|
"description": "Viene eseguito dopo ogni acquisizione. Puoi comunque passare dalla versione grezza a quella perfezionata nella scheda Acquisizioni."
|
|
},
|
|
"model": {
|
|
"title": "Modello di perfezionamento",
|
|
"description": "I modelli più grandi sono più lenti ma gestiscono meglio le sottili autocorrezioni e il vocabolario tecnico.",
|
|
"size06": "Qwen3 · 0.6B · 400 MB · {{tail}}",
|
|
"size17": "Qwen3 · 1.7B · 1.1 GB · {{tail}}",
|
|
"size40": "Qwen3 · 4B · 2.5 GB · {{tail}}",
|
|
"tail": {
|
|
"veryFast": "Molto veloce",
|
|
"fast": "Veloce",
|
|
"fullQuality": "Massima qualità"
|
|
}
|
|
},
|
|
"smartCleanup": {
|
|
"title": "Pulizia intelligente",
|
|
"description": "Rimuovi gli intercalari (ehm, uh, cioè), ripristina la punteggiatura e correggi le maiuscole senza riformulare il testo."
|
|
},
|
|
"selfCorrection": {
|
|
"title": "Rimuovi autocorrezioni",
|
|
"description": "Quando cambi idea a metà frase (\"anzi no...\", \"aspetta, volevo dire...\"), elimina la parte ritrattata e mantieni solo l'intenzione finale."
|
|
},
|
|
"preserveTechnical": {
|
|
"title": "Preserva i termini tecnici",
|
|
"description": "Mantieni gli identificatori di codice, i nomi dei comandi e gli acronimi esattamente come vengono pronunciati. Attiva questa opzione quando detti all'interno di un prompt di codice."
|
|
}
|
|
},
|
|
"playback": {
|
|
"title": "Riproduzione",
|
|
"description": "Voce predefinita per l'azione \"Riproduci come\" nella scheda Acquisizioni.",
|
|
"defaultVoice": {
|
|
"title": "Voce predefinita",
|
|
"description": "Utilizzata quando clicchi su Riproduci come senza scegliere prima una voce. Puoi modificarla per ogni singola acquisizione.",
|
|
"noClonedVoices": "Ancora nessuna voce clonata",
|
|
"noneSelected": "Nessuna selezionata",
|
|
"clonedVoices": "Voci clonate"
|
|
}
|
|
},
|
|
"storage": {
|
|
"title": "Archiviazione",
|
|
"description": "Le acquisizioni vengono salvate come file audio e di trascrizione accoppiati nella cartella dei dati di TalkBox.",
|
|
"retention": {
|
|
"title": "Conservazione",
|
|
"description": "Per quanto tempo conservare le acquisizioni. Si applica sia all'audio che alle trascrizioni.",
|
|
"forever": "Conserva per sempre",
|
|
"d90": "90 giorni",
|
|
"d30": "30 giorni",
|
|
"d7": "7 giorni"
|
|
},
|
|
"folder": {
|
|
"title": "Cartella delle acquisizioni",
|
|
"description": "Cartella del disco in cui vengono memorizzati l'audio e le trascrizioni delle acquisizioni.",
|
|
"open": "Apri"
|
|
}
|
|
},
|
|
"sidebar": {
|
|
"aboutTitle": "Informazioni sulle Acquisizioni",
|
|
"aboutBody": "Tieni premuta una scorciatoia in qualsiasi punto del tuo computer, parla e TalkBox trasformerà la tua voce in testo. Riproducilo con qualsiasi voce clonata, incollalo in qualsiasi app o invialo direttamente al tuo agente di programmazione.",
|
|
"differencesTitle": "Cosa cambia",
|
|
"local": {
|
|
"title": "Interamente locale.",
|
|
"body": "Whisper e il modello LLM di perfezionamento vengono eseguiti sull'hardware del tuo computer. Nessun cloud, nessun account, la tua voce non lascia mai la macchina."
|
|
},
|
|
"playAs": {
|
|
"title": "Riproduci con qualsiasi voce.",
|
|
"body": "Le trascrizioni possono essere rilette da qualsiasi profilo che hai clonato."
|
|
},
|
|
"crossPlatform": {
|
|
"title": "Multipiattaforma.",
|
|
"body": "Stessa scorciatoia, stesso flusso di lavoro su macOS, Windows e Linux."
|
|
},
|
|
"windowsCaveat": {
|
|
"title": "Attenzione su Windows",
|
|
"body": "La scorciatoia non si attiverà mentre TalkBox stesso o qualsiasi applicazione eseguita come amministratore è in primo piano. Ci stiamo lavorando."
|
|
}
|
|
}
|
|
},
|
|
"mcp": {
|
|
"install": {
|
|
"title": "Installa nel tuo agente",
|
|
"description": "TalkBox espone un server MCP locale ogni volta che l'app è aperta. Incolla uno di questi frammenti nella configurazione MCP del tuo agente.",
|
|
"http": {
|
|
"title": "HTTP (consigliato)",
|
|
"description": "Per i client che supportano HTTP MCP — Claude Code, Cursor, Windsurf, VS Code."
|
|
},
|
|
"claudeCode": {
|
|
"title": "Comando a riga singola per Claude Code",
|
|
"description": "Si registra tramite l'interfaccia a riga di comando (CLI) di Claude Code."
|
|
},
|
|
"stdio": {
|
|
"title": "Stdio (alternativa)",
|
|
"description": "Per i client che avviano solo processi stdio. Il file binario shim viene fornito insieme all'app."
|
|
},
|
|
"copy": "Copia",
|
|
"copied": "Copiato"
|
|
},
|
|
"defaultVoice": {
|
|
"title": "Voce predefinita",
|
|
"description": "Utilizzata quando un agente chiama talkbox.speak senza specificare un profilo e non ha un'associazione per singolo client.",
|
|
"label": "Voce di riproduzione predefinita",
|
|
"labelHint": "Condivisa con il menu a discesa 'Riproduci come voce' della scheda Acquisizioni — una sola voce predefinita per la riproduzione passiva.",
|
|
"none": "(nessuna)"
|
|
},
|
|
"bindings": {
|
|
"title": "Voce per singolo agente",
|
|
"description": "Associa agenti specifici a voci specifiche, in modo da poter capire chi sta parlando senza guardare lo schermo. L'agente si identifica tramite l'intestazione X-TalkBox-Client-Id (o la variabile d'ambiente TALKBOX_CLIENT_ID per stdio).",
|
|
"empty": "Ancora nessuna associazione. Aggiungine una qui sotto, quindi configura il tuo client MCP per inviare il corrispondente <code>X-TalkBox-Client-Id</code>.",
|
|
"lastSeen": "ultimo rilevamento {{when}}",
|
|
"lastSeenTitle": "Ultimo rilevamento {{when}}",
|
|
"neverConnected": "mai connesso",
|
|
"defaultOption": "(predefinita)",
|
|
"removeAria": "Rimuovi associazione per {{client}}",
|
|
"add": {
|
|
"title": "Aggiungi un'associazione",
|
|
"clientIdPlaceholder": "id client (es. claude-code)",
|
|
"labelPlaceholder": "etichetta (facoltativa)",
|
|
"action": "Aggiungi associazione"
|
|
}
|
|
},
|
|
"sidebar": {
|
|
"aboutTitle": "Informazioni su MCP",
|
|
"aboutBody": "Il protocollo Model Context Protocol consente al tuo agente di programmazione IA — Claude Code, Cursor, Windsurf — di chiamare gli strumenti di TalkBox. Parla con una voce clonata, trascrivi tracce audio, sfoglia le acquisizioni.",
|
|
"toolsTitle": "Strumenti disponibili",
|
|
"tools": {
|
|
"speak": "Pronuncia il testo all'interno di un profilo vocale.",
|
|
"transcribe": "Riconoscimento vocale Whisper STT su una traccia.",
|
|
"listCaptures": "Dettature / registrazioni recenti.",
|
|
"listProfiles": "Profili vocali disponibili."
|
|
},
|
|
"postSpeak": "Esposto anche come <code>POST /speak</code> per script di shell, ACP, A2A."
|
|
}
|
|
},
|
|
"gpu": {
|
|
"cpuOnly": "Solo CPU",
|
|
"vramUsed": "{{mb}} MB VRAM",
|
|
"noAcceleration": "Nessuna accelerazione GPU rilevata",
|
|
"active": "Attiva",
|
|
"cuda": {
|
|
"title": "Backend CUDA",
|
|
"activeTitle": "Backend CUDA attivo",
|
|
"description": "Accelerazione GPU NVIDIA tramite un backend CUDA scaricabile.",
|
|
"downloading": "Download del backend CUDA in corso…",
|
|
"downloadingShort": "Download in corso…",
|
|
"updating": "Aggiornamento in corso…"
|
|
},
|
|
"activeBackend": {
|
|
"description": "L'accelerazione GPU è attualmente abilitata."
|
|
},
|
|
"restart": {
|
|
"ready": "Server riavviato con successo",
|
|
"waiting": "Riavvio del server in corso…",
|
|
"stopping": "Arresto del server in corso…"
|
|
},
|
|
"download": {
|
|
"title": "Scarica il backend CUDA",
|
|
"description": "Download di circa 2,4 GB. Richiede una GPU NVIDIA con supporto CUDA.",
|
|
"button": "Scarica"
|
|
},
|
|
"switchToCuda": {
|
|
"title": "Passa al backend CUDA",
|
|
"description": "Il backend CUDA è stato scaricato ed è pronto. Riavvia per abilitarlo.",
|
|
"button": "Riavvia"
|
|
},
|
|
"switchToCpu": {
|
|
"title": "Passa al backend CPU",
|
|
"description": "Disabilita l'accelerazione GPU. Potrai scaricare nuovamente il backend GPU in un secondo momento.",
|
|
"button": "Passa a CPU"
|
|
}, "remove": {
|
|
"title": "Rimuovi il backend CUDA",
|
|
"description": "Elimina il file binario CUDA scaricato per liberare spazio sul disco.",
|
|
"button": "Rimuovi"
|
|
},
|
|
"errors": {
|
|
"downloadFailed": "Download non riuscito",
|
|
"downloadStart": "Impossibile avviare il download",
|
|
"restartFailed": "Riavvio non riuscito",
|
|
"switchCpu": "Impossibile passare alla CPU",
|
|
"deleteCuda": "Impossibile eliminare il backend CUDA",
|
|
"deleteRocm": "Impossibile eliminare il backend ROCm"
|
|
},
|
|
"footer": "TalkBox rileva e utilizza automaticamente la migliore GPU disponibile sul tuo sistema. Sui Mac con chip Apple Silicon, il backend MLX viene eseguito nativamente sul Neural Engine e sulla GPU tramite Metal Performance Shaders (MPS), senza richiedere alcuna configurazione aggiuntiva. Su Windows, puoi scaricare i backend opzionali CUDA (NVIDIA) o ROCm (AMD) per l'inferenza con accelerazione hardware. Dove disponibili tramite PyTorch, sono supportati anche Intel XPU e DirectML. Quando non viene rilevata alcuna GPU, TalkBox si affida alla CPU — tutti i motori continuano a funzionare, solo più lentamente.",
|
|
"rocm": {
|
|
"title": "Backend AMD ROCm",
|
|
"activeTitle": "Backend ROCm attivo",
|
|
"description": "Accelerazione GPU AMD tramite un backend ROCm scaricabile.",
|
|
"downloading": "Download del backend ROCm in corso…",
|
|
"downloadingShort": "Download in corso…",
|
|
"updating": "Aggiornamento in corso…"
|
|
},
|
|
"downloadRocm": {
|
|
"title": "Scarica il backend AMD ROCm",
|
|
"description": "Download di circa 2-3 GB. Richiede una GPU AMD Radeon con supporto ROCm.",
|
|
"button": "Scarica"
|
|
},
|
|
"switchToRocm": {
|
|
"title": "Passa al backend ROCm",
|
|
"description": "Il backend ROCm è stato scaricato ed è pronto. Riavvia per abilitarlo.",
|
|
"button": "Riavvia"
|
|
},
|
|
"removeRocm": {
|
|
"title": "Rimuovi il backend ROCm",
|
|
"description": "Elimina il file binario ROCm scaricato per liberare spazio sul disco.",
|
|
"button": "Rimuovi"
|
|
}
|
|
},
|
|
"logs": {
|
|
"title": "Log del server",
|
|
"lineCount_one": "{{count}} riga",
|
|
"lineCount_other": "{{count}} righe",
|
|
"scrollToBottom": "Scorri fino in fondo",
|
|
"clear": "Svuota",
|
|
"empty": "Ancora nessun log disponibile.",
|
|
"devHint": "I log del server vengono acquisiti solo quando l'app gestisce il processo del server (build di produzione)."
|
|
},
|
|
"changelog": {
|
|
"devBadge": "sviluppo",
|
|
"showLess": "Mostra meno",
|
|
"showMore": "Mostra di più"
|
|
},
|
|
"about": {
|
|
"tagline": "Lo studio di sintesi vocale open source. Clona voci, genera testo parlato, applica effetti e sviluppa applicazioni vocali — tutto eseguito localmente sul tuo computer.",
|
|
"createdBy": "Creato da",
|
|
"buyCoffee": "Offrimi un caffè",
|
|
"license": "Rilasciato sotto licenza <link>MIT</link>"
|
|
}
|
|
},
|
|
"models": {
|
|
"title": "Modelli",
|
|
"subtitle": "Scarica e gestisci i modelli di intelligenza artificiale per la generazione vocale e la trascrizione",
|
|
"defaultName": "Modello",
|
|
"unknownSize": "Dimensione sconosciuta",
|
|
"sections": {
|
|
"voiceGeneration": "Generazione vocale",
|
|
"transcription": "Trascrizione",
|
|
"languageModels": "Modelli linguistici"
|
|
},
|
|
"status": {
|
|
"loaded": "Caricato"
|
|
},
|
|
"storage": {
|
|
"location": "Posizione di archiviazione",
|
|
"open": "Apri",
|
|
"change": "Cambia",
|
|
"migrating": "Migrazione in corso…",
|
|
"reset": "Ripristina",
|
|
"pickerTitle": "Scegli la cartella di archiviazione dei modelli"
|
|
},
|
|
"progress": {
|
|
"connecting": "Connessione in corso…",
|
|
"connectingHf": "Connessione a HuggingFace in corso…"
|
|
},
|
|
"problems": {
|
|
"title": "Problemi",
|
|
"clearAll": "Cancella tutto",
|
|
"noDetails": "Nessun dettaglio sull'errore disponibile. Prova a scaricare di nuovo.",
|
|
"startedAt": "avviato alle {{time}}"
|
|
},
|
|
"detail": {
|
|
"loadingInfo": "Caricamento informazioni modello…",
|
|
"byAuthor": "di {{author}}",
|
|
"downloads": "Download",
|
|
"likes": "Mi piace",
|
|
"license": "Licenza",
|
|
"languagesCount": "{{count}} lingue supportate",
|
|
"languagesList": "Lingue: {{list}}",
|
|
"onDisk": "{{size}} su disco"
|
|
},
|
|
"actions": {
|
|
"download": "Scarica",
|
|
"retry": "Riprova download",
|
|
"unload": "Disattiva",
|
|
"unloading": "Disattivazione in corso…",
|
|
"unloadFirst": "Disattiva il modello prima di eliminarlo",
|
|
"deleteModel": "Elimina modello"
|
|
},
|
|
"deleteDialog": {
|
|
"title": "Elimina modello",
|
|
"body": "Sei sicuro di voler eliminare <strong>{{name}}</strong>?",
|
|
"sizeNote": "Questo libererà {{size}} di spazio sul disco. Il modello dovrà essere scaricato nuovamente se desideri utilizzarlo ancora.",
|
|
"deleting": "Eliminazione in corso…"
|
|
},
|
|
"migrateDialog": {
|
|
"title": "Spostare i modelli nella nuova posizione?",
|
|
"description": "Il server si arresterà durante lo spostamento dei modelli nella nuova cartella. Si riavvierà automaticamente al termine della migrazione.",
|
|
"action": "Sposta modelli",
|
|
"preparing": "Preparazione in corso…",
|
|
"restartingServer": "Riavvio del server in corso…"
|
|
},
|
|
"migrate": {
|
|
"title": "Spostamento dei modelli",
|
|
"offline": "Il server è offline durante lo spostamento dei modelli."
|
|
},
|
|
"toast": {
|
|
"downloadFailed": "Download non riuscito",
|
|
"cancelFailed": "Annullamento non riuscito",
|
|
"cancelFailedDescription": "Impossibile annullare l'attività di download.",
|
|
"deleted": "Modello eliminato",
|
|
"deletedDescription": "{{name}} è stato eliminato con successo.",
|
|
"deleteFailed": "Eliminazione non riuscita",
|
|
"unloaded": "Modello disattivato",
|
|
"unloadedDescription": "{{name}} è stato rimosso dalla memoria.",
|
|
"unloadFailed": "Disattivazione non riuscita",
|
|
"openFolderFailed": "Impossibile aprire la cartella del modello",
|
|
"pickerFailed": "Impossibile aprire il selettore di cartelle",
|
|
"resetToDefault": "Ripristinato alla posizione predefinita. Riavvio del server in corso…",
|
|
"noModelsToMigrate": "Nessun modello da migrare",
|
|
"noModelsToMigrateDescription": "Scarica almeno un modello prima di modificare la posizione di archiviazione.",
|
|
"migrated": "Modelli spostati con successo",
|
|
"migrationFailed": "Migrazione non riuscita",
|
|
"migrationFailedGeneric": "Impossibile migrare i modelli",
|
|
"migrationConnectionLost": "Connessione interrotta durante la migrazione"
|
|
}
|
|
}
|
|
}
|