|
|
@@ -0,0 +1,2597 @@
|
|
|
+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: {
|
|
|
+ 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',
|
|
|
+ powerOn: 'Accendi',
|
|
|
+ offlinePrintersWithPlugs: 'Stampanti offline con smart plug',
|
|
|
+ noPrintersConfigured: 'Nessuna stampante configurata',
|
|
|
+ // Printer card
|
|
|
+ readyToPrint: 'Pronta a stampare',
|
|
|
+ external: 'Esterna',
|
|
|
+ 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 puo 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}}',
|
|
|
+ // 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',
|
|
|
+ },
|
|
|
+ // Confirm modals
|
|
|
+ confirm: {
|
|
|
+ deleteTitle: 'Elimina Stampante',
|
|
|
+ deleteMessage: 'Sei sicuro di eliminare "{{name}}"? Questo rimuovera tutte le impostazioni di connessione.',
|
|
|
+ deleteArchivesNote: 'Tutta la cronologia di stampa sara eliminata definitivamente.',
|
|
|
+ keepArchivesNote: 'La cronologia sara mantenuta ma non piu associata a questa stampante.',
|
|
|
+ stopTitle: 'Ferma Stampa',
|
|
|
+ stopMessage: 'Sei sicuro di fermare la stampa corrente su "{{name}}"? Questo annullera 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 interrompera 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 gia configurate.',
|
|
|
+ alreadyAdded: 'Gia 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}}',
|
|
|
+ firmwareUpdateButton: 'Aggiorna',
|
|
|
+ // Plate detection
|
|
|
+ plateDetection: {
|
|
|
+ noPermission: 'Non hai il permesso di aggiornare 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 <strong>completamente vuoto</strong>, 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: '<strong>Suggerimento:</strong> 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',
|
|
|
+ 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 <strong>Impostazioni</strong>',
|
|
|
+ step2: 'Vai a <strong>Firmware</strong>',
|
|
|
+ step3: 'Seleziona <strong>Aggiorna da SD</strong>',
|
|
|
+ step4: 'L\'aggiornamento richiede 10-20 minuti',
|
|
|
+ done: 'Fatto',
|
|
|
+ starting: 'Avvio...',
|
|
|
+ uploadFirmware: 'Carica Firmware',
|
|
|
+ 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: 'Piu recenti',
|
|
|
+ sortOldest: 'Meno recenti',
|
|
|
+ sortName: 'Nome',
|
|
|
+ sortDuration: 'Durata',
|
|
|
+ sortLargest: 'Piu grandi',
|
|
|
+ sortSmallest: 'Piu 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 gia 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 in Bambu Studio',
|
|
|
+ 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 e 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: 'Sliciato 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 in Bambu Studio',
|
|
|
+ openInBambuStudioToSlice: 'Apri in Bambu Studio per slice',
|
|
|
+ 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 puo essere annullata.',
|
|
|
+ deleteButton: 'Elimina',
|
|
|
+ removeSource3mf: 'Rimuovi Sorgente 3MF',
|
|
|
+ removeSource3mfConfirm: 'Sei sicuro di rimuovere il file sorgente 3MF da "{{name}}"? Questo eliminera 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 puo 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 e vuota',
|
|
|
+ position: 'Posizione',
|
|
|
+ scheduledTime: 'Ora programmata',
|
|
|
+ moveUp: 'Sposta su',
|
|
|
+ moveDown: 'Sposta giu',
|
|
|
+ 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 (piu vecchi)',
|
|
|
+ descendingNewest: 'Decrescente (piu 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 annullera 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',
|
|
|
+ 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: {
|
|
|
+ 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',
|
|
|
+ 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',
|
|
|
+ printHoursUpdated: 'Ore di stampa aggiornate',
|
|
|
+ printerAssigned: 'Stampante assegnata',
|
|
|
+ printerRemoved: 'Stampante rimossa',
|
|
|
+ // Confirmation
|
|
|
+ deleteTypeConfirm: 'Eliminare "{{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',
|
|
|
+ // 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 piu 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 puo 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 piu.',
|
|
|
+ deleteKey: 'Elimina chiave',
|
|
|
+ // Filament tab
|
|
|
+ amsDisplayThresholds: 'Soglie visualizzazione AMS',
|
|
|
+ amsThresholdsDescription: 'Configura soglie colore per umidita e temperatura AMS.',
|
|
|
+ humidity: 'Umidita',
|
|
|
+ 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 piu vecchi saranno eliminati automaticamente',
|
|
|
+ printModal: 'Modale stampa',
|
|
|
+ expandCustomMapping: 'Espandi mapping personalizzato di default',
|
|
|
+ expandCustomMappingDescription: 'Quando stampi su piu stampanti, mostra mapping AMS per stampante espanso',
|
|
|
+ // User management
|
|
|
+ authentication: 'Autenticazione',
|
|
|
+ authEnabledDescription: 'La tua istanza e 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 eliminera definitivamente tutti i log notifiche piu vecchi di 30 giorni. Questa azione non puo essere annullata.',
|
|
|
+ clearLogs: 'Cancella log',
|
|
|
+ // Modal: Reset UI
|
|
|
+ resetUiPreferences: 'Reimposta preferenze UI',
|
|
|
+ resetUiPreferencesMessage: 'Questo reimpostera le preferenze UI ai valori predefiniti: ordine barra laterale, tema, layout dashboard, modalita vista e preferenze ordinamento. Stampanti, archivi e impostazioni server NON saranno modificati. La pagina si ricarichera 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 rendera la tua istanza Bambuddy accessibile senza login. Tutti gli utenti resteranno nel database ma l'autenticazione sara disabilitata.",
|
|
|
+ disableAuthentication: 'Disabilita autenticazione',
|
|
|
+ // Additional settings
|
|
|
+ configureBambuddy: 'Configura Bambuddy',
|
|
|
+ systemDefault: 'Predefinito di sistema',
|
|
|
+ archiveSettings: 'Impostazioni archivio',
|
|
|
+ newWindow: 'Nuova finestra',
|
|
|
+ embeddedOverlay: 'Overlay incorporato',
|
|
|
+ externalCameras: 'Camere esterne',
|
|
|
+ costTracking: 'Tracciamento costi',
|
|
|
+ printsOnly: 'Solo stampe',
|
|
|
+ totalConsumption: 'Consumo totale',
|
|
|
+ dataManagement: 'Gestione dati',
|
|
|
+ clearNotificationLogsDescription: 'Elimina log notifiche piu vecchi di 30 giorni',
|
|
|
+ resetUiPreferencesDescription: 'Reimposta ordine barra laterale, tema, modalita 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 puo essere annullata.',
|
|
|
+ deleteFilesConfirm: 'Eliminare {{count}} file selezionati? Questa azione non puo 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 gia admin, l\'autenticazione verra 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 e 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',
|
|
|
+ },
|
|
|
+
|
|
|
+ // 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 puo 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',
|
|
|
+ kprofiles: 'K-Profiles',
|
|
|
+ },
|
|
|
+ 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 eliminera definitivamente "{{name}}" da Bambu Cloud. Questa azione non puo 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 puo 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',
|
|
|
+ },
|
|
|
+
|
|
|
+ // 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: 'Radice (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 piu 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 puo 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',
|
|
|
+ weight: 'Peso',
|
|
|
+ remaining: 'Rimanente',
|
|
|
+ disableWeightSync: 'Disabilita sync peso stimato AMS',
|
|
|
+ disableWeightSyncDesc: 'Non aggiornare la capacita 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.',
|
|
|
+ },
|
|
|
+
|
|
|
+ // Timelapse
|
|
|
+ timelapse: {
|
|
|
+ title: 'Timelapse',
|
|
|
+ create: 'Crea timelapse',
|
|
|
+ download: 'Scarica',
|
|
|
+ delete: 'Elimina',
|
|
|
+ preview: 'Anteprima',
|
|
|
+ frameRate: 'Frame rate',
|
|
|
+ quality: 'Qualita',
|
|
|
+ processing: 'Elaborazione...',
|
|
|
+ noTimelapses: 'Nessun timelapse disponibile',
|
|
|
+ },
|
|
|
+
|
|
|
+ // AMS
|
|
|
+ ams: {
|
|
|
+ title: 'AMS',
|
|
|
+ slot: 'Slot',
|
|
|
+ empty: 'Vuoto',
|
|
|
+ emptySlot: 'Slot vuoto',
|
|
|
+ unknown: 'Sconosciuto',
|
|
|
+ humidity: 'Umidita',
|
|
|
+ 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',
|
|
|
+ },
|
|
|
+
|
|
|
+ // 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 sovrascrivera 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 verra 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 sara 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 puo essere annullato',
|
|
|
+ message: 'Sei sicuro di voler eliminare "{{name}}" dalla stampante?',
|
|
|
+ },
|
|
|
+ // Bulk delete
|
|
|
+ bulkDelete: {
|
|
|
+ title: 'Elimina profili',
|
|
|
+ cannotUndo: 'Questo non puo 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: 'Interfaccia rete slicer',
|
|
|
+ configured: 'Proxy SSDP abilitato',
|
|
|
+ optional: 'Opzionale - per discovery SSDP tra reti',
|
|
|
+ placeholder: 'Seleziona interfaccia per rete slicer...',
|
|
|
+ hint: 'Seleziona l\'interfaccia di rete connessa allo slicer. Abilita scoperta automatica in Bambu Studio.',
|
|
|
+ },
|
|
|
+ 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 e inoltrato via Bambuddy',
|
|
|
+ proxyStep6: 'Lo streaming 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 puo essere vuoto',
|
|
|
+ accessCodeLength: 'Il codice accesso deve essere esattamente 8 caratteri',
|
|
|
+ },
|
|
|
+ },
|
|
|
+
|
|
|
+ // Model Viewer
|
|
|
+ modelViewer: {
|
|
|
+ openInSlicer: 'Apri in 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: {
|
|
|
+ lubricateRails: 'Applica lubrificante alle guide lineari per movimento fluido',
|
|
|
+ cleanNozzle: 'Pulisci hotend e ugello per prevenire intasamenti',
|
|
|
+ checkBelts: 'Verifica tensione cinghie per stampe accurate',
|
|
|
+ cleanBuildPlate: 'Pulisci il piatto per migliore 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',
|
|
|
+ checkPtfeTube: 'Ispeziona il tubo PTFE per usura o danni',
|
|
|
+ replaceHepaFilter: 'Sostituisci filtro HEPA per qualita aria',
|
|
|
+ replaceCarbonFilter: 'Sostituisci filtro a carbone attivo',
|
|
|
+ lubricateLeftNozzleRail: 'Lubrifica guida ugello sinistro (serie H2)',
|
|
|
+ },
|
|
|
+};
|