export default {
// Navigation
nav: {
printers: 'Stampanti',
archives: 'Archivi',
queue: 'Coda',
stats: 'Statistiche',
profiles: 'Profili',
maintenance: 'Manutenzione',
projects: 'Progetti',
files: 'File',
settings: 'Impostazioni',
system: 'Sistema',
collapseSidebar: 'Comprimi barra laterale',
expandSidebar: 'Espandi barra laterale',
update: 'Aggiorna',
updateAvailable: 'Aggiornamento disponibile: v{{version}}',
updateAvailableBanner: 'Versione {{version}} disponibile!',
viewUpdate: 'Vedi aggiornamento',
viewOnGithub: 'Vedi su GitHub',
keyboardShortcuts: 'Scorciatoie da tastiera (?)',
switchToLight: 'Passa a tema chiaro',
switchToDark: 'Passa a tema scuro',
smartSwitches: 'Interruttori Smart',
logout: 'Esci',
},
// Common
common: {
save: 'Salva',
saving: 'Salvataggio...',
cancel: 'Annulla',
delete: 'Elimina',
edit: 'Modifica',
add: 'Aggiungi',
close: 'Chiudi',
confirm: 'Conferma',
loading: 'Caricamento...',
error: 'Errore',
success: 'Successo',
warning: 'Avviso',
enabled: 'Abilitato',
disabled: 'Disabilitato',
yes: 'Si',
no: 'No',
on: 'On',
off: 'Off',
all: 'Tutti',
none: 'Nessuno',
search: 'Cerca',
filter: 'Filtro',
sort: 'Ordina',
refresh: 'Aggiorna',
download: 'Scarica',
upload: 'Carica',
actions: 'Azioni',
status: 'Stato',
name: 'Nome',
description: 'Descrizione',
date: 'Data',
time: 'Ora',
hours: 'ore',
minutes: 'minuti',
seconds: 'secondi',
days: 'giorni',
enable: 'Abilita',
disable: 'Disabilita',
permissions: 'Permessi',
noPrinters: 'Nessuna stampante configurata',
noData: 'Nessun dato disponibile',
linkNotFound: 'Link non trovato',
required: 'Obbligatorio',
optional: 'Opzionale',
dismiss: 'Chiudi',
apply: 'Applica',
reset: 'Reimposta',
clear: 'Pulisci',
selectAll: 'Seleziona tutto',
deselectAll: 'Deseleziona tutto',
noChange: '— Nessun cambio —',
unchanged: 'Invariato',
unassigned: 'Non assegnato',
unknown: 'Sconosciuto',
unknownError: 'Errore sconosciuto',
today: 'Oggi',
asap: 'ASAP',
overdue: 'Scaduto',
now: 'Ora',
collapse: 'Comprimi',
expand: 'Espandi',
viewArchive: 'Vedi archivio',
viewInFileManager: 'Vedi nel Gestore file',
addedBy: 'Aggiunto da {{username}}',
prints: 'stampe',
more: '+{{count}} altre',
ascending: 'Crescente',
descending: 'Decrescente',
printer: 'Stampante',
remove: 'Rimuovi',
type: 'Tipo',
print: 'Stampa',
rename: 'Rinomina',
move: 'Sposta',
create: 'Crea',
duplicate: 'Duplica',
left: 'Sinistra',
right: 'Destra',
},
// Printers page
printers: {
title: 'Stampanti',
addPrinter: 'Aggiungi Stampante',
editPrinter: 'Modifica Stampante',
deletePrinter: 'Elimina Stampante',
printerName: 'Nome Stampante',
serialNumber: 'Numero Seriale',
ipAddress: 'Indirizzo IP',
accessCode: 'Codice di Accesso',
model: 'Modello',
nozzleCount: 'Numero Ugelli',
autoArchive: 'Auto Archiviazione',
status: {
available: 'Disponibile',
idle: 'Inattiva',
printing: 'In stampa',
paused: 'In pausa',
offline: 'Offline',
error: 'Errore',
finished: 'Finita',
unknown: 'Sconosciuto',
},
temperatures: {
nozzle: 'Ugello',
bed: 'Piatto',
chamber: 'Camera',
},
progress: '{{percent}}% completato',
timeRemaining: '{{time}} rimanente',
deleteConfirm: 'Sei sicuro di eliminare "{{name}}"?',
maintenanceOk: 'Manutenzione OK',
maintenanceWarning: '{{count}} avviso',
maintenanceWarning_plural: '{{count}} avvisi',
maintenanceDue: '{{count}} in scadenza',
maintenanceDue_plural: '{{count}} in scadenza',
// Sort options
sort: {
name: 'Nome',
status: 'Stato',
model: 'Modello',
location: 'Posizione',
ascending: 'Ordina crescente',
descending: 'Ordina decrescente',
},
// Card size
cardSize: {
small: 'Schede piccole',
medium: 'Schede medie',
large: 'Schede grandi',
extraLarge: 'Schede extra grandi',
},
// Controls
hideOffline: 'Nascondi offline',
nextAvailable: 'Prossima disponibile',
powerOn: 'Accendi',
offlinePrintersWithPlugs: 'Stampanti offline con smart plug',
noPrintersConfigured: 'Nessuna stampante configurata',
// Printer card
readyToPrint: 'Pronta a stampare',
external: 'Esterna',
extL: 'Ext-L',
extR: 'Ext-R',
deleteArchives: 'Elimina archivi stampa',
noLabel: 'Nessuna etichetta',
printPreview: 'Anteprima stampa',
width: 'Larghezza',
height: 'Altezza',
noObjectsFound: 'Nessun oggetto trovato',
objectsLoadedOnPrintStart: 'Gli oggetti sono caricati quando inizia una stampa',
willBeSkipped: 'Verra saltato',
name: 'Nome',
serialCannotBeChanged: 'Il numero seriale non può essere cambiato',
locationHelp: 'Usato per raggruppare stampanti e filtrare i lavori in coda',
// WiFi signal strength
wifiSignal: {
veryWeak: 'Molto debole',
weak: 'Debole',
fair: 'Discreto',
good: 'Buono',
excellent: 'Eccellente',
},
// Maintenance
maintenanceUpToDate: 'Tutta la manutenzione aggiornata - Clicca per vedere',
// Chamber light
chamberLightOn: 'Accendi luce camera',
chamberLightOff: 'Spegni luce camera',
// Files
browseFiles: 'Sfoglia file stampante',
// Smart plug
autoOffAfterPrint: 'Spegnimento automatico dopo stampa',
autoOffExecuted: 'Spegnimento automatico eseguito - accendi la stampante per reimpostare',
// HMS errors
hmsErrors: 'Errori HMS',
viewHmsErrors: 'Vedi {{count}} errore(i) HMS',
// Actions
resume: 'Riprendi',
pause: 'Pausa',
stop: 'Ferma',
camera: 'Camera',
skipObject: 'Salta Oggetto',
reconnect: 'Riconnetti',
mqttDebug: 'Debug MQTT',
activeNozzle: 'Attivo: ugello {{nozzle}}',
nozzleRack: 'Rack Ugelli',
nozzleDocked: 'Agganciato',
nozzleMounted: 'Montato',
nozzleWear: 'Usura',
nozzleMaxTemp: 'Temp Max',
nozzleSerial: 'Seriale',
nozzleHardenedSteel: 'Acciaio Temprato',
nozzleStainlessSteel: 'Acciaio Inox',
nozzleTungstenCarbide: 'Carburo di Tungsteno',
nozzleFlow: 'Flusso',
nozzleHighFlow: 'Alto Flusso',
nozzleStandardFlow: 'Standard',
// Firmware
firmwareUpdate: 'Aggiornamento Firmware',
firmwareInstructions: 'Sul touchscreen della stampante, vai a',
firmwareNav: 'Vai a',
settings: 'Impostazioni',
firmware: 'Firmware',
// Discovery
discoverPrinters: 'Trova Stampanti',
searching: 'Ricerca...',
manualEntry: 'Inserimento manuale',
addFromCloud: 'Aggiungi da Cloud',
// Toast messages
toast: {
printerDeleted: 'Stampante eliminata',
printerAdded: 'Stampante aggiunta',
printerUpdated: 'Stampante aggiornata',
failedToDelete: 'Impossibile eliminare stampante',
failedToAdd: 'Impossibile aggiungere stampante',
failedToUpdate: 'Impossibile aggiornare stampante',
commandSent: 'Comando inviato',
failedToSendCommand: 'Impossibile inviare comando',
turnedOn: '{{name}} accesa',
failedToPowerOn: 'Impossibile accendere {{name}}',
scriptTriggered: 'Script avviato',
printStopped: 'Stampa fermata',
printPaused: 'Stampa in pausa',
printResumed: 'Stampa ripresa',
referenceDeleted: 'Riferimento eliminato',
detectionAreaSaved: 'Area rilevamento salvata',
failedToRunScript: 'Impossibile eseguire script',
failedToStopPrint: 'Impossibile fermare stampa',
failedToPausePrint: 'Impossibile mettere in pausa stampa',
failedToResumePrint: 'Impossibile riprendere stampa',
failedToControlChamberLight: 'Impossibile controllare luce camera',
failedToUpdateSetting: 'Impossibile aggiornare impostazione',
failedToSkipObjects: 'Impossibile saltare oggetti',
failedToRereadRfid: 'Impossibile rileggere RFID',
failedToCheckPlate: 'Impossibile controllare piatto',
failedToUpdateLabel: 'Impossibile aggiornare etichetta',
failedToDeleteReference: 'Impossibile eliminare riferimento',
failedToSaveDetectionArea: 'Impossibile salvare area rilevamento',
plateCheckEnabled: 'Controllo piatto abilitato',
plateCheckDisabled: 'Controllo piatto disabilitato',
calibrationSaved: 'Calibrazione salvata!',
calibrationFailed: 'Calibrazione non riuscita',
rfidRereadInitiated: 'Rilettura RFID avviata',
},
// Connection status
connection: {
connected: 'Connesso',
offline: 'Offline',
},
// Queue info
queue: {
inQueue: '{{count}} stampa in coda',
inQueue_plural: '{{count}} stampe in coda',
},
// Controls section
controls: 'Controlli',
// RFID
rfid: {
reread: 'Rileggi RFID',
},
// Permissions
permission: {
noAdd: 'Non hai il permesso di aggiungere stampanti',
noEdit: 'Non hai il permesso di modificare stampanti',
noDelete: 'Non hai il permesso di eliminare stampanti',
noControl: 'Non hai il permesso di controllare stampanti',
noFiles: 'Non hai il permesso di accedere ai file stampante',
noAmsRfid: 'Non hai il permesso di rileggere AMS RFID',
noSmartPlugControl: 'Non hai il permesso di controllare smart plug',
},
// Add/Edit modal
modal: {
addTitle: 'Aggiungi Stampante',
editTitle: 'Modifica Stampante',
myPrinter: 'La mia Stampante',
selectModel: 'Seleziona modello...',
locationGroup: 'Posizione / Gruppo (opzionale)',
locationPlaceholder: 'es. Officina, Ufficio, Cantina',
autoArchiveLabel: 'Archivia automaticamente stampe completate',
fromPrinterSettings: 'Dalle impostazioni della stampante',
modelOptional: 'Modello (opzionale)',
saveChanges: 'Salva modifiche',
},
// Skip objects
skipObjects: {
tooltip: 'Salta oggetti',
onlyWhilePrinting: 'Salta oggetti (solo durante la stampa)',
requiresMultiple: 'Salta oggetti (richiede 2+ oggetti)',
title: 'Salta Oggetti',
matchIdsInfo: 'Abbina gli ID con il display della stampante',
printerShowsIds: 'Lo schermo mostra gli ID oggetto sul piatto',
skipSelected: 'Salta selezionati',
skipping: 'Saltando...',
noObjectsSelected: 'Nessun oggetto selezionato',
selectObjectsToSkip: 'Seleziona gli oggetti da saltare nella stampa corrente',
skipped: 'saltato',
objectsSkipped: 'Oggetti saltati',
activeCount: '{{count}} attivi',
waitForLayer: 'Attendi il layer 2+ per saltare oggetti (attualmente layer {{layer}})',
skip: 'Salta',
confirmTitle: 'Saltare oggetto?',
confirmMessage: 'Sei sicuro di voler saltare "{{name}}"? Questa azione non può essere annullata.',
},
// Confirm modals
confirm: {
deleteTitle: 'Elimina Stampante',
deleteMessage: 'Sei sicuro di eliminare "{{name}}"? Questo rimuoverà tutte le impostazioni di connessione.',
deleteArchivesNote: 'Tutta la cronologia di stampa sarà eliminata definitivamente.',
keepArchivesNote: 'La cronologia sarà mantenuta ma non più associata a questa stampante.',
stopTitle: 'Ferma Stampa',
stopMessage: 'Sei sicuro di fermare la stampa corrente su "{{name}}"? Questo annullerà il lavoro di stampa.',
stopButton: 'Ferma Stampa',
pauseTitle: 'Pausa Stampa',
pauseMessage: 'Sei sicuro di mettere in pausa la stampa corrente su "{{name}}"?',
pauseButton: 'Pausa Stampa',
resumeTitle: 'Riprendi Stampa',
resumeMessage: 'Sei sicuro di riprendere la stampa su "{{name}}"?',
resumeButton: 'Riprendi Stampa',
powerOnTitle: 'Accendi Stampante',
powerOnMessage: 'Sei sicuro di accendere "{{name}}"?',
powerOnButton: 'Accendi',
powerOffTitle: 'Spegni Stampante',
powerOffMessage: 'Sei sicuro di spegnere "{{name}}"?',
powerOffWarning: 'AVVISO: "{{name}}" sta stampando! Sei sicuro di spegnere? Questo interromperà la stampa e potrebbe danneggiare la stampante.',
powerOffButton: 'Spegni',
},
// Discovery
discovery: {
title: 'Trova Stampanti',
searching: 'Ricerca...',
scanning: 'Scansione...',
scanProgress: 'Scansione... {{scanned}}/{{total}}',
foundPrinters: 'Trovate {{count}} stampante(i)',
noPrintersFound: 'Nessuna stampante trovata',
noPrintersFoundSubnet: 'Nessuna stampante trovata nella sottorete specificata.',
noPrintersFoundNetwork: 'Nessuna stampante trovata sulla rete.',
allConfigured: 'Tutte le stampanti trovate sono già configurate.',
alreadyAdded: 'Già aggiunta',
select: 'Seleziona',
manualEntry: 'Inserimento manuale',
addFromCloud: 'Aggiungi da Cloud',
subnetToScan: 'Sottorete da scansionare',
dockerNote: 'Docker rilevato. Inserisci la sottorete della stampante in notazione CIDR. Richiede network_mode: host in docker-compose.yml.',
scanSubnet: 'Scansiona sottorete per stampanti',
discoverNetwork: 'Trova stampanti in rete',
scanningSubnet: 'Scansione sottorete per stampanti Bambu...',
scanningNetwork: 'Scansione rete...',
serialRequired: 'Seriale richiesto',
unknown: 'Sconosciuto',
failedToStart: 'Avvio ricerca non riuscito',
},
// Filaments section
filaments: 'Filamenti',
// Camera
openCameraOverlay: 'Apri overlay camera',
openCameraWindow: 'Apri camera in nuova finestra',
// Firmware
firmwareUpdateAvailable: 'Aggiornamento firmware disponibile: {{current}} → {{latest}}',
firmwareUpToDate: 'Firmware {{version}} — Aggiornato',
firmwareUpdateButton: 'Aggiorna',
// Plate detection
plateDetection: {
noPermission: 'Non hai il permesso di aggiornare le stampanti',
enabledClick: 'Controllo piatto abilitato - Clicca per disabilitare',
disabledClick: 'Controllo piatto disabilitato - Clicca per abilitare',
manageCalibration: 'Gestisci calibrazione rilevamento piatto',
calibrationRequired: 'Calibrazione richiesta',
calibrationInstructions: 'Assicurati che il piatto sia completamente vuoto, poi clicca Calibra.',
calibrationDescription: 'La calibrazione salva un\'immagine di riferimento del piatto vuoto. I controlli futuri confronteranno con questo riferimento per rilevare oggetti.',
calibrationTip: 'Suggerimento: Puoi salvare fino a 5 calibrazioni per piatti diversi. Il sistema usa automaticamente la migliore corrispondenza durante il controllo.',
plateEmpty: 'Il piatto sembra vuoto',
objectsDetected: 'Oggetti rilevati sul piatto',
confidence: 'Confidenza',
difference: 'Differenza',
analysisPreview: 'Anteprima analisi:',
analysisLegend: 'Riquadro verde = area rilevamento, overlay rosso = differenze dalla calibrazione',
savedReferences: 'Riferimenti salvati ({{count}}/{{max}})',
deleteReference: 'Elimina riferimento',
labelPlaceholder: 'Etichetta...',
clickToEdit: '{{label}} - Clicca per modificare',
clickToAddLabel: 'Clicca per aggiungere etichetta',
},
// Fans
fans: {
partCooling: 'Ventola raffreddamento parte',
auxiliary: 'Ventola ausiliaria',
chamber: 'Ventola camera',
},
// HMS errors
clickToViewHmsErrors: 'Clicca per vedere errori HMS',
estimatedCompletion: 'Tempo completamento stimato',
slotOptions: 'Opzioni slot',
// Firmware modal
firmwareModal: {
title: 'Aggiornamento Firmware',
titleUpToDate: 'Info Firmware',
currentVersion: 'Corrente:',
latestVersion: 'Ultima:',
releaseNotes: 'Note di rilascio',
checkingPrereqs: 'Controllo prerequisiti...',
sdCardReady: 'SD pronta. Clicca sotto per caricare firmware.',
uploadedSuccess: 'Firmware caricato su SD!',
applyInstructions: 'Per applicare l\'aggiornamento sulla stampante:',
step1: 'Sul touchscreen della stampante, vai a Impostazioni',
step2: 'Vai a Firmware',
step3: 'Seleziona Aggiorna da SD',
step4: 'L\'aggiornamento richiede 10-20 minuti',
done: 'Fatto',
starting: 'Avvio...',
uploadFirmware: 'Carica Firmware',
uploadFailed: 'Avvio caricamento fallito: {{error}}',
uploadedToast: 'Firmware caricato! Avvia aggiornamento dal display.',
},
accessCodePlaceholder: 'Lascia vuoto per mantenere quello attuale',
// ROI editor
roi: {
title: 'Area di rilevamento (ROI)',
xStart: 'X Inizio',
yStart: 'Y Inizio',
width: 'Larghezza',
height: 'Altezza',
instruction: 'Regola l\'area di rilevamento per focalizzare il piatto. Il riquadro verde mostra l\'area corrente.',
},
},
// Archives page
archives: {
title: 'Archivi di stampa',
searchPlaceholder: 'Cerca archivi...',
filterByPrinter: 'Filtra per stampante',
filterByStatus: 'Filtra per stato',
sortBy: 'Ordina per',
sortNewest: 'Più recenti',
sortOldest: 'Meno recenti',
sortName: 'Nome',
sortDuration: 'Durata',
sortLargest: 'Più grandi',
sortSmallest: 'Più piccoli',
sortSize: 'Dimensione',
noArchives: 'Nessun archivio trovato',
noArchivesSearch: 'Nessun archivio corrisponde alla ricerca',
noArchivesYet: 'Nessun archivio ancora',
loadingArchives: 'Caricamento archivi...',
releaseToUpload: 'Rilascia per caricare',
showAll: 'Mostra tutti',
showFavoritesOnly: 'Solo preferiti',
gridView: 'Vista griglia',
listView: 'Vista elenco',
calendarView: 'Vista calendario',
manageTags: 'Gestisci tag',
showFailedPrints: 'Mostra stampe fallite',
hideFailedPrints: 'Nascondi stampe fallite',
printTime: 'Tempo di stampa',
filamentUsed: 'Filamento usato',
cost: 'Costo',
reprint: 'Ristampa',
preview: 'Anteprima',
deleteArchive: 'Elimina archivio',
deleteConfirm: 'Sei sicuro di eliminare questo archivio?',
favorite: 'Preferito',
unfavorite: 'Rimuovi dai preferiti',
viewDetails: 'Vedi dettagli',
status: {
completed: 'Completato',
failed: 'Fallito',
stopped: 'Fermato',
},
toast: {
source3mfAttached: 'Sorgente 3MF allegata: {{filename}}',
failedUploadSource3mf: 'Caricamento sorgente 3MF non riuscito',
source3mfRemoved: 'Sorgente 3MF rimossa',
failedRemoveSource3mf: 'Rimozione sorgente 3MF non riuscita',
f3dAttached: 'F3D allegato: {{filename}}',
failedUploadF3d: 'Caricamento F3D non riuscito',
f3dRemoved: 'F3D rimosso',
failedRemoveF3d: 'Rimozione F3D non riuscita',
timelapseAttached: 'Timelapse allegato: {{filename}}',
timelapseAlreadyAttached: 'Timelapse già allegato',
noMatchingTimelapse: 'Nessun timelapse corrispondente',
failedScanTimelapse: 'Scansione timelapse non riuscita',
failedAttachTimelapse: 'Allegato timelapse non riuscito',
archiveDeleted: 'Archivio eliminato',
failedDeleteArchive: 'Eliminazione archivio non riuscita',
addedToFavorites: 'Aggiunto ai preferiti',
removedFromFavorites: 'Rimosso dai preferiti',
projectUpdated: 'Progetto aggiornato',
failedUpdateProject: 'Aggiornamento progetto non riuscito',
linkCopied: 'Link copiato negli appunti',
failedCopyLink: 'Copia link non riuscita',
photoDeleted: 'Foto eliminata',
failedDeletePhoto: 'Eliminazione foto non riuscita',
failedDeleteArchives: 'Eliminazione archivi non riuscita',
failedUpdateFavorites: 'Aggiornamento preferiti non riuscito',
exportDownloaded: 'Export scaricato',
exportFailed: 'Export non riuscito',
},
menu: {
print: 'Stampa',
schedule: 'Programma',
openInBambuStudio: 'Apri nello slicer',
slice: 'Slice',
externalLink: 'Link esterno',
viewOnMakerWorld: 'Vedi su MakerWorld',
preview3d: 'Anteprima 3D',
viewTimelapse: 'Vedi Timelapse',
scanForTimelapse: 'Cerca Timelapse',
downloadSource3mf: 'Scarica Sorgente 3MF',
uploadSource3mf: 'Carica Sorgente 3MF',
replaceSource3mf: 'Sostituisci Sorgente 3MF',
removeSource3mf: 'Rimuovi Sorgente 3MF',
uploadF3d: 'Carica F3D',
replaceF3d: 'Sostituisci F3D',
downloadF3d: 'Scarica F3D',
removeF3d: 'Rimuovi F3D',
download: 'Scarica',
copyDownloadLink: 'Copia link download',
qrCode: 'QR Code',
viewPhotos: 'Vedi foto',
viewPhotosCount: 'Vedi foto ({{count}})',
projectPage: 'Pagina progetto',
addToFavorites: 'Aggiungi ai preferiti',
removeFromFavorites: 'Rimuovi dai preferiti',
edit: 'Modifica',
goToProject: 'Vai al progetto: {{name}}',
addToProject: 'Aggiungi al progetto',
removeFromProject: 'Rimuovi dal progetto',
loading: 'Caricamento...',
noProjectsAvailable: 'Nessun progetto disponibile',
select: 'Seleziona',
deselect: 'Deseleziona',
delete: 'Elimina',
},
permission: {
noReprint: 'Non hai il permesso di ristampare questo archivio',
noAddToQueue: 'Non hai il permesso di aggiungere alla coda',
noUpdateArchives: 'Non hai il permesso di aggiornare archivi',
noUploadFiles: 'Non hai il permesso di caricare file',
noDownload: 'Non hai il permesso di scaricare archivi',
noCopyLink: 'Non hai il permesso di copiare link download',
noDelete: 'Non hai il permesso di eliminare questo archivio',
noCreate: 'Non hai il permesso di creare archivi',
},
card: {
previousPlate: 'Piatto precedente',
nextPlate: 'Piatto successivo',
plateNumber: 'Piatto {{index}}',
moreOptions: 'Clic destro per altre opzioni',
addToFavorites: 'Aggiungi ai preferiti',
removeFromFavorites: 'Rimuovi dai preferiti',
cancelled: 'annullato',
failed: 'fallito',
duplicate: 'duplicato',
duplicateTitle: 'Questo modello è stato stampato prima',
openSource3mf: 'Apri sorgente 3MF in Bambu Studio (clic destro per altre opzioni)',
downloadF3d: 'Scarica file design Fusion 360',
viewTimelapse: 'Vedi timelapse',
viewPhoto: 'Vedi 1 foto',
viewPhotos: 'Vedi {{count}} foto',
openFolder: 'Apri cartella: {{name}}',
slicedFile: 'File slice - pronto a stampare',
sourceFile: 'Solo file sorgente - nessuna mappatura AMS disponibile',
gcode: 'GCODE',
source: 'SOURCE',
project: 'Progetto: {{name}}',
estimated: 'Stimato: {{time}}',
actual: 'Reale: {{time}}',
accuracy: 'Accuratezza: {{percent}}%',
filament: '{{weight}}g',
layer: '{{count}} strato',
layers: '{{count}} strati',
object: '{{count}} oggetto',
objects: '{{count}} oggetti',
slicedFor: 'Sliced per {{model}}',
uploadedBy: 'Caricato da',
noPermissionReprint: 'Non hai il permesso di ristampare',
noPermissionEdit: 'Non hai il permesso di modificare archivi',
noPermissionDelete: 'Non hai il permesso di eliminare archivi',
reprint: 'Ristampa',
schedulePrint: 'Programma Stampa',
schedule: 'Programma',
openInBambuStudio: 'Apri nello slicer',
openInBambuStudioToSlice: 'Apri nello slicer per slicing',
slice: 'Slice',
externalLink: 'Link esterno',
makerWorld: 'MakerWorld: {{designer}}',
viewProject: 'Vedi progetto',
noExternalLink: 'Nessun link esterno',
preview3d: 'Anteprima 3D',
download: 'Scarica',
edit: 'Modifica',
delete: 'Elimina',
},
modal: {
deleteArchive: 'Elimina Archivio',
deleteConfirm: 'Sei sicuro di eliminare "{{name}}"? Questa azione non può essere annullata.',
deleteButton: 'Elimina',
removeSource3mf: 'Rimuovi Sorgente 3MF',
removeSource3mfConfirm: 'Sei sicuro di rimuovere il file sorgente 3MF da "{{name}}"? Questo eliminerà il progetto slicer originale.',
removeButton: 'Rimuovi',
removeF3d: 'Rimuovi F3D',
removeF3dConfirm: 'Sei sicuro di rimuovere il file Fusion 360 da "{{name}}"?',
timelapse: '{{name}} - Timelapse',
selectTimelapse: 'Seleziona Timelapse',
selectTimelapseDesc: 'Nessun abbinamento automatico trovato. Seleziona il timelapse per questa stampa:',
deleteArchives: 'Elimina Archivi',
deleteArchivesConfirm: 'Sei sicuro di eliminare {{count}} archivio(i)? Questa azione non può essere annullata.',
deleteCount: 'Elimina {{count}}',
},
page: {
title: 'Archivi',
printsCount: '{{filtered}} di {{total}} stampe',
dropFilesHere: 'Rilascia file .3mf qui',
releaseToUpload: 'Rilascia per caricare',
only3mfSupported: 'Solo file .3mf supportati',
close: 'Chiudi',
selected: '{{count}} selezionati',
selectAll: 'Seleziona tutto',
tags: 'Tag',
project: 'Progetto',
favorite: 'Preferito',
delete: 'Elimina',
toggledFavorites: 'Preferiti aggiornati per {{count}} archivio(i)',
failedUpdateFavorites: 'Aggiornamento preferiti non riuscito',
archivesDeleted: '{{count}} archivio(i) eliminati',
failedDeleteArchives: 'Eliminazione archivi non riuscita',
photoDeleted: 'Foto eliminata',
failedDeletePhoto: 'Eliminazione foto non riuscita',
},
list: {
name: 'Nome',
printer: 'Stampante',
date: 'Data',
size: 'Dimensione',
actions: 'Azioni',
hasTimelapse: 'Ha timelapse',
},
},
// Queue page
queue: {
title: 'Coda di stampa',
subtitle: 'Programma e gestisci i tuoi lavori di stampa',
addToQueue: 'Aggiungi alla coda',
// Print modal
print: 'Stampa',
reprint: 'Ristampa',
schedulePrint: 'Programma Stampa',
editQueueItem: 'Modifica elemento coda',
printToPrinters: 'Stampa su {{count}} Stampanti',
queueToPrinters: 'Metti in coda su {{count}} Stampanti',
sending: 'Invio...',
sendingProgress: 'Invio {{current}}/{{total}}...',
adding: 'Aggiunta...',
addingProgress: 'Aggiunta {{current}}/{{total}}...',
savingProgress: 'Salvataggio {{current}}/{{total}}...',
clearQueue: 'Svuota coda',
clearHistory: 'Svuota cronologia',
emptyQueue: 'La coda è vuota',
position: 'Posizione',
scheduledTime: 'Ora programmata',
moveUp: 'Sposta su',
moveDown: 'Sposta giù',
startNow: 'Avvia ora',
printingInProgress: 'Stampa in corso...',
viewArchive: 'Vedi archivio',
viewInFileManager: 'Vedi nel Gestore file',
itemCount: '{{count}} elemento',
itemCount_plural: '{{count}} elementi',
dragToReorder: 'Trascina per riordinare (solo ASAP)',
reorderHint: 'La posizione influisce solo sugli elementi ASAP. Quelli programmati partono all\'orario.',
addedBy: 'Aggiunto da {{name}}',
// Sections
sections: {
currentlyPrinting: 'In stampa',
queued: 'In coda',
history: 'Cronologia',
},
// Status
status: {
pending: 'In attesa',
waiting: 'In attesa',
printing: 'In stampa',
paused: 'In pausa',
completed: 'Completato',
failed: 'Fallito',
skipped: 'Saltato',
cancelled: 'Annullato',
},
// Summary cards
summary: {
printing: 'In stampa',
queued: 'In coda',
totalTime: 'Tempo totale coda',
history: 'Cronologia',
},
// Filters
filter: {
allPrinters: 'Tutte le stampanti',
unassigned: 'Non assegnato',
allStatus: 'Tutti gli stati',
allLocations: 'Tutte le posizioni',
any: 'Qualsiasi',
},
// Sort
sort: {
byPosition: 'Ordina per posizione',
byName: 'Ordina per nome',
byPrinter: 'Ordina per stampante',
bySchedule: 'Ordina per programma',
byDate: 'Ordina per data',
ascendingOldest: 'Crescente (più vecchi)',
descendingNewest: 'Decrescente (più recenti)',
},
// Badges
badges: {
staged: 'In staging',
requiresPrevious: 'Richiede successo precedente',
autoPowerOff: 'Spegnimento automatico',
},
// Empty state
empty: {
title: 'Nessuna stampa programmata',
description: 'Programma una stampa dalla pagina Archivi usando l\'opzione "Programma" nel menu contestuale, o trascina i file per iniziare.',
},
// Time
time: {
asap: 'ASAP',
overdue: 'Scaduto',
now: 'Ora',
lessThanMinute: 'Tra meno di un minuto',
inMinutes: 'Tra {{count}} min',
inHours: 'Tra {{count}} ore',
},
// Actions
actions: {
stopPrint: 'Ferma Stampa',
startPrint: 'Avvia Stampa',
requeue: 'Rimetti in coda',
},
// Bulk edit
bulkEdit: {
title: 'Modifica {{count}} elemento',
title_plural: 'Modifica {{count}} elementi',
description: 'Solo le impostazioni modificate saranno applicate agli elementi selezionati.',
printer: 'Stampante',
noChange: '— Nessun cambio —',
queueOptions: 'Opzioni coda',
staged: 'In staging (avvio manuale)',
autoPowerOff: 'Spegnimento automatico dopo stampa',
requirePrevious: 'Richiede successo precedente',
printOptions: 'Opzioni stampa',
bedLevelling: 'Livellamento piatto',
flowCalibration: 'Calibrazione flusso',
vibrationCalibration: 'Calibrazione vibrazioni',
layerInspection: 'Controllo primo layer',
timelapse: 'Timelapse',
useAms: 'Usa AMS',
applyChanges: 'Applica modifiche',
selectAll: 'Seleziona tutto',
deselectAll: 'Deseleziona tutto',
selected: '{{count}} selezionati',
editSelected: 'Modifica selezionati',
cancelSelected: 'Annulla selezionati',
},
// Confirmations
confirm: {
cancelTitle: 'Annulla stampa programmata',
cancelMessage: 'Sei sicuro di annullare "{{name}}"?',
stopTitle: 'Ferma Stampa',
stopMessage: 'Sei sicuro di fermare la stampa corrente "{{name}}"? Questo annullerà il lavoro sulla stampante.',
removeTitle: 'Rimuovi dalla cronologia',
removeMessage: 'Sei sicuro di rimuovere "{{name}}" dalla cronologia coda?',
clearHistoryTitle: 'Svuota cronologia',
clearHistoryMessage: 'Sei sicuro di rimuovere {{count}} elemento(i) dalla cronologia?',
cancelButton: 'Annulla Stampa',
stopButton: 'Ferma Stampa',
thisPrint: 'questa stampa',
thisItem: 'questo elemento',
},
// Toast messages
toast: {
cancelled: 'Elemento coda annullato',
cancelFailed: 'Annullamento non riuscito',
removed: 'Elemento coda rimosso',
removeFailed: 'Rimozione non riuscita',
stopped: 'Stampa fermata',
stopFailed: 'Impossibile fermare stampa',
released: 'Stampa rilasciata in coda',
startFailed: 'Avvio stampa non riuscito',
reorderFailed: 'Riordino coda non riuscito',
historyCleared: 'Cancellati {{count}} elementi cronologia',
clearHistoryFailed: 'Svuotamento cronologia non riuscito',
updateFailed: 'Aggiornamento elementi non riuscito',
bulkCancelled: 'Annullati {{count}} elementi',
bulkCancelFailed: 'Annullamento elementi non riuscito',
},
// Permissions
permissions: {
noStopPrint: 'Non hai il permesso di fermare stampe',
noStartPrint: 'Non hai il permesso di avviare stampe',
noEdit: 'Non hai il permesso di modificare questo elemento coda',
noCancel: 'Non hai il permesso di annullare questo elemento coda',
noRequeue: 'Non hai il permesso di rimettere in coda elementi',
noRemove: 'Non hai il permesso di rimuovere questo elemento coda',
noClearHistory: 'Non hai il permesso di svuotare tutta la cronologia',
noEditItems: 'Non hai il permesso di modificare elementi coda',
noCancelItems: 'Non hai il permesso di annullare elementi coda',
},
},
// Statistics page
stats: {
title: 'Dashboard',
subtitle: 'Trascina i widget per riordinare. Clicca l\'icona occhio per nascondere.',
overview: 'Panoramica',
totalPrints: 'Stampe totali',
successRate: 'Tasso di successo',
totalPrintTime: 'Tempo totale di stampa',
printTime: 'Tempo di stampa',
totalFilament: 'Filamento totale usato',
filamentUsed: 'Filamento usato',
filamentCost: 'Costo filamento',
totalCost: 'Costo totale',
energyUsed: 'Energia usata',
energyCost: 'Costo energia',
averagePrintTime: 'Tempo medio di stampa',
printsPerDay: 'Stampe al giorno',
byPrinter: 'Per stampante',
printsByPrinter: 'Stampe per stampante',
byMaterial: 'Per materiale',
byMonth: 'Per mese',
last7Days: 'Ultimi 7 giorni',
last30Days: 'Ultimi 30 giorni',
last90Days: 'Ultimi 90 giorni',
allTime: 'Sempre',
// Widgets
quickStats: 'Statistiche rapide',
printActivity: 'Attivita di stampa',
filamentTypes: 'Tipi di filamento',
filamentTrends: 'Trend filamento',
failureAnalysis: 'Analisi guasti',
timeAccuracy: 'Accuratezza tempo',
successful: 'Riuscite:',
failed: 'Fallite:',
perfectEstimate: '100% = stima perfetta',
noTimeAccuracyData: 'Nessun dato accuratezza tempo',
noFilamentData: 'Nessun dato filamento',
noPrinterData: 'Nessun dato stampante',
noPrintData: 'Nessun dato stampa',
noPrintDataLast30Days: 'Nessun dato stampa negli ultimi 30 giorni',
failureReasons: 'Cause guasto',
topFailureReasons: 'Cause principali',
failedPrintsCount: '{{failed}} / {{total}} stampe fallite',
lastWeekRate: 'Settimana scorsa: {{rate}}%',
// Actions
resetLayout: 'Reimposta layout',
recalculateCosts: 'Ricalcola costi',
recalculateCostsHint: 'Ricalcola tutti i costi archivi usando i prezzi filamento correnti',
exportStats: 'Esporta statistiche',
exportAsCsv: 'Esporta come CSV',
exportAsExcel: 'Esporta come Excel',
hiddenCount: '{{count}} Nascosti',
// Toast
exportDownloaded: 'Export scaricato',
exportFailed: 'Export non riuscito',
layoutReset: 'Layout reimpostato',
recalculatedCosts: 'Costi ricalcolati per {{count}} archivi',
recalculateFailed: 'Ricalcolo costi non riuscito',
// Loading
loadingStats: 'Caricamento statistiche...',
// Permissions
noPermissionResetLayout: 'Non hai il permesso di reimpostare il layout',
noPermissionRecalculate: 'Non hai il permesso di ricalcolare i costi',
},
// Maintenance page
maintenance: {
title: 'Manutenzione',
overview: 'Panoramica',
allOk: 'Tutta la manutenzione aggiornata',
dueCount: '{{count}} elemento in scadenza',
dueCount_plural: '{{count}} elementi in scadenza',
warningCount: '{{count}} avviso',
warningCount_plural: '{{count}} avvisi',
totalPrintTime: 'Tempo totale di stampa',
nextMaintenance: 'Prossima manutenzione',
nothingDue: 'Niente in scadenza',
tasks: 'Attivita',
lastPerformed: 'Ultima esecuzione',
interval: 'Intervallo',
hoursRemaining: '{{hours}}h rimanenti',
hoursOverdue: '{{hours}}h in ritardo',
markDone: 'Segna come fatto',
performMaintenance: 'Esegui manutenzione',
history: 'Cronologia',
noHistory: 'Nessuna cronologia manutenzione',
editPrintHours: 'Modifica ore stampa',
currentHours: 'Ore attuali',
// Tabs
statusTab: 'Stato',
settingsTab: 'Impostazioni',
// Status
overdueCount: '{{count}} in ritardo',
dueSoonCount: '{{count}} in scadenza',
dueSoon: 'In scadenza',
allGood: 'Tutto ok',
overdueBy: 'In ritardo di {{duration}}',
dueIn: 'Scade tra {{duration}}',
timeLeft: '{{duration}} rimanenti',
// Duration formats
day: '1 giorno',
days: '{{count}} giorni',
week: '1 settimana',
weeks: '{{count}} settimane',
month: '1 mese',
months: '{{count}} mesi',
year: '1 anno',
// Settings
maintenanceTypes: 'Tipi di manutenzione',
maintenanceTypesDescription: 'Tipi di sistema e tue attivita personalizzate',
addCustomType: 'Aggiungi tipo personalizzato',
restoreDefaults: 'Ripristina attivita predefinite',
intervalType: 'Tipo intervallo',
intervalValue: 'Intervallo ({{type}})',
icon: 'Icona',
documentationLink: 'Link documentazione (opzionale)',
assignToPrinters: 'Assegna alle stampanti',
selectAtLeastOnePrinter: 'Seleziona almeno una stampante',
addType: 'Aggiungi tipo',
custom: 'Personalizzato',
printHours: 'Ore di stampa',
calendarDays: 'Giorni calendario',
exampleName: 'es. Sostituisci filtro HEPA',
viewDocumentation: 'Vedi documentazione',
timeBasedInterval: 'Intervallo basato sul tempo',
// Interval overrides
intervalOverrides: 'Override intervallo',
intervalOverridesDescription: 'Personalizza intervalli per stampanti specifiche',
// Printer assignment
assignedToPrinters: 'Assegnato alle stampanti:',
noPrintersAssigned: 'Nessuna stampante assegnata',
addPrinterShort: 'Aggiungi:',
printersAssignedClick: '{{count}} stampante(i) assegnata - clicca per gestire',
removeFromPrinter: 'Rimuovi da questa stampante',
// Types
types: {
lubricateCarbonRods: 'Lubrifica aste in carbonio',
lubricateRails: 'Lubrifica guide lineari',
cleanNozzle: 'Pulisci ugello/Hotend',
checkBelts: 'Controlla tensione cinghie',
cleanBuildPlate: 'Pulisci piatto',
checkExtruder: 'Controlla ingranaggi estrusore',
checkCooling: 'Controlla ventole raffreddamento',
generalInspection: 'Ispezione generale',
cleanCarbonRods: 'Pulisci aste in carbonio',
cleanLinearRails: 'Pulisci guide lineari',
checkPtfeTube: 'Controlla tubo PTFE',
replaceHepaFilter: 'Sostituisci filtro HEPA',
replaceCarbonFilter: 'Sostituisci filtro carbone',
lubricateLeftNozzleRail: 'Lubrifica guida ugello sinistro',
},
// Toast
maintenanceComplete: 'Manutenzione segnata come completata',
typeUpdated: 'Tipo manutenzione aggiornato',
typeDeleted: 'Tipo manutenzione eliminato',
defaultsRestored: 'Ripristinate {{count}} attivita predefinite',
printHoursUpdated: 'Ore di stampa aggiornate',
printerAssigned: 'Stampante assegnata',
printerRemoved: 'Stampante rimossa',
// Confirmation
deleteTypeConfirm: 'Eliminare "{{name}}"?',
deleteSystemTypeTitle: 'Eliminare attività di manutenzione predefinita?',
deleteSystemTypeMessage: 'Sei sicuro di voler eliminare l\'attività di manutenzione predefinita "{{name}}"?',
// Permissions
noPermissionUpdate: 'Non hai il permesso di aggiornare elementi manutenzione',
noPermissionPerform: 'Non hai il permesso di eseguire manutenzione',
noPermissionEditTypes: 'Non hai il permesso di modificare tipi manutenzione',
noPermissionDeleteTypes: 'Non hai il permesso di eliminare tipi manutenzione',
noPermissionEditHours: 'Non hai il permesso di modificare ore stampa',
noPermissionRemovePrinter: 'Non hai il permesso di rimuovere assegnazioni stampanti',
noPermissionAssignPrinter: 'Non hai il permesso di assegnare stampanti',
noPermissionEditIntervals: 'Non hai il permesso di modificare intervalli',
// Configure link
configureSettings: 'Configura tipi e intervalli manutenzione',
},
// Settings page
settings: {
title: 'Impostazioni',
general: 'Generale',
// Tab names
tabs: {
general: 'Generale',
smartPlugs: 'Prese smart',
notifications: 'Notifiche',
filament: 'Filamento',
network: 'Rete',
apiKeys: 'Chiavi API',
virtualPrinter: 'Stampante virtuale',
users: 'Utenti',
backup: 'Backup',
},
appearance: 'Aspetto',
notifications: 'Notifiche',
smartPlugs: 'Prese smart',
spoolman: 'Spoolman',
updates: 'Aggiornamenti',
language: 'Lingua',
languageDescription: 'Seleziona la lingua preferita',
theme: 'Tema',
themeLight: 'Chiaro',
themeDark: 'Scuro',
themeSystem: 'Sistema',
defaultView: 'Vista predefinita',
defaultViewDescription: "Pagina da mostrare all'apertura dell'app",
checkForUpdates: 'Controlla aggiornamenti',
autoUpdate: 'Aggiornamento automatico',
currentVersion: 'Versione attuale',
latestVersion: 'Ultima versione',
upToDate: 'Sei aggiornato',
updateAvailable: 'Aggiornamento disponibile',
// Notifications
notificationLanguage: 'Lingua notifiche',
notificationLanguageDescription: 'Lingua per notifiche push',
notificationProviders: 'Provider notifiche',
addProvider: 'Aggiungi provider',
editProvider: 'Modifica provider',
providerType: 'Tipo provider',
testNotification: 'Notifica di test',
testSuccess: 'Notifica di test inviata',
testFailed: 'Invio notifica di test fallito',
quietHours: 'Ore silenziose',
quietHoursDescription: 'Non disturbare in queste ore',
quietHoursStart: 'Inizio',
quietHoursEnd: 'Fine',
events: {
title: 'Eventi notifica',
printStart: 'Stampa avviata',
printComplete: 'Stampa completata',
printFailed: 'Stampa fallita',
printStopped: 'Stampa interrotta',
printProgress: 'Avanzamento',
printProgressDescription: 'Notifica al 25%, 50%, 75%',
printerOffline: 'Stampante offline',
printerError: 'Errore stampante',
filamentLow: 'Filamento in esaurimento',
maintenanceDue: 'Manutenzione dovuta',
maintenanceDueDescription: 'Notifica quando serve manutenzione',
},
// Smart Plugs
smartPlug: {
title: 'Prese smart',
add: 'Aggiungi presa smart',
edit: 'Modifica presa smart',
name: 'Nome',
ipAddress: 'Indirizzo IP',
linkedPrinter: 'Stampante collegata',
autoOn: 'Accensione automatica',
autoOnDescription: 'Accendi all\'avvio stampa',
autoOff: 'Spegnimento automatico',
autoOffDescription: 'Spegni dopo il completamento',
offDelay: 'Ritardo spegnimento',
offDelayMinutes: 'Minuti dopo la stampa',
offDelayTemp: 'Quando ugello sotto temperatura',
currentState: 'Stato attuale',
turnOn: 'Accendi',
turnOff: 'Spegni',
},
// Spoolman
spoolmanEnabled: 'Abilita integrazione Spoolman',
spoolmanUrl: 'URL Spoolman',
spoolmanConnected: 'Connesso',
spoolmanDisconnected: 'Disconnesso',
// Default printer
noDefaultPrinter: 'Nessuna predefinita (chiedi ogni volta)',
// Sidebar
sidebarOrder: 'Ordine barra laterale',
// Camera
saveThumbnails: 'Salva miniature',
captureFinishPhoto: 'Acquisisci foto finale',
noPrintersConfigured: 'Nessuna stampante configurata',
// Archive settings
archiveMode: {
always: 'Crea sempre voce archivio',
never: 'Non creare mai voce archivio',
ask: 'Chiedi ogni volta',
},
// Updates
checkForUpdatesLabel: 'Controlla aggiornamenti',
checkPrinterFirmware: 'Controlla firmware stampante',
// Queue
enableRetry: 'Abilita retry',
// Home Assistant
homeAssistantDescription: 'Controlla prese smart tramite Home Assistant',
environmentManagedLabel: '(Gestito dall\'ambiente)',
autoEnabledViaEnv: 'Abilitato automaticamente tramite variabili d\'ambiente',
urlFromEnvReadOnly: 'Valore impostato dalla variabile d\'ambiente HA_URL (sola lettura)',
tokenFromEnvReadOnly: 'Valore impostato dalla variabile d\'ambiente HA_TOKEN (sola lettura)',
// MQTT
mqttConnectedTo: 'Connesso a',
// Prometheus
prometheusDescription: 'Esponi dati stampante in formato Prometheus',
// Smart plugs empty state
noSmartPlugsTitle: 'Nessuna presa smart configurata',
noSmartPlugsDescription: 'Aggiungi una presa smart Tasmota per monitorare energia e automatizzare il controllo.',
// Notifications empty state
noProvidersTitle: 'Nessun provider configurato',
noProvidersDescription: 'Aggiungi un provider per ricevere avvisi.',
noTemplatesAvailable: 'Nessun template disponibile. Riavvia il backend per generare i template predefiniti.',
// API permissions
apiPermissionView: 'Visualizza stato stampante e coda',
apiPermissionEdit: 'Aggiungi e rimuovi elementi dalla coda di stampa',
// API keys
apiKeysEmptyTitle: 'Nessuna chiave API',
apiKeysEmptyDescription: 'Crea una chiave API per integrare servizi esterni.',
// Users
noUsersFound: 'Nessun utente trovato',
noGroupsFound: 'Nessun gruppo trovato',
noGroupsAvailable: 'Nessun gruppo disponibile',
passwordsDoNotMatch: 'Le password non coincidono',
systemGroupWarning: 'I nomi dei gruppi di sistema non possono essere modificati',
// Auth disabled
authDisabledTitle: 'Autenticazione disabilitata',
authDisabledFeature1: 'Richiedi accesso per usare il sistema',
authDisabledFeature2: 'Crea più utenti con permessi basati sui gruppi',
authDisabledFeature3: 'Controlla accesso con 50+ permessi granulari',
// User deletion
userHasCreated: 'Questo utente ha creato:',
userItemsQuestion: 'Cosa vuoi fare con questi elementi?',
deleteUserConfirm: 'Sei sicuro di voler eliminare questo utente?',
actionCannotBeUndone: 'Questa azione non può essere annullata.',
// Smart plugs
addFirstSmartPlug: 'Aggiungi la tua prima presa smart',
// Notifications
providers: 'Provider',
log: 'Log',
testAll: 'Testa tutto',
testResults: 'Risultati test',
testPassedCount: '{{count}} riusciti',
testFailedCount: '{{count}} falliti',
messageTemplates: 'Template messaggi',
messageTemplatesDescription: 'Personalizza i messaggi per ogni evento.',
// API Keys section
apiKeys: 'Chiavi API',
apiKeysDescription: 'Crea chiavi API per integrazioni esterne e webhook.',
createKey: 'Crea chiave',
apiKeyCreated: 'Chiave API creata con successo',
apiKeyCopyWarning: "Copia questa chiave ora - non verra mostrata di nuovo!",
useInApiBrowser: 'Usa nel Browser API',
createNewApiKey: 'Crea nuova chiave API',
keyName: 'Nome chiave',
keyNamePlaceholder: 'es., Home Assistant, OctoPrint',
readStatus: 'Leggi stato',
readStatusDescription: 'Visualizza stato stampante e coda',
manageQueue: 'Gestisci coda',
manageQueueDescription: 'Aggiungi e rimuovi elementi dalla coda di stampa',
controlPrinter: 'Controlla stampante',
controlPrinterDescription: 'Metti in pausa, riprendi e ferma stampe',
unnamedKey: 'Chiave senza nome',
lastUsed: 'Ultimo uso',
read: 'Lettura',
control: 'Controllo',
createFirstKey: 'Crea la tua prima chiave',
webhookEndpoints: 'Endpoint webhook',
webhookApiKeyHint: "Usa la tua chiave API nell'header X-API-Key.",
webhook: {
getAllStatus: 'Ottieni stato di tutte le stampanti',
getSpecificStatus: 'Ottieni stato di una stampante',
addToQueue: 'Aggiungi alla coda di stampa',
pausePrint: 'Metti in pausa stampa',
resumePrint: 'Riprendi stampa',
stopPrint: 'Ferma stampa',
},
apiBrowser: 'Browser API',
apiBrowserDescription: 'Esplora e testa tutti gli endpoint API disponibili.',
apiKeyForTesting: 'Chiave API per test',
apiKeyPlaceholder: 'Incolla qui la tua chiave API per testare gli endpoint autenticati...',
apiKeyHint: "Questa chiave verra inviata come header X-API-Key.",
deleteApiKeyTitle: 'Elimina chiave API',
deleteApiKeyMessage: 'Sei sicuro di voler eliminare questa chiave API? Le integrazioni che la usano non funzioneranno più.',
deleteKey: 'Elimina chiave',
// Filament tab
amsDisplayThresholds: 'Soglie visualizzazione AMS',
amsThresholdsDescription: 'Configura soglie colore per umidità e temperatura AMS.',
humidity: 'Umidità',
goodGreen: 'Buono (verde)',
fairOrange: 'Discreto (arancione)',
aboveFairBad: 'Sopra soglia discreta mostra rosso (scarso)',
temperature: 'Temperatura',
goodBlue: 'Buono (blu)',
aboveFairHot: 'Sopra soglia discreta mostra rosso (caldo)',
historyRetention: 'Conservazione cronologia',
keepSensorHistory: 'Mantieni cronologia sensori per',
historyRetentionDescription: 'I dati più vecchi saranno eliminati automaticamente',
printModal: 'Modale stampa',
expandCustomMapping: 'Espandi mapping personalizzato di default',
expandCustomMappingDescription: 'Quando stampi su più stampanti, mostra mapping AMS per stampante espanso',
// User management
authentication: 'Autenticazione',
authEnabledDescription: 'La tua istanza è protetta con autenticazione',
authDisabledDescription: 'Abilita per richiedere accesso e gestire utenti',
authDisabledMessage: 'Abilita autenticazione per creare account, gestire permessi e proteggere la tua istanza Bambuddy.',
enableAuthentication: 'Abilita autenticazione',
currentUser: 'Utente corrente',
changePassword: 'Cambia password',
admin: 'Admin',
users: 'Utenti',
addUser: 'Aggiungi utente',
groups: 'Gruppi',
addGroup: 'Aggiungi gruppo',
system: 'Sistema',
noDescription: 'Nessuna descrizione',
userCount: '{{count}} utenti',
permissionCount: '{{count}} permessi',
createUser: 'Crea utente',
username: 'Nome utente',
enterUsername: 'Inserisci nome utente',
password: 'Password',
enterPassword: 'Inserisci password (min 6 caratteri)',
confirmPassword: 'Conferma password',
confirmPasswordPlaceholder: 'Conferma password',
// Title tooltips
viewReleaseOnGitHub: 'Vedi release su GitHub',
turnAllPlugsOn: 'Accendi tutte le prese',
turnAllPlugsOff: 'Spegni tutte le prese',
// Modal: Clear logs
clearNotificationLogs: 'Cancella log notifiche',
clearLogsMessage: 'Questo eliminerà definitivamente tutti i log notifiche più vecchi di 30 giorni. Questa azione non può essere annullata.',
clearLogs: 'Cancella log',
// Modal: Reset UI
resetUiPreferences: 'Reimposta preferenze UI',
resetUiPreferencesMessage: 'Questo reimposterà le preferenze UI ai valori predefiniti: ordine barra laterale, tema, layout dashboard, modalità vista e preferenze ordinamento. Stampanti, archivi e impostazioni server NON saranno modificati. La pagina si ricaricherà dopo la cancellazione.',
resetPreferences: 'Reimposta preferenze',
// Modal: Delete group
deleteGroupTitle: 'Elimina gruppo',
deleteGroupMessage: 'Sei sicuro di voler eliminare questo gruppo? Gli utenti in questo gruppo perderanno questi permessi.',
deleteGroup: 'Elimina gruppo',
// Modal: Disable auth
disableAuthenticationTitle: 'Disabilita autenticazione',
disableAuthenticationMessage: "Sei sicuro di voler disabilitare l'autenticazione? Questo renderà la tua istanza Bambuddy accessibile senza login. Tutti gli utenti resteranno nel database ma l'autenticazione sarà disabilitata.",
disableAuthentication: 'Disabilita autenticazione',
// Additional settings
configureBambuddy: 'Configura Bambuddy',
systemDefault: 'Predefinito di sistema',
archiveSettings: 'Impostazioni archivio',
newWindow: 'Nuova finestra',
embeddedOverlay: 'Overlay incorporato',
preferredSlicer: 'Slicer preferito',
preferredSlicerDescription: 'Scegli quale applicazione slicer usare per aprire i file',
externalCameras: 'Camere esterne',
costTracking: 'Tracciamento costi',
printsOnly: 'Solo stampe',
totalConsumption: 'Consumo totale',
dataManagement: 'Gestione dati',
clearNotificationLogsDescription: 'Elimina log notifiche più vecchi di 30 giorni',
resetUiPreferencesDescription: 'Reimposta ordine barra laterale, tema, modalità vista e preferenze layout. Stampanti, archivi e impostazioni non vengono modificati.',
enableHomeAssistant: 'Abilita Home Assistant',
enableMqtt: 'Abilita MQTT',
useTls: 'Usa TLS',
enableMetricsEndpoint: 'Abilita endpoint metriche',
availableMetrics: 'Metriche disponibili',
editUser: 'Modifica utente',
deleteUserTitle: 'Elimina utente',
groupName: 'Nome gruppo',
// Placeholders
leaveEmptyForAnonymous: 'Lascia vuoto per anonimo',
leaveEmptyForNoAuth: 'Lascia vuoto per nessuna autenticazione',
enterNewPassword: 'Inserisci nuova password',
confirmNewPassword: 'Conferma nuova password',
enterGroupName: 'Inserisci nome gruppo',
enterDescriptionOptional: 'Inserisci descrizione (opzionale)',
enterCurrentPassword: 'Inserisci password attuale',
enterNewPasswordMin6: 'Inserisci nuova password (min 6 caratteri)',
toast: {
keyCopied: 'Chiave copiata negli appunti',
copyFailed: 'Copia chiave fallita',
keyAddedToBrowser: 'Chiave aggiunta al Browser API',
clearLogsFailed: 'Eliminazione log fallita',
uiPreferencesReset: 'Preferenze UI reimpostate. Aggiornamento...',
authDisabled: 'Autenticazione disabilitata con successo',
authDisableFailed: 'Disabilitazione autenticazione fallita',
apiKeyCreated: 'Chiave API creata',
apiKeyDeleted: 'Chiave API eliminata',
userCreated: 'Utente creato con successo',
userUpdated: 'Utente aggiornato con successo',
userDeleted: 'Utente eliminato con successo',
groupCreated: 'Gruppo creato con successo',
groupUpdated: 'Gruppo aggiornato con successo',
groupDeleted: 'Gruppo eliminato con successo',
fillRequiredFields: 'Compila tutti i campi obbligatori',
passwordsDoNotMatch: 'Le password non coincidono',
passwordTooShort: 'La password deve essere di almeno 6 caratteri',
enterGroupName: 'Inserisci un nome gruppo',
settingsSaved: 'Impostazioni salvate',
cameraSettingsSaved: 'Impostazioni camera salvate',
enterCameraUrl: 'Inserisci un URL camera',
passwordChanged: 'Password cambiata con successo',
connectionFailed: 'Connessione fallita',
testFailed: 'Test fallito',
cameraConnected: 'Camera connessa{{resolution}}',
},
testConnection: 'Testa connessione',
},
// Notifications (for push notifications)
notification: {
printStarted: {
title: 'Stampa avviata',
body: '{{printer}}: {{filename}} ha iniziato a stampare',
},
printCompleted: {
title: 'Stampa completata',
body: '{{printer}}: {{filename}} completata con successo',
},
printFailed: {
title: 'Stampa fallita',
body: '{{printer}}: {{filename}} fallita',
},
printStopped: {
title: 'Stampa interrotta',
body: '{{printer}}: {{filename}} interrotta',
},
printProgress: {
title: 'Avanzamento stampa',
body: '{{printer}}: {{filename}} al {{percent}}% completamento',
},
printerOffline: {
title: 'Stampante offline',
body: '{{printer}} e offline',
},
printerError: {
title: 'Errore stampante',
body: '{{printer}}: {{error}}',
},
filamentLow: {
title: 'Filamento in esaurimento',
body: '{{printer}}: Filamento in esaurimento',
},
maintenanceDue: {
title: 'Manutenzione dovuta',
body: '{{printer}}: {{items}} richiedono attenzione',
},
},
// Errors
errors: {
generic: 'Qualcosa e andato storto',
networkError: 'Errore di rete. Controlla la connessione.',
notFound: 'Non trovato',
unauthorized: 'Non autorizzato',
serverError: 'Errore server',
validationError: 'Controlla i dati inseriti',
printerConnectionFailed: 'Connessione alla stampante fallita',
saveFailed: 'Salvataggio modifiche fallito',
deleteFailed: 'Eliminazione fallita',
loadFailed: 'Caricamento dati fallito',
},
// HMS Errors modal
hmsErrors: {
title: 'Errori - {{name}}',
noErrors: 'Nessun errore',
viewOnWiki: 'Vedi su Bambu Lab Wiki',
clearInstructions: 'Cancella gli errori sulla stampante per rimuoverli qui.',
},
// MQTT Debug modal
mqttDebug: {
title: 'Log debug MQTT',
searchPlaceholder: 'Cerca topic o payload...',
noMessages: 'Nessun messaggio registrato',
startLoggingHint: 'Clicca "Avvia logging" per iniziare a catturare messaggi MQTT',
noMessagesMatch: 'Nessun messaggio corrisponde al filtro',
adjustFilterHint: 'Prova a modificare la ricerca o i filtri',
incoming: 'In ingresso',
outgoing: 'In uscita',
loggingStopped: 'Logging fermato',
loggingActive: 'Logging attivo - i messaggi si aggiornano automaticamente',
startLogging: 'Avvia logging',
stopLogging: 'Ferma logging',
clearLog: 'Pulisci log',
topic: 'Topic',
timestamp: 'Timestamp',
direction: 'Direzione',
all: 'Tutti',
},
// Printer File Manager modal (printer internal storage)
printerFiles: {
title: 'Gestore file',
storageUsed: 'Usato:',
storageFree: 'Libero:',
filterPlaceholder: 'Filtra file...',
deleteButton: 'Elimina',
deleteFiles: 'Elimina {{count}} file',
deleteFileConfirm: 'Eliminare "{{name}}"? Questa azione non può essere annullata.',
deleteFilesConfirm: 'Eliminare {{count}} file selezionati? Questa azione non può essere annullata.',
noFiles: 'Nessun file sulla stampante',
loadingFiles: 'Caricamento file...',
failedToLoad: 'Caricamento file fallito',
toast: {
filesDeleted: 'Eliminati {{count}} file',
deleteFailed: 'Eliminazione fallita: {{error}}',
},
},
// Confirmations
confirm: {
delete: 'Sei sicuro di voler eliminare questo?',
unsavedChanges: 'Hai modifiche non salvate. Sei sicuro di voler uscire?',
clearQueue: 'Sei sicuro di voler svuotare la coda?',
},
// Login page
login: {
title: 'Login Bambuddy',
subtitle: 'Accedi al tuo account',
username: 'Nome utente',
usernamePlaceholder: 'Inserisci il nome utente',
password: 'Password',
passwordPlaceholder: 'Inserisci la password',
signIn: 'Accedi',
signingIn: 'Accesso in corso...',
forgotPassword: 'Hai dimenticato la password?',
loginSuccess: 'Accesso riuscito',
loginFailed: 'Accesso fallito',
enterCredentials: 'Inserisci nome utente e password',
forgotPasswordTitle: 'Password dimenticata',
forgotPasswordMessage: 'Se hai dimenticato la password, contatta il tuo amministratore di sistema per reimpostarla.',
howToReset: 'Come reimpostare la password:',
resetStep1: 'Contatta il tuo amministratore Bambuddy',
resetStep2: 'Chiedi di reimpostare la password in Gestione utenti',
resetStep3: 'Possono impostare una nuova password temporanea',
resetStep4: 'Accedi con la nuova password e cambiala in Impostazioni',
gotIt: 'Capito',
},
// Setup page
setup: {
title: 'Configurazione Bambuddy',
subtitle: 'Configura autenticazione per la tua istanza Bambuddy',
enableAuth: 'Abilita autenticazione',
adminAccount: 'Account admin',
adminAccountDesc: 'Se esistono già admin, l\'autenticazione verrà abilitata usando gli account esistenti. Lascia i campi sotto vuoti per usare gli admin esistenti, oppure inserisci nuove credenziali per creare un nuovo utente admin.',
adminUsername: 'Nome utente admin',
adminPassword: 'Password admin',
optionalIfAdminExists: '(opzionale se esistono admin)',
adminUsernamePlaceholder: 'Inserisci nome utente admin (opzionale)',
adminPasswordPlaceholder: 'Inserisci password admin (opzionale)',
confirmPassword: 'Conferma password',
confirmPasswordPlaceholder: 'Conferma password admin',
settingUp: 'Configurazione...',
completeSetup: 'Completa configurazione',
toast: {
authEnabledAdminCreated: 'Autenticazione abilitata e utente admin creato',
authEnabledExistingAdmins: 'Autenticazione abilitata usando admin esistenti',
setupCompleted: 'Configurazione completata',
enterBothCredentials: 'Inserisci nome utente e password admin, oppure lascia entrambi vuoti per usare admin esistenti',
passwordsDoNotMatch: 'Le password non coincidono',
passwordTooShort: 'La password deve essere di almeno 6 caratteri',
},
},
// Password change
changePassword: {
title: 'Cambia password',
currentPassword: 'Password attuale',
currentPasswordPlaceholder: 'Inserisci password attuale',
newPassword: 'Nuova password',
newPasswordPlaceholder: 'Inserisci nuova password (min 6 caratteri)',
confirmPassword: 'Conferma nuova password',
confirmPasswordPlaceholder: 'Conferma nuova password',
passwordsDoNotMatch: 'Le password non coincidono',
passwordTooShort: 'La password deve essere di almeno 6 caratteri',
changing: 'Modifica in corso...',
success: 'Password cambiata con successo',
failed: 'Modifica password fallita',
},
// Plate detection alert
plateAlert: {
title: 'Stampa in pausa!',
message: 'Oggetti rilevati sul piatto. La stampa è stata messa automaticamente in pausa. Svuota il piatto e riprendi la stampa.',
understand: 'Ho capito',
},
// Camera page
camera: {
title: 'Vista camera',
invalidPrinterId: 'ID stampante non valido',
live: 'Live',
snapshot: 'Snapshot',
restartStream: 'Riavvia stream',
refreshSnapshot: 'Aggiorna snapshot',
fullscreen: 'Schermo intero',
exitFullscreen: 'Esci da schermo intero',
connectingToCamera: 'Connessione alla camera...',
capturingSnapshot: 'Acquisizione snapshot...',
connectionLost: 'Connessione persa',
connectionFailed: 'Connessione camera fallita',
reconnecting: 'Riconnessione tra {{countdown}}s... (tentativo {{attempt}}/{{max}})',
reconnectNow: 'Riconnetti ora',
cameraUnavailable: 'Camera non disponibile',
cameraUnavailableDesc: 'Assicurati che la stampante sia accesa e connessa.',
noCamera: 'Nessuna camera disponibile',
retry: 'Riprova',
cameraStream: 'Stream camera',
zoomOut: 'Zoom indietro',
zoomIn: 'Zoom avanti',
resetZoom: 'Reset zoom',
recording: 'Registrazione',
startRecording: 'Avvia registrazione',
stopRecording: 'Ferma registrazione',
chamberLight: 'Accendi/Spegni luce camera',
},
// Groups management
groups: {
title: 'Gestione gruppi',
subtitle: 'Gestisci gruppi permessi per controllo accesso',
backToSettings: 'Torna a Impostazioni',
createGroup: 'Crea gruppo',
noPermission: 'Non hai il permesso di accedere a questa pagina.',
system: 'Sistema',
noDescription: 'Nessuna descrizione',
usersCount: '{{count}} utenti',
permissionsCount: '{{count}} permessi',
edit: 'Modifica',
delete: 'Elimina',
toast: {
created: 'Gruppo creato con successo',
updated: 'Gruppo aggiornato con successo',
deleted: 'Gruppo eliminato con successo',
enterGroupName: 'Inserisci un nome gruppo',
},
modal: {
editGroup: 'Modifica gruppo',
createGroup: 'Crea gruppo',
cancel: 'Annulla',
saving: 'Salvataggio...',
creating: 'Creazione...',
saveChanges: 'Salva modifiche',
},
form: {
groupName: 'Nome gruppo',
groupNamePlaceholder: 'Inserisci nome gruppo',
systemGroupWarning: 'I nomi dei gruppi di sistema non possono essere modificati',
description: 'Descrizione',
descriptionPlaceholder: 'Inserisci descrizione (opzionale)',
permissions: 'Permessi ({{count}} selezionati)',
},
deleteModal: {
title: 'Elimina gruppo',
message: 'Sei sicuro di voler eliminare questo gruppo? Gli utenti in questo gruppo perderanno questi permessi.',
confirm: 'Elimina gruppo',
},
},
// Users management
users: {
title: 'Gestione utenti',
subtitle: 'Gestisci utenti e accesso alla tua istanza Bambuddy',
backToSettings: 'Torna a Impostazioni',
createUser: 'Crea utente',
noPermission: 'Non hai il permesso di accedere a questa pagina.',
admin: 'Admin',
noGroups: 'Nessun gruppo',
active: 'Attivo',
inactive: 'Inattivo',
edit: 'Modifica',
delete: 'Elimina',
system: 'Sistema',
noGroupsAvailable: 'Nessun gruppo disponibile',
table: {
username: 'Nome utente',
groups: 'Gruppi',
status: 'Stato',
actions: 'Azioni',
},
toast: {
created: 'Utente creato con successo',
updated: 'Utente aggiornato con successo',
deleted: 'Utente eliminato con successo',
fillRequired: 'Compila tutti i campi obbligatori',
passwordsDoNotMatch: 'Le password non coincidono',
passwordTooShort: 'La password deve essere di almeno 6 caratteri',
},
modal: {
createUser: 'Crea utente',
editUser: 'Modifica utente',
cancel: 'Annulla',
creating: 'Creazione...',
saving: 'Salvataggio...',
saveChanges: 'Salva modifiche',
},
form: {
username: 'Nome utente',
usernamePlaceholder: 'Inserisci nome utente',
password: 'Password',
passwordPlaceholder: 'Inserisci password',
confirmPassword: 'Conferma password',
confirmPasswordPlaceholder: 'Conferma password',
newPasswordPlaceholder: 'Inserisci nuova password',
confirmNewPasswordPlaceholder: 'Conferma nuova password',
leaveBlankToKeep: 'lascia vuoto per mantenere attuale',
groups: 'Gruppi',
},
deleteModal: {
title: 'Elimina utente',
message: 'Sei sicuro di voler eliminare questo utente? Questa azione non può essere annullata.',
confirm: 'Elimina utente',
},
},
// Stream overlay
streamOverlay: {
title: 'Overlay stream',
invalidPrinterId: 'ID stampante non valido',
cameraStream: 'Stream camera',
progress: 'Avanzamento',
eta: 'ETA',
tomorrow: 'Domani',
printerIdle: 'Stampante inattiva',
printerOffline: 'Stampante offline',
status: {
printing: 'In stampa',
paused: 'In pausa',
finished: 'Completata',
failed: 'Fallita',
idle: 'Inattiva',
unknown: 'Sconosciuto',
},
},
// Profiles
profiles: {
title: 'Profili',
subtitle: 'Gestisci preset slicer e calibrazioni pressure advance',
tabs: {
cloud: 'Profili cloud',
local: 'Profili locali',
kprofiles: 'K-Profiles',
},
localProfiles: {
title: 'Profili locali',
subtitle: 'Importa e gestisci preset slicer da OrcaSlicer',
import: 'Importa profili',
importDesc: 'Trascina file .bbscfg, .bbsflmt, .orca_filament, .zip o .json qui',
importing: 'Importazione...',
search: 'Cerca preset locali...',
noPresets: 'Nessun preset locale ancora',
badge: 'Locale',
edit: 'Modifica',
delete: 'Elimina',
cancel: 'Annulla',
deleteConfirmTitle: 'Elimina preset',
deleteConfirm: 'Sei sicuro di voler eliminare questo preset? Questa azione non può essere annullata.',
source: 'Fonte',
inheritsFrom: 'Eredita da',
filamentType: 'Tipo',
vendor: 'Produttore',
compatiblePrinters: 'Stampanti',
nozzleTemp: 'Temp. ugello',
cost: 'Costo',
density: 'Densità',
pressureAdvance: 'Pressure Advance',
filament: 'Filamento',
process: 'Processo',
printer: 'Stampante',
toast: {
importSuccess: '{{count}} preset importati',
importSkipped: '{{count}} preset saltati (duplicati)',
importError: '{{count}} errori durante l\'importazione',
deleted: 'Preset eliminato',
updated: 'Preset aggiornato',
},
},
connectedAs: 'Connesso come',
logout: 'Esci',
noLogoutPermission: 'Non hai il permesso di disconnetterti',
failedToLoad: 'Caricamento profili fallito',
retry: 'Riprova',
time: {
justNow: 'Proprio ora',
minsAgo: '{{count}}m fa',
hoursAgo: '{{count}}h fa',
daysAgo: '{{count}}g fa',
},
toast: {
loggedOut: 'Disconnesso',
},
login: {
title: 'Connetti a Bambu Cloud',
subtitle: 'Sincronizza i preset del slicer tra dispositivi',
email: 'Email',
password: 'Password',
region: 'Regione',
regionGlobal: 'Globale',
regionChina: 'Cina',
verificationCode: 'Codice di verifica',
totpCode: 'Codice autenticatore',
checkEmail: 'Controlla la tua email ({{email}}) per un codice a 6 cifre',
enterTotpHint: 'Inserisci il codice a 6 cifre dalla tua app autenticatore',
accessToken: 'Access Token',
accessTokenHint: 'Incolla il tuo access token Bambu Lab (da Bambu Studio)',
back: 'Indietro',
loginButton: 'Accedi',
verifyButton: 'Verifica',
setTokenButton: 'Imposta token',
useToken: 'Usa access token invece',
useEmail: 'Accedi con email invece',
toast: {
loggedIn: 'Accesso riuscito',
codeSent: 'Codice di verifica inviato via email',
enterTotp: 'Inserisci il codice dalla tua app autenticatore',
tokenSet: 'Token impostato con successo',
},
},
presets: {
myPreset: 'Il mio preset (modificabile)',
duplicate: 'Duplica',
editable: 'Modificabile',
failedToLoadDetails: 'Caricamento dettagli preset fallito',
deleteConfirm: 'Eliminare questo preset?',
deleteWarning: 'Questo eliminerà definitivamente "{{name}}" da Bambu Cloud. Questa azione non può essere annullata.',
noDuplicatePermission: 'Non hai il permesso di duplicare preset',
noEditPermission: 'Non hai il permesso di modificare preset',
noDeletePermission: 'Non hai il permesso di eliminare preset',
types: {
filament: 'Preset filamento',
printer: 'Preset stampante',
process: 'Preset processo',
},
toast: {
deleted: 'Preset eliminato',
created: 'Preset creato',
updated: 'Preset aggiornato',
duplicated: 'Preset duplicato',
fieldAdded: 'Campo "{{key}}" aggiunto',
exported: 'Preset esportato',
},
baseLabel: 'Base: {{name}}',
currentLabel: 'Corrente: {{name}}',
newPreset: 'Nuovo preset',
editPreset: 'Modifica preset',
duplicatePreset: 'Duplica preset',
createNewPreset: 'Crea nuovo preset',
customizeSettings: 'Personalizza le impostazioni per il nuovo preset',
compareWithBase: 'Confronta con base',
compare: 'Confronta',
// CreatePresetModal - Basic Info
basePreset: 'Preset base',
selectBasePreset: 'Seleziona preset base...',
presetName: 'Nome preset',
myCustomPreset: 'Il mio preset personalizzato',
inheritsFrom: 'Deriva da',
dropJsonToImport: 'Rilascia JSON per importare',
// CreatePresetModal - Tabs
tabs: {
common: 'Comune',
allFields: 'Tutti i campi',
},
// CreatePresetModal - All Fields Tab
availableFields: 'Campi disponibili',
searchFieldsPlaceholder: 'Cerca campi...',
noMatchingFields: 'Nessun campo corrispondente',
allFieldsAdded: 'Tutti i campi aggiunti',
addCustomField: 'Aggiungi campo personalizzato',
yourOverrides: 'Le tue override',
noOverridesYet: 'Nessun override ancora',
clickFieldsToAdd: 'Clicca i campi a sinistra per aggiungerli',
saveAsTemplate: 'Salva come template',
jsonTip: 'Suggerimento: trascina e rilascia un file .json ovunque in questa modale per importare impostazioni',
},
cloudView: {
searchPlaceholder: 'Cerca preset...',
templates: 'Template',
refresh: 'Aggiorna',
newPreset: 'Nuovo preset',
clearFilters: 'Pulisci filtri',
// Compare mode
compareMode: 'Modalita confronto',
selectAnotherPreset: 'Seleziona un altro preset {{type}}',
clickTwoPresets: 'Clicca due preset dello stesso tipo per confrontare',
selectFirst: '1. Seleziona il primo',
selectSecond: '2. Seleziona il secondo',
compareNow: 'Confronta ora',
// Status row
lastSynced: 'Ultima sincronizzazione:',
showingCount: 'Mostrati {{showing}} di {{total}} preset',
noPresetsFound: 'Nessun preset trovato',
// Column headers
columns: {
filament: 'Filamento',
process: 'Processo',
printer: 'Stampante',
},
noFilamentPresets: 'Nessun preset filamento',
noProcessPresets: 'Nessun preset processo',
noPrinterPresets: 'Nessun preset stampante',
// Filters
filters: {
type: 'Tipo',
owner: 'Proprietario',
printer: 'Stampante',
nozzle: 'Ugello',
filament: 'Filamento',
layer: 'Layer',
all: 'Tutti',
myPresets: 'I miei preset',
builtIn: 'Integrati',
process: 'Processo',
},
// Permissions
noTemplatesPermission: 'Non hai il permesso di gestire i template',
noRefreshPermission: 'Non hai il permesso di aggiornare i profili',
noCreatePermission: 'Non hai il permesso di creare preset',
},
templates: {
title: 'Template rapidi',
noTemplates: 'Nessun template ancora',
createFirst: 'Crea template dall\'editor preset',
typeFilter: 'Tipo:',
deleteTitle: 'Elimina template',
deleteWarning: 'Questa azione non può essere annullata',
deleteConfirm: 'Sei sicuro di voler eliminare "{{name}}"?',
namePlaceholder: 'Nome template',
descriptionPlaceholder: 'Descrizione',
settingsJson: 'Impostazioni (JSON)',
fieldsCount: '{{count}} campi',
shownInModals: 'Mostrati nelle modali',
hiddenInModals: 'Nascosti nelle modali',
apply: 'Applica',
toast: {
deleted: 'Template eliminato',
updated: 'Template aggiornato',
created: 'Template creato',
applied: 'Template applicato',
},
},
},
// Support/Debug
support: {
debugLoggingActive: 'Log debug attivo',
manageLogs: 'Gestisci',
collectItem7: 'Connettività stampante e versioni firmware',
collectItem8: 'Stato integrazioni (Spoolman, MQTT, HA)',
collectItem9: 'Interfacce di rete (solo subnet)',
collectItem10: 'Versioni dei pacchetti Python',
collectItem11: 'Controlli di integrità del database',
collectItem12: 'Dettagli dell\'ambiente Docker',
},
// File manager
fileManager: {
title: 'Gestore file',
subtitle: 'Organizza e gestisci i tuoi file di stampa',
uploadFiles: 'Carica file',
newFolder: 'Nuova cartella',
folderName: 'Nome cartella',
folderNamePlaceholder: 'es., Parti funzionali',
renameFile: 'Rinomina file',
renameFolder: 'Rinomina cartella',
moveFiles: 'Sposta {{count}} file',
rootNoFolder: 'Root (nessuna cartella)',
current: 'corrente',
linkFolder: 'Collega cartella',
linkFolderDescription: 'Collega "{{name}}" a un progetto o archivio per accesso rapido.',
project: 'Progetto',
archive: 'Archivio',
noProjectsFound: 'Nessun progetto trovato',
noArchivesFound: 'Nessun archivio trovato',
unlink: 'Scollega',
link: 'Collega',
dragDropFiles: 'Trascina e rilascia file qui',
dropFilesHere: 'Rilascia file qui',
orClickToBrowse: 'oppure clicca per sfogliare',
allFileTypesSupported: 'Tutti i tipi di file supportati. I file ZIP saranno estratti.',
zipFilesDetected: 'File ZIP rilevati',
zipExtractOptions: 'I file ZIP saranno estratti. Scegli come gestire la struttura cartelle:',
preserveZipStructure: 'Mantieni struttura cartelle dal ZIP',
createFolderFromZip: 'Crea cartella dal nome ZIP',
stlThumbnailGeneration: 'Generazione miniature STL',
zipMayContainStl: 'I file ZIP possono contenere STL. Le miniature possono essere generate durante l\'estrazione.',
thumbnailsCanBeGenerated: 'Le miniature possono essere generate per file STL. I modelli grandi possono richiedere più tempo.',
generateThumbnailsForStl: 'Genera miniature per file STL',
threemfDetected: 'File 3MF rilevati',
threemfExtractionInfo: 'Modello stampante, materiale, colore e impostazioni stampa saranno estratti automaticamente dai file 3MF.',
willBeExtracted: 'Sara estratto',
filesExtracted: '{{count}} file estratti',
uploadComplete: 'Caricamento completato: {{succeeded}} riusciti',
uploadFailed: '{{count}} falliti',
uploading: 'Caricamento...',
changeLink: 'Cambia collegamento...',
linkTo: 'Collega a...',
linkToProjectOrArchive: 'Collega a progetto o archivio',
addToQueue: 'Aggiungi alla coda',
schedulePrint: 'Pianifica',
generateThumbnail: 'Genera miniatura',
generateThumbnails: 'Genera miniature',
generateThumbnailsForMissing: 'Genera miniature per STL senza miniatura',
gridView: 'Vista griglia',
listView: 'Vista elenco',
lowDiskSpaceWarning: 'Avviso spazio disco basso',
lowDiskSpaceDetails: 'Solo {{free}} liberi su {{total}} totali. La soglia e {{threshold}} GB nelle impostazioni.',
files: 'File',
folders: 'Cartelle',
size: 'Dimensione',
free: 'Libero',
allFiles: 'Tutti i file',
wrap: 'A capo',
enableTextWrapping: 'Abilita a capo testo',
disableTextWrapping: 'Disabilita a capo testo',
dragToResizeTooltip: 'Trascina per ridimensionare, doppio clic per reset',
searchFiles: 'Cerca file...',
allTypes: 'Tutti i tipi',
prints: 'Stampe',
ascending: 'Crescente',
descending: 'Decrescente',
resultsCount: '{{showing}} di {{total}} file',
selectAll: 'Seleziona tutto',
deselectAll: 'Deseleziona tutto',
selected: '{{count}} selezionati',
adding: 'Aggiunta...',
loadingFiles: 'Caricamento file...',
folderIsEmpty: 'La cartella e vuota',
noFilesYet: 'Nessun file ancora',
folderEmptyDescription: 'Carica file o sposta file in questa cartella per iniziare.',
noFilesDescription: 'Carica file per iniziare a organizzare i file di stampa.',
noMatchingFiles: 'Nessun file corrispondente',
noMatchingFilesDescription: 'Nessun file corrisponde ai criteri di ricerca o filtro.',
clearFilters: 'Pulisci filtri',
printedCount: 'Stampato {{count}}x',
uploadedBy: 'Caricato da',
deleteFolder: 'Elimina cartella',
deleteFile: 'Elimina file',
deleteFilesCount: 'Elimina {{count}} file',
deleteFolderConfirm: 'Sei sicuro di voler eliminare questa cartella? Tutti i file dentro saranno eliminati.',
deleteFileConfirm: 'Sei sicuro di voler eliminare questo file?',
deleteFilesConfirm: 'Sei sicuro di voler eliminare {{count}} file selezionati? Questa azione non può essere annullata.',
deleting: 'Eliminazione...',
noPermissionRenameFolder: 'Non hai il permesso di rinominare cartelle',
noPermissionLinkFolder: 'Non hai il permesso di collegare cartelle',
noPermissionDeleteFolder: 'Non hai il permesso di eliminare cartelle',
noPermissionPrint: 'Non hai il permesso di stampare',
noPermissionAddToQueue: 'Non hai il permesso di aggiungere alla coda',
noPermissionDownload: 'Non hai il permesso di scaricare file',
noPermissionRenameFile: 'Non hai il permesso di rinominare questo file',
noPermissionGenerateThumbnail: 'Non hai il permesso di generare miniature',
noPermissionDeleteFile: 'Non hai il permesso di eliminare questo file',
noPermissionCreateFolder: 'Non hai il permesso di creare cartelle',
noPermissionUpload: 'Non hai il permesso di caricare file',
noPermissionMoveFiles: 'Non hai il permesso di spostare file',
noPermissionDeleteFiles: 'Non hai il permesso di eliminare file',
toast: {
folderCreated: 'Cartella creata',
folderDeleted: 'Cartella eliminata',
fileDeleted: 'File eliminato',
filesDeleted: 'Eliminati {{count}} file',
filesMoved: 'File spostati',
folderLinked: 'Cartella collegata',
folderUnlinked: 'Cartella scollegata',
addedToQueue: 'Aggiunti {{count}} file alla coda',
addedToQueuePartial: 'Aggiunti {{added}} file, {{failed}} falliti',
failedToAddToQueue: 'Aggiunta file fallita: {{error}}',
fileRenamed: 'File rinominato',
folderRenamed: 'Cartella rinominata',
thumbnailsGenerated: 'Generate {{count}} miniature',
thumbnailsGeneratedPartial: 'Generate {{succeeded}} miniature, {{failed}} fallite',
noStlMissingThumbnails: 'Nessun file STL senza miniature',
failedToGenerateThumbnails: 'Generazione miniature fallita: {{error}}',
thumbnailGenerated: 'Miniatura generata',
failedToGenerateThumbnail: 'Generazione miniatura fallita: {{error}}',
},
},
// Projects
projects: {
title: 'Progetti',
subtitle: 'Organizza e traccia i tuoi progetti di stampa 3D',
newProject: 'Nuovo progetto',
editProject: 'Modifica progetto',
deleteProject: 'Elimina progetto',
projectName: 'Nome progetto',
description: 'Descrizione',
noProjects: 'Nessun progetto ancora',
noProjectsFiltered: 'Nessun progetto {{status}}',
noProjectsFilteredHelp: 'Non hai progetti {{status}}. I progetti appariranno qui quando il loro stato cambia.',
createFirst: 'Crea il tuo primo progetto per organizzare stampe correlate, tracciare progressi e gestire i tuoi build.',
createFirstButton: 'Crea il tuo primo progetto',
create: 'Crea',
files: 'File',
prints: 'Stampe',
plates: 'piatti',
parts: 'parti',
lastModified: 'Ultima modifica',
deleteConfirm: 'Sei sicuro di voler eliminare questo progetto? Archivi e elementi in coda saranno scollegati ma non eliminati.',
addFiles: 'Aggiungi file',
removeFile: 'Rimuovi file',
viewDetails: 'Vedi dettagli',
// Modal fields
namePlaceholder: 'es., Build Voron 2.4',
descriptionPlaceholder: 'Descrizione opzionale...',
color: 'Colore',
targetPlates: 'Piatti target',
targetPlatesPlaceholder: 'es., 25',
targetPlatesHelp: 'Numero di job di stampa',
targetParts: 'Parti target',
targetPartsPlaceholder: 'es., 150',
targetPartsHelp: 'Totale oggetti necessari',
tagsLabel: 'Tag (separati da virgola)',
tagsPlaceholder: 'es., voron, funzionale, regalo',
dueDate: 'Data scadenza',
priority: 'Priorita',
priorityLow: 'Bassa',
priorityNormal: 'Normale',
priorityHigh: 'Alta',
priorityUrgent: 'Urgente',
// Status
statusActive: 'Attivo',
statusCompleted: 'Completato',
statusArchived: 'Archiviato',
done: 'Fatto',
completed: 'completato',
failed: 'fallito',
inQueue: 'in coda',
noPrintsYet: 'Nessuna stampa ancora',
// Footer stats
printJobs: 'Job di stampa (piatti)',
partsPrinted: 'Parti stampate',
failedParts: 'Parti fallite',
// Actions
import: 'Importa',
export: 'Esporta',
importProject: 'Importa progetto',
exportAll: 'Esporta tutti i progetti',
loading: 'Caricamento progetti...',
// Permissions
noEditPermission: 'Non hai il permesso di modificare progetti',
noDeletePermission: 'Non hai il permesso di eliminare progetti',
noCreatePermission: 'Non hai il permesso di creare progetti',
noImportPermission: 'Non hai il permesso di importare progetti',
noExportPermission: 'Non hai il permesso di esportare progetti',
// Toast
toast: {
created: 'Progetto creato',
updated: 'Progetto aggiornato',
deleted: 'Progetto eliminato',
imported: 'Progetto importato',
multipleImported: '{{count}} progetti importati',
importFailed: 'Import fallito',
exported: 'Progetti esportati (solo metadati)',
},
},
// Project detail page
projectDetail: {
notFound: 'Progetto non trovato',
backToProjects: 'Torna a Progetti',
export: 'Esporta',
exportProject: 'Esporta progetto',
noExportPermission: 'Non hai il permesso di esportare progetti',
noEditPermission: 'Non hai il permesso di modificare progetti',
partOf: 'Parte di:',
priorityLabel: 'Priorita:',
noPrints: 'Nessuna stampa in questo progetto ancora',
status: {
active: 'Attivo',
completed: 'Completato',
archived: 'Archiviato',
},
priority: {
low: 'Bassa',
normal: 'Normale',
high: 'Alta',
urgent: 'Urgente',
},
dueDate: {
overdue: 'Scaduto',
today: 'Scade oggi',
daysLeft: '{{count}} giorni rimanenti',
},
progress: {
platesProgress: 'Avanzamento piatti',
partsProgress: 'Avanzamento parti',
printJobs: 'job di stampa',
parts: 'parti',
percentComplete: '{{percent}}% completato',
remaining: '{{count}} rimanenti',
},
stats: {
printJobs: 'Job di stampa',
total: 'totale',
failed: '{{count}} falliti',
partsPrinted: '{{count}} parti stampate',
printTime: 'Tempo di stampa',
filamentUsed: 'Filamento usato',
},
cost: {
title: 'Tracciamento costi',
filamentCost: 'Costo filamento',
energy: 'Energia',
budget: 'Budget',
remaining: 'Rimanente',
},
subProjects: {
title: 'Sotto-progetti ({{count}})',
},
notes: {
title: 'Note',
noEditPermission: 'Non hai il permesso di modificare le note',
placeholder: 'Aggiungi note su questo progetto...',
empty: 'Nessuna nota ancora. Clicca Modifica per aggiungere note.',
},
files: {
title: 'File',
linkFolders: 'Collega cartelle dal Gestore file',
forQuickAccess: 'a questo progetto per accesso rapido.',
fileCount: '{{count}} file',
empty: 'Nessuna cartella collegata. Vai a Gestore file e collega una cartella a questo progetto.',
},
bom: {
title: 'Distinta materiali',
acquired: '{{completed}}/{{total}} acquisiti',
showAll: 'Mostra tutti',
hideDone: 'Nascondi completati',
addPart: 'Aggiungi parte',
noAddPermission: 'Non hai il permesso di aggiungere parti',
partNamePlaceholder: 'Nome parte (es., viti M3x8)',
partName: 'Nome parte',
qty: 'Qta',
price: 'Prezzo ({{currency}})',
sourcingUrlPlaceholder: 'URL fornitura (opzionale)',
remarksPlaceholder: 'Note (opzionale)',
deletePart: 'Elimina parte',
deleteConfirm: 'Sei sicuro di voler eliminare "{{name}}"?',
noUpdatePermission: 'Non hai il permesso di aggiornare parti',
noEditPermission: 'Non hai il permesso di modificare parti',
noDeletePermission: 'Non hai il permesso di eliminare parti',
totalCost: 'Costo totale:',
empty: 'Nessuna parte nella distinta materiali. Aggiungi hardware, elettronica o altri componenti da reperire.',
},
timeline: {
title: 'Timeline attivita',
empty: 'Nessuna attivita ancora.',
},
template: {
saveAsTemplate: 'Salva come template',
noCreatePermission: 'Non hai il permesso di creare template',
},
queue: {
title: 'Coda',
viewAll: 'Vedi tutto',
printing: '{{count}} in stampa',
queued: '{{count}} in coda',
},
prints: {
title: 'Stampe ({{count}})',
},
toast: {
projectUpdated: 'Progetto aggiornato',
partAdded: 'Parte aggiunta',
partRemoved: 'Parte rimossa',
exportFailed: 'Export fallito',
projectExported: 'Progetto esportato',
templateCreated: 'Template creato',
},
},
// System info
system: {
title: 'Informazioni sistema',
version: 'Versione',
uptime: 'Tempo attivo',
cpuUsage: 'Uso CPU',
memoryUsage: 'Uso memoria',
diskUsage: 'Uso disco',
networkInfo: 'Info rete',
logs: 'Log',
debugMode: 'Modalita debug',
enableDebug: 'Abilita log debug',
disableDebug: 'Disabilita log debug',
downloadLogs: 'Scarica log',
clearLogs: 'Cancella log',
dockerInfo: 'Info Docker',
containerName: 'Nome container',
imageName: 'Nome immagine',
platform: 'Piattaforma',
architecture: 'Architettura',
},
// Library (K Profiles)
library: {
title: 'Libreria filamenti',
addFilament: 'Aggiungi filamento',
editFilament: 'Modifica filamento',
deleteFilament: 'Elimina filamento',
vendor: 'Produttore',
material: 'Materiale',
color: 'Colore',
kFactor: 'K Factor',
temperature: 'Temperatura',
noFilaments: 'Nessun filamento in libreria',
deleteConfirm: 'Sei sicuro di voler eliminare questo filamento?',
importFromPrinter: 'Importa da stampante',
exportToFile: 'Esporta su file',
},
// Spoolman
spoolman: {
title: 'Integrazione Spoolman',
enabled: 'Spoolman abilitato',
url: 'URL Spoolman',
connected: 'Connesso',
disconnected: 'Non connesso',
testConnection: 'Testa connessione',
sync: 'Sincronizza',
syncing: 'Sincronizzazione...',
lastSync: 'Ultima sincronizzazione',
linkToSpoolman: 'Collega a Spoolman',
openInSpoolman: 'Apri in Spoolman',
unlinkSpool: 'Scollega bobina',
selectSpool: 'Seleziona bobina',
noUnlinkedSpools: 'Nessuna bobina scollegata disponibile',
linkSuccess: 'Bobina collegata a Spoolman con successo',
linkFailed: 'Collegamento bobina fallito',
spoolId: 'ID bobina',
fillSourceLabel: '(Spoolman)',
weight: 'Peso',
remaining: 'Rimanente',
disableWeightSync: 'Disabilita sync peso stimato AMS',
disableWeightSyncDesc: 'Non aggiornare la capacità rimanente dalle stime AMS. Usalo se preferisci il tracciamento di Spoolman rispetto alle stime AMS. Le nuove bobine useranno comunque la stima AMS come peso iniziale.',
reportPartialUsage: 'Segnala uso parziale per stampe fallite',
reportPartialUsageDesc: 'Quando una stampa fallisce o viene annullata, segnala il filamento stimato usato fino a quel punto in base all\'avanzamento layer.',
},
// Inventory
inventory: {
title: 'Inventario Bobine',
addSpool: 'Aggiungi Bobina',
editSpool: 'Modifica Bobina',
material: 'Materiale',
selectMaterial: 'Seleziona materiale...',
subtype: 'Sottotipo',
brand: 'Marchio',
searchBrand: 'Cerca marchio...',
useCustomBrand: 'Usa "{{brand}}"',
colorName: 'Nome Colore',
colorNamePlaceholder: 'Jade White, Fire Red...',
color: 'Colore',
hexColor: 'Colore Hex',
pickColor: 'Scegli colore personalizzato',
labelWeight: 'Peso da Etichetta',
coreWeight: 'Peso Bobina Vuota',
searchSpoolWeight: 'Cerca peso bobina...',
weightUsed: 'Utilizzato',
currentWeight: 'Peso Rimanente',
measuredWeight: 'Peso Misurato',
measuredWeightError: 'Il peso misurato deve essere compreso tra {{min}}g e {{max}}g.',
slicerFilament: 'Filamento Slicer',
slicerFilamentName: 'Nome Preset Slicer',
slicerPreset: 'Preset Slicer',
searchPresets: 'Cerca preset filamento...',
selectedPreset: 'Selezionato',
noPresetsFound: 'Nessun preset trovato',
tempOverrides: 'Override Temperatura',
note: 'Nota',
notePlaceholder: 'Eventuali note aggiuntive su questa bobina...',
archive: 'Archivia',
restore: 'Ripristina',
noSpools: 'Ancora nessuna bobina. Aggiungi la tua prima bobina per iniziare.',
noManualSpools: 'Nessuna bobina aggiunta manualmente disponibile. Aggiungi prima una bobina al tuo inventario.',
kProfiles: 'K-Profiles',
addKProfile: 'Aggiungi K-Profile',
assignSpool: 'Assegna Bobina',
unassignSpool: 'Deassegna',
assignSuccess: 'Bobina assegnata e slot AMS configurato',
assignFailed: 'Assegnazione bobina fallita',
selectSpool: 'Seleziona una bobina da assegnare a questo slot',
assigned: 'Assegnato',
assigning: 'Assegnazione...',
searchSpools: 'Cerca bobine...',
allMaterials: 'Tutti i Materiali',
filterByBrand: 'Filtra per marchio...',
showArchived: 'Mostra archiviate',
spoolCreated: 'Bobina creata',
spoolUpdated: 'Bobina aggiornata',
spoolDeleted: 'Bobina eliminata',
spoolArchived: 'Bobina archiviata',
spoolRestored: 'Bobina ripristinata',
deleteConfirm: 'Sei sicuro di voler eliminare questa bobina? Questa azione non può essere annullata.',
advancedSettings: 'Impostazioni Avanzate',
},
// Timelapse
timelapse: {
title: 'Timelapse',
create: 'Crea timelapse',
download: 'Scarica',
delete: 'Elimina',
preview: 'Anteprima',
frameRate: 'Frame rate',
quality: 'Qualità',
processing: 'Elaborazione...',
noTimelapses: 'Nessun timelapse disponibile',
},
// AMS
ams: {
title: 'AMS',
slot: 'Slot',
empty: 'Vuoto',
emptySlot: 'Slot vuoto',
unknown: 'Sconosciuto',
humidity: 'Umidità',
temperature: 'Temperatura',
filamentType: 'Tipo filamento',
filamentColor: 'Colore',
remaining: 'Rimanente',
history: 'Cronologia AMS',
noHistory: 'Nessuna cronologia disponibile',
configureSlot: 'Configura slot',
externalSpool: 'Bobina esterna',
profile: 'Profilo',
kFactor: 'K Factor',
fill: 'Riempi',
configure: 'Configura',
},
// Print modal
printModal: {
title: 'Avvia stampa',
selectPrinter: 'Seleziona stampante',
selectPlate: 'Seleziona piatto',
filamentMapping: 'Mappatura filamento',
printSettings: 'Impostazioni stampa',
bedLeveling: 'Livellamento piatto',
flowCalibration: 'Calibrazione flusso',
vibrationCalibration: 'Calibrazione vibrazioni',
layerInspection: 'Ispezione primo layer',
timelapse: 'Timelapse',
startPrint: 'Avvia stampa',
addToQueue: 'Aggiungi alla coda',
cancel: 'Annulla',
noPrintersAvailable: 'Nessuna stampante disponibile',
printerBusy: 'Stampante occupata',
printerOffline: 'Stampante offline',
leftNozzle: 'L',
rightNozzle: 'R',
leftNozzleTooltip: 'Ugello sinistro',
rightNozzleTooltip: 'Ugello destro',
},
// Backup
backup: {
title: 'Backup e ripristino',
createBackup: 'Crea backup',
restoreBackup: 'Ripristina backup',
restoreDescription: 'Sostituisci tutti i dati da un file di backup',
downloadBackup: 'Scarica backup',
uploadBackup: 'Carica backup',
lastBackup: 'Ultimo backup',
autoBackup: 'Backup automatico',
backupNow: 'Esegui backup ora',
restoreWarning: 'Avviso: il ripristino sovrascriverà tutti i dati attuali.',
includeArchives: 'Includi archivi',
includeSettings: 'Includi impostazioni',
includeProfiles: 'Includi profili',
backupSuccess: 'Backup creato con successo',
restoreSuccess: 'Backup ripristinato con successo',
backupFailed: 'Backup fallito',
restoreFailed: 'Ripristino fallito',
restoreNote: 'La stampante virtuale verrà fermata durante il ripristino',
},
// Tags
tags: {
title: 'Tag',
addTag: 'Aggiungi tag',
editTag: 'Modifica tag',
deleteTag: 'Elimina tag',
tagName: 'Nome tag',
tagColor: 'Colore tag',
noTags: 'Nessun tag',
deleteConfirm: 'Sei sicuro di voler eliminare questo tag?',
manageTags: 'Gestisci tag',
},
// Upload modal (archives)
uploadModal: {
title: 'Carica file 3MF',
dragDrop: 'Trascina e rilascia file .3mf qui',
or: 'o',
browseFiles: 'Sfoglia file',
extractionInfo: 'Il modello stampante sarà estratto automaticamente dai metadati del file 3MF.',
uploaded: 'caricati',
failed: 'falliti',
uploading: 'Caricamento...',
upload: 'Carica',
uploadFailed: 'Caricamento fallito',
},
// Edit archive modal
editArchive: {
title: 'Modifica archivio',
name: 'Nome',
namePlaceholder: 'Nome stampa',
printer: 'Stampante',
noPrinter: 'Nessuna stampante',
project: 'Progetto',
noProject: 'Nessun progetto',
itemsPrinted: 'Elementi stampati',
itemsPrintedHelp: 'Numero di elementi prodotti in questo job di stampa',
notes: 'Note',
notesPlaceholder: 'Aggiungi note su questa stampa...',
externalLink: 'Link esterno',
externalLinkPlaceholder: 'https://printables.com/model/...',
externalLinkHelp: 'Link a Printables, Thingiverse o altra fonte',
tags: 'Tag',
tagsPlaceholder: 'Aggiungi tag...',
addMoreTags: 'Aggiungi altri tag...',
matchingTags: 'Tag corrispondenti "{{query}}"',
existingTags: 'Tag esistenti',
clickToAdd: '(clicca per aggiungere)',
status: 'Stato',
failureReason: 'Motivo fallimento',
selectReason: 'Seleziona motivo...',
photos: 'Foto del risultato stampato',
photosHelp: 'Clicca + per aggiungere foto del risultato stampato',
printResult: 'Risultato stampa',
saving: 'Salvataggio...',
// Failure reasons
failureReasons: {
adhesionFailure: 'Fallimento adesione',
spaghettiDetached: 'Spaghetti / staccato',
layerShift: 'Spostamento layer',
cloggedNozzle: 'Ugello intasato',
filamentRunout: 'Filamento esaurito',
warping: 'Warping',
stringing: 'Stringing',
underExtrusion: 'Sotto-estrusione',
powerFailure: 'Mancanza corrente',
userCancelled: 'Annullato dall\'utente',
other: 'Altro',
},
// Archive statuses
statuses: {
completed: 'Completato',
failed: 'Fallito',
aborted: 'Annullato',
printing: 'In stampa',
},
},
// K-Profiles
kProfiles: {
title: 'K-Profiles',
noPrintersConfigured: 'Nessuna stampante configurata',
addPrinterInSettings: 'Aggiungi una stampante in Impostazioni per gestire i K-profiles',
noActivePrinters: 'Nessuna stampante attiva',
enablePrinterConnection: 'Abilita una connessione stampante per vedere i K-profiles',
loadingProfiles: 'Caricamento K-Profiles...',
printerOffline: 'Stampante offline',
printerOfflineDesc: 'La stampante selezionata non e connessa. Accendila per vedere i K-profiles.',
noMatchingProfiles: 'Nessun profilo corrispondente',
noMatchingProfilesDesc: 'Nessun profilo corrisponde ai criteri di ricerca',
noKProfiles: 'Nessun K-Profile',
noKProfilesDesc: 'Nessun profilo pressure advance per ugello da {{diameter}}mm',
createFirstProfile: 'Crea primo profilo',
// Controls
printer: 'Stampante',
nozzle: 'Ugello',
refresh: 'Aggiorna',
addProfile: 'Aggiungi profilo',
export: 'Esporta',
import: 'Importa',
select: 'Seleziona',
selectAll: 'Seleziona tutto',
delete: 'Elimina',
// Filters
searchPlaceholder: 'Cerca per nome o filamento...',
allExtruders: 'Tutti gli estrusori',
leftOnly: 'Solo sinistro',
rightOnly: 'Solo destro',
allFlow: 'Tutto flow',
hfOnly: 'Solo HF',
sOnly: 'Solo S',
sortName: 'Ordina: Nome',
sortKValue: 'Ordina: K-Value',
sortFilament: 'Ordina: Filamento',
// Dual extruder labels
leftExtruder: 'Estrusore sinistro',
rightExtruder: 'Estrusore destro',
// Modal
modal: {
addTitle: 'Aggiungi K-Profile',
editTitle: 'Modifica K-Profile',
profileName: 'Nome profilo',
profileNamePlaceholder: 'Il mio profilo PLA',
kValue: 'K-Value',
kValuePlaceholder: '0.020',
kValueHelp: 'Intervallo tipico: 0.01 - 0.06 per PLA, 0.02 - 0.10 per PETG',
filament: 'Filamento',
selectFilament: 'Seleziona filamento...',
noFilamentsHelp: 'Nessun filamento trovato. Crea prima un K-profile in Bambu Studio.',
flowType: 'Tipo flow',
highFlow: 'High Flow',
standard: 'Standard',
nozzleSize: 'Dimensione ugello',
extruder: 'Estrusore',
extruders: 'Estrusori',
left: 'Sinistra',
right: 'Destra',
notes: 'Note (salvate localmente)',
notesPlaceholder: 'Aggiungi note su questo profilo...',
notesHelp: 'Le note sono salvate in Bambuddy, non sulla stampante',
syncing: 'Sincronizzazione con stampante...',
savingExtruder: 'Salvataggio su estrusore {{current}}/{{total}}...',
pleaseWait: 'Attendere',
},
// Delete confirmation
deleteConfirm: {
title: 'Elimina profilo',
cannotUndo: 'Questo non può essere annullato',
message: 'Sei sicuro di voler eliminare "{{name}}" dalla stampante?',
},
// Bulk delete
bulkDelete: {
title: 'Elimina profili',
cannotUndo: 'Questo non può essere annullato',
message: 'Sei sicuro di voler eliminare {{count}} profili selezionati dalla stampante?',
},
// Toast
toast: {
profileSaved: 'K-profile salvato',
profilesSaved: 'K-profile salvato su {{count}} estrusori',
selectAtLeastOneExtruder: 'Seleziona almeno un estrusore',
profileDeleted: 'K-profile eliminato',
profilesDeleted: 'Eliminati {{count}} profili',
exportedProfiles: 'Esportati {{count}} profili',
importedProfiles: 'Importati {{count}} di {{total}} profili',
noProfilesToExport: 'Nessun profilo da esportare',
invalidFileFormat: 'Formato file non valido',
failedToParseImport: 'Parsing file import fallito',
failedToSaveBatch: 'Salvataggio K-profiles fallito',
noteSaved: 'Nota salvata',
failedToSaveNote: 'Salvataggio nota fallito',
},
// Permissions
permission: {
noRead: 'Non hai il permesso di aggiornare i profili',
noCreate: 'Non hai il permesso di aggiungere profili',
noUpdate: 'Non hai il permesso di aggiornare K-profiles',
noDelete: 'Non hai il permesso di eliminare K-profiles',
noExport: 'Non hai il permesso di esportare profili',
noImport: 'Non hai il permesso di importare profili',
},
},
// Virtual Printer
virtualPrinter: {
title: 'Stampante virtuale',
running: 'In esecuzione',
stopped: 'Ferma',
description: {
default: 'Abilita una stampante virtuale che appare in Bambu Studio e OrcaSlicer. I file inviati a questa stampante saranno archiviati senza stampare.',
proxy: 'Abilita un proxy che inoltra il traffico slicer a una stampante reale, permettendo la stampa remota su qualsiasi rete.',
},
enable: {
title: 'Abilita stampante virtuale',
visibleInSlicer: 'Visibile come "Bambuddy" nella ricerca slicer',
proxyingTo: 'In proxy verso {{name}}',
notActive: 'Non attivo',
},
model: {
title: 'Modello stampante',
description: 'Seleziona il modello stampante da emulare.',
restartWarning: 'Cambiare il modello riavviera la stampante virtuale',
},
accessCode: {
title: 'Codice accesso',
isSet: 'Codice accesso impostato',
notSet: 'Nessun codice accesso impostato - richiesto per abilitare',
placeholder: 'Inserisci codice 8 caratteri',
placeholderChange: 'Inserisci nuovo codice per cambiare',
hint: 'Deve essere esattamente 8 caratteri. Usato dagli slicer per autenticarsi.',
charCount: '({{count}}/8)',
},
targetPrinter: {
title: 'Stampante target',
configured: 'Target proxy configurato',
notConfigured: 'Nessuna stampante target selezionata - richiesta per modalita proxy',
placeholder: 'Seleziona una stampante...',
hint: 'Seleziona la stampante a cui fare proxy. La stampante deve essere in modalita LAN.',
noPrinters: 'Nessuna stampante configurata. Aggiungi una stampante per usare la modalita proxy.',
},
remoteInterface: {
title: 'Sovrascrittura interfaccia di rete',
configured: 'Sovrascrittura interfaccia attiva',
optional: 'Opzionale - usare se l\'IP rilevato automaticamente e sbagliato (es. piu NIC, Docker, VPN)',
placeholder: 'Rilevamento automatico (predefinito)...',
hint: 'Sovrascrive l\'indirizzo IP pubblicizzato via SSDP e usato nel certificato TLS. Utile quando Bambuddy ha piu interfacce di rete.',
},
mode: {
title: 'Modalita',
archive: 'Archivio',
archiveDesc: 'Archivia subito i file',
review: 'Revisione',
reviewDesc: 'Rivedi prima di archiviare',
queue: 'Coda',
queueDesc: 'Archivia e aggiungi alla coda',
proxy: 'Proxy',
proxyDesc: 'Inoltra a stampante reale',
},
setupRequired: {
title: 'Configurazione necessaria',
description: 'La stampante virtuale richiede configurazioni di sistema aggiuntive prima di funzionare. Include port forwarding, regole firewall e impostazioni specifiche della piattaforma.',
readGuide: 'Leggi la guida prima di abilitare',
},
howItWorks: {
title: 'Come funziona',
titleProxy: 'Come funziona (Modalita proxy)',
step1: 'Completa la guida di configurazione per la tua piattaforma',
step2: 'Abilita la stampante virtuale e imposta un codice accesso',
step3: 'In Bambu Studio o OrcaSlicer, vai su "Aggiungi stampante"',
step4: 'La stampante "Bambuddy" dovrebbe apparire nella lista',
step5: 'Connettiti usando il codice accesso impostato',
step6: 'Quando "stampi" su Bambuddy, il file 3MF viene archiviato',
proxyStep1: 'Seleziona la stampante target (deve essere in modalita LAN)',
proxyStep2: 'Per rete diversa: seleziona l\'interfaccia rete slicer',
proxyStep3: 'Abilita il proxy - la stampante appare via SSDP',
proxyStep4: 'Connettiti usando il codice accesso della stampante',
proxyStep5: 'Stampa normalmente - il traffico è inoltrato via Bambuddy',
proxyStep6: 'Lo streaming della camera richiede NAT/IP forwarding (vedi docs)',
},
status: {
title: 'Dettagli stato',
printerName: 'Nome stampante',
model: 'Modello',
serialNumber: 'Numero seriale',
mode: 'Modalita',
pendingFiles: 'File in sospeso',
targetPrinter: 'Stampante target',
ftpPort: 'Porta FTP',
mqttPort: 'Porta MQTT',
ftpConnections: 'Connessioni FTP',
mqttConnections: 'Connessioni MQTT',
},
toast: {
updated: 'Impostazioni stampante virtuale aggiornate',
failedToUpdate: 'Aggiornamento impostazioni fallito',
accessCodeRequired: 'Imposta prima un codice accesso',
targetPrinterRequired: 'Seleziona prima una stampante target',
accessCodeEmpty: 'Il codice accesso non può essere vuoto',
accessCodeLength: 'Il codice accesso deve essere esattamente 8 caratteri',
},
},
// Model Viewer
modelViewer: {
openInSlicer: 'Apri nello slicer',
tabs: {
model: 'Modello 3D',
gcode: 'Anteprima G-code',
},
notAvailable: 'non disponibile',
notSliced: 'non sezionato',
plates: 'Piatti',
allPlates: 'Tutti i piatti',
plateNumber: 'Piatto {{number}}',
plateCount: '{{count}} piatto',
plateCount_other: '{{count}} piatti',
objectCount: '{{count}} oggetto',
objectCount_other: '{{count}} oggetti',
filamentCount: '{{count}} filamento',
filamentCount_other: '{{count}} filamenti',
eta: 'ETA {{minutes}} min',
noPreview: 'Nessuna anteprima disponibile per questo file',
pagination: {
pageOf: 'Pagina {{current}} di {{total}}',
prev: 'Prec',
next: 'Succ',
},
errors: {
failedToLoad: 'Caricamento file fallito',
noMeshes: 'Nessuna mesh trovata nel file 3MF',
unsupportedFormat: 'Formato file non supportato',
},
},
// Maintenance type descriptions (built-in)
maintenanceDescriptions: {
lubricateCarbonRods: 'Applica lubrificante alle aste in carbonio per un movimento fluido',
lubricateRails: 'Applica lubrificante alle guide lineari per un movimento fluido',
cleanNozzle: 'Pulisci hotend e ugello per prevenire intasamenti',
checkBelts: 'Verifica tensione cinghie per stampe accurate',
cleanBuildPlate: 'Pulisci il piatto per migliorare l\'adesione',
checkExtruder: 'Ispeziona ingranaggi estrusore per usura',
checkCooling: 'Assicurati che le ventole di raffreddamento funzionino',
generalInspection: 'Ispezione generale stampante',
cleanCarbonRods: 'Pulisci le aste in carbonio per ridurre attrito',
cleanLinearRails: 'Pulisci le guide lineari per rimuovere polvere e detriti',
checkPtfeTube: 'Ispeziona il tubo PTFE per usura o danni',
replaceHepaFilter: 'Sostituisci filtro HEPA per qualità aria',
replaceCarbonFilter: 'Sostituisci filtro a carbone attivo',
lubricateLeftNozzleRail: 'Lubrifica guida ugello sinistro (serie H2)',
},
// Configure AMS Slot Modal
configureAmsSlot: {
title: 'Configura Slot AMS',
slotConfigured: 'Slot configurato!',
configuringSlot: 'Configurazione slot:',
slotLabel: '{{ams}} Slot {{slot}}',
searchPresets: 'Cerca preset...',
colorPlaceholder: 'Nome colore o hex (es. marrone, FF8800)',
clearCustomColor: 'Cancella colore personalizzato',
noCloudPresets: 'Nessun preset cloud. Accedi a Bambu Cloud per sincronizzare.',
noPresetsAvailable: 'Nessun preset disponibile. Accedi a Bambu Cloud o importa profili locali.',
noMatchingPresets: 'Nessun preset corrispondente trovato.',
custom: 'Personalizzato',
builtin: 'Integrato',
settingsSentToPrinter: 'Impostazioni inviate alla stampante',
filamentProfile: 'Profilo filamento',
kProfileLabel: 'Profilo K (Pressure Advance)',
filteringFor: 'Filtrando per: {{material}}',
noKProfile: 'Nessun profilo K (usa predefinito 0.020)',
noMatchingKProfiles: 'Nessun profilo K corrispondente. Verrà usato K=0.020 predefinito.',
selectFilamentFirst: 'Seleziona prima un profilo filamento',
kFromCalibration: 'K={{value}} dalla calibrazione stampante',
customColorLabel: 'Colore personalizzato (opzionale)',
presetColors: 'Colori {{name}}:',
showLessColors: 'Mostra meno colori',
showMoreColors: 'Mostra più colori',
clear: 'Cancella',
hexLabel: 'Hex: #{{hex}}',
resetting: 'Ripristino...',
resetSlot: 'Ripristina slot',
cancel: 'Annulla',
configuring: 'Configurazione...',
configureSlot: 'Configura slot',
},
};