Files
Home-Assistant/custom_components/ha_washdata/translations/it.json
T
2026-06-14 02:01:49 -04:00

1342 lines
77 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"config": {
"step": {
"user": {
"title": "Configurazione WashData",
"description": "Configura la tua lavatrice o altro elettrodomestico.\n\nÈ richiesto il sensore di potenza.\n\n**Successivamente ti verrà chiesto se desideri creare il tuo primo profilo.**",
"data": {
"name": "Nome dispositivo",
"device_type": "Tipo di dispositivo",
"power_sensor": "Sensore di potenza",
"min_power": "Soglia di potenza minima (W)"
},
"data_description": {
"name": "Un nome descrittivo per questo dispositivo (ad esempio \"Lavatrice\", \"Lavastoviglie\").",
"device_type": "Che tipo di elettrodomestico è questo? Aiuta a personalizzare il rilevamento e l'etichettatura.",
"power_sensor": "L'entità sensore che segnala il consumo energetico in tempo reale (in watt) dalla tua presa intelligente.",
"min_power": "Le letture di potenza superiori a questa soglia (in watt) indicano che l'elettrodomestico è in funzione. Inizia con 2 W per la maggior parte dei dispositivi."
}
},
"first_profile": {
"title": "Crea il primo profilo",
"description": "Un **Ciclo** è un'esecuzione completa dell'elettrodomestico (ad esempio, un carico di bucato). Un **Profilo** raggruppa questi cicli per tipo (ad esempio, \"Cotone\", \"Lavaggio rapido\"). La creazione di un profilo ora consente all'integrazione di stimare subito la durata.\n\nPuoi selezionare manualmente questo profilo nei controlli del dispositivo se non viene rilevato automaticamente.\n\n**Lascia vuoto il campo \"Nome profilo\" per saltare questo passaggio.**",
"data": {
"profile_name": "Nome profilo (facoltativo)",
"manual_duration": "Durata stimata (minuti)"
}
}
},
"error": {
"cannot_connect": "Connessione non riuscita",
"invalid_auth": "Autenticazione non valida",
"unknown": "Errore imprevisto"
},
"abort": {
"already_configured": "Il dispositivo è già configurato"
}
},
"options": {
"step": {
"init": {
"menu_options": {
"learning_feedbacks": "Rivedi i feedback di apprendimento",
"settings": "Impostazioni",
"notifications": "Notifiche",
"manage_cycles": "Gestisci i cicli",
"manage_profiles": "Gestisci profili",
"manage_phase_catalog": "Gestisci il catalogo delle fasi",
"record_cycle": "Registra ciclo (manuale)",
"diagnostics": "Diagnostica e manutenzione"
}
},
"apply_suggestions": {
"title": "Copia i valori suggeriti",
"description": "Questa operazione copierà i valori suggeriti correnti nelle impostazioni salvate. Si tratta di un'azione una tantum e non abilita la sovrascrittura automatica.\n\nValori suggeriti da copiare:\n{suggested}",
"data": {
"confirm": "Conferma l'azione di copia"
}
},
"apply_suggestions_confirm": {
"title": "Rivedi le modifiche suggerite",
"description": "WashData ha trovato **{pending_count}** valore/i suggerito/i da applicare.\n\nModifiche:\n{changes}\n\n✅ Seleziona la casella in basso e fai clic su **Invia** per applicare e salvare immediatamente queste modifiche.\n❌ Lascialo deselezionato e fai clic su **Invia** per annullare e tornare indietro.",
"data": {
"confirm_apply_suggestions": "Applica e salva queste modifiche"
}
},
"settings": {
"title": "Impostazioni",
"description": "{deprecation_warning}Ottimizza le soglie di rilevamento, l'apprendimento e il comportamento avanzato. Le impostazioni predefinite funzionano bene per la maggior parte delle configurazioni.\n\nImpostazioni suggerite attualmente disponibili: {suggestions_count}.\nSe il valore è maggiore di 0, apri le Impostazioni avanzate e usa Applica valori suggeriti per esaminare i consigli.",
"data": {
"apply_suggestions": "Applica valori suggeriti",
"device_type": "Tipo di dispositivo",
"power_sensor": "Entità sensore di potenza",
"min_power": "Potenza minima (W)",
"off_delay": "Ritardo fine ciclo (s)",
"notify_actions": "Azioni di notifica",
"notify_people": "Ritarda la consegna finché queste persone sono a casa",
"notify_only_when_home": "Ritarda le notifiche finché la persona selezionata è a casa",
"notify_fire_events": "Attiva eventi di automazione",
"notify_start_services": "Inizio ciclo: obiettivi di notifica",
"notify_finish_services": "Fine ciclo: obiettivi di notifica",
"notify_live_services": "Progresso in tempo reale: obiettivi di notifica",
"notify_before_end_minutes": "Notifica pre-completamento (minuti prima della fine)",
"notify_title": "Titolo della notifica",
"notify_icon": "Icona di notifica",
"notify_start_message": "Formato messaggio di avvio",
"notify_finish_message": "Formato messaggio di fine",
"notify_pre_complete_message": "Formato messaggio pre-completamento",
"show_advanced": "Modifica impostazioni avanzate (passaggio successivo)"
},
"data_description": {
"apply_suggestions": "Seleziona questa casella per copiare i valori suggeriti dall'algoritmo di apprendimento nel modulo. Rivedi prima di salvare.\n\nSuggeriti (dall'apprendimento):\n- min_power: {suggested_min_power} W\n- off_delay: {suggested_off_delay} s\n- watchdog_interval: {suggested_watchdog_interval} s\n- no_update_active_timeout: {suggested_no_update_active_timeout} s\n- profile_match_interval: {suggested_profile_match_interval} s\n- auto_label_confidence: {suggested_auto_label_confidence}\n- duration_tolerance: {suggested_duration_tolerance}\n- profile_duration_tolerance: {suggested_profile_duration_tolerance}\n- profile_match_min_duration_ratio: {suggested_profile_match_min_duration_ratio}\n- profile_match_max_duration_ratio: {suggested_profile_match_max_duration_ratio}\n- start_threshold_w: {suggested_start_threshold_w} W\n- stop_threshold_w: {suggested_stop_threshold_w} W\n- end_energy_threshold: {suggested_end_energy_threshold} Wh\n- running_dead_zone: {suggested_running_dead_zone} s\n{suggested_reason}",
"device_type": "Seleziona il tipo di elettrodomestico (Lavatrice, Asciugatrice, Lavastoviglie, Macchina da caffè, Auto elettrica). Questo tag viene memorizzato con ogni ciclo per una migliore organizzazione.",
"power_sensor": "L'entità sensore che segnala la potenza in tempo reale (in watt). Puoi modificarla in qualsiasi momento senza perdere i dati storici - utile se sostituisci una presa intelligente.",
"min_power": "Le letture di potenza superiori a questa soglia (in watt) indicano che l'elettrodomestico è in funzione. Inizia con 2 W per la maggior parte dei dispositivi.",
"off_delay": "Secondi in cui la potenza livellata deve rimanere al di sotto della soglia di arresto per segnare il completamento. Predefinito: 120 s.",
"notify_actions": "Sequenza di azioni Home Assistant facoltativa da eseguire per le notifiche (script, notifica, TTS, ecc.). Se impostata, le azioni vengono eseguite prima del servizio di notifica di fallback.",
"notify_people": "Entità persone usate per il controllo della presenza. Se abilitato, la consegna delle notifiche viene ritardata finché almeno una persona selezionata è a casa.",
"notify_only_when_home": "Se abilitato, ritarda le notifiche finché almeno una persona selezionata è a casa.",
"notify_fire_events": "Se abilitato, attiva gli eventi di Home Assistant per l'inizio e la fine del ciclo (ha_washdata_cycle_started e ha_washdata_cycle_ended) per pilotare le automazioni.",
"notify_start_services": "Uno o più servizi di notifica per avvisare quando inizia un ciclo. Lascia vuoto per saltare le notifiche di avvio.",
"notify_finish_services": "Uno o più servizi di notifica per avvisare quando un ciclo termina o si avvicina al completamento. Lascia vuoto per saltare le notifiche di fine.",
"notify_live_services": "Uno o più servizi di notifica per ricevere aggiornamenti in tempo reale sui progressi durante l'esecuzione del ciclo (solo app complementare mobile). Lascia vuoto per saltare gli aggiornamenti in tempo reale.",
"notify_before_end_minutes": "Minuti prima della fine stimata del ciclo per attivare una notifica. Imposta su 0 per disabilitare. Predefinito: 0.",
"notify_title": "Titolo personalizzato per le notifiche. Supporta il segnaposto {device}.",
"notify_icon": "Icona da usare per le notifiche (es. mdi:washing-machine). Lascia vuoto per inviare senza icona.",
"notify_start_message": "Messaggio inviato all'avvio di un ciclo. Supporta il segnaposto {device}.",
"notify_finish_message": "Messaggio inviato al termine di un ciclo. Supporta i segnaposto {device}, {duration}, {program}, {energy_kwh}, {cost}.",
"notify_pre_complete_message": "Testo degli aggiornamenti ricorrenti sull'avanzamento in tempo reale durante l'esecuzione del ciclo. Supporta i segnaposto {device}, {minutes}, {program}."
}
},
"notifications": {
"title": "Notifiche",
"description": "Configura canali di notifica, modelli e aggiornamenti facoltativi sull'avanzamento in tempo reale.",
"data": {
"notify_actions": "Azioni di notifica",
"notify_people": "Ritarda la consegna finché queste persone sono a casa",
"notify_only_when_home": "Ritarda le notifiche finché la persona selezionata è a casa",
"notify_fire_events": "Attiva eventi di automazione",
"notify_start_services": "Inizio ciclo: obiettivi di notifica",
"notify_finish_services": "Fine ciclo: obiettivi di notifica",
"notify_live_services": "Progresso in tempo reale: obiettivi di notifica",
"notify_before_end_minutes": "Notifica pre-completamento (minuti prima della fine)",
"notify_live_interval_seconds": "Intervallo aggiornamenti in tempo reale (secondi)",
"notify_live_overrun_percent": "Margine di sforamento aggiornamenti in tempo reale (%)",
"notify_live_chronometer": "Cronometro Conto Alla Rovescia",
"notify_title": "Titolo della notifica",
"notify_icon": "Icona di notifica",
"notify_start_message": "Formato messaggio di avvio",
"notify_finish_message": "Formato messaggio di fine",
"notify_pre_complete_message": "Formato messaggio pre-completamento",
"energy_price_entity": "Prezzo dell'energia - Entità (facoltativo)",
"energy_price_static": "Prezzo dell'energia: valore statico (facoltativo)",
"go_back": "Torna indietro senza salvare",
"notify_reminder_message": "Formato del messaggio di promemoria",
"notify_timeout_seconds": "Ignora automaticamente dopo (secondi)",
"notify_channel": "Canale di notifica (stato/live/promemoria)",
"notify_finish_channel": "Canale di notifica terminato"
},
"data_description": {
"go_back": "Seleziona questa opzione e fai clic su Invia per scartare le modifiche sopra e tornare al menu principale.",
"notify_actions": "Sequenza di azioni Home Assistant facoltativa da eseguire per le notifiche (script, notifica, TTS, ecc.). Se impostata, le azioni vengono eseguite prima del servizio di notifica di fallback.",
"notify_people": "Entità persone usate per il controllo della presenza. Se abilitato, la consegna delle notifiche viene ritardata finché almeno una persona selezionata è a casa.",
"notify_only_when_home": "Se abilitato, ritarda le notifiche finché almeno una persona selezionata è a casa.",
"notify_fire_events": "Se abilitato, attiva gli eventi di Home Assistant per l'inizio e la fine del ciclo (ha_washdata_cycle_started e ha_washdata_cycle_ended) per pilotare le automazioni.",
"notify_start_services": "Uno o più servizi di notifica per avvisare quando un ciclo inizia (ad esempio notify.mobile_app_my_phone). Lascia vuoto per saltare le notifiche di avvio.",
"notify_finish_services": "Uno o più servizi di notifica per avvisare quando un ciclo termina o si avvicina al completamento. Lascia vuoto per saltare le notifiche di fine.",
"notify_live_services": "Uno o più servizi di notifica per ricevere aggiornamenti in tempo reale sui progressi durante l'esecuzione del ciclo (solo app complementare mobile). Lascia vuoto per saltare gli aggiornamenti in tempo reale.",
"notify_before_end_minutes": "Minuti prima della fine stimata del ciclo per attivare una notifica. Imposta su 0 per disabilitare. Predefinito: 0.",
"notify_live_interval_seconds": "Con quale frequenza vengono inviati gli aggiornamenti sull'avanzamento durante l'esecuzione. Valori più bassi sono più reattivi ma consumano più notifiche. È applicato un minimo di 30 secondi - i valori inferiori a 30 s vengono arrotondati automaticamente a 30 s.",
"notify_live_overrun_percent": "Margine di sicurezza oltre il conteggio stimato degli aggiornamenti per cicli lunghi o in ritardo (ad esempio il 20% consente 1,2x aggiornamenti stimati).",
"notify_live_chronometer": "Se abilitato, ogni aggiornamento live include un conto alla rovescia del cronometro fino all'ora di fine stimata. Il timer delle notifiche scorre automaticamente sul dispositivo tra gli aggiornamenti (solo app complementare Android).",
"notify_title": "Titolo personalizzato per le notifiche. Supporta il segnaposto {device}.",
"notify_icon": "Icona da usare per le notifiche (es. mdi:washing-machine). Lascia vuoto per inviare senza icona.",
"notify_start_message": "Messaggio inviato all'avvio di un ciclo. Supporta il segnaposto {device}.",
"notify_finish_message": "Messaggio inviato al termine di un ciclo. Supporta i segnaposto {device}, {duration}, {program}, {energy_kwh}, {cost}.",
"energy_price_entity": "Seleziona un'entità numerica che contiene il prezzo corrente dell'elettricità (ad esempio sensor.electricity_price, input_number.energy_rate). Se impostato, abilita il segnaposto {cost}. Ha la precedenza sul valore statico se entrambi sono configurati.",
"energy_price_static": "Prezzo fisso dell'elettricità per kWh. Se impostato, abilita il segnaposto {cost}. Ignorato se un'entità è configurata sopra. Aggiungi il simbolo della tua valuta nel modello di messaggio, ad es. {cost} €.",
"notify_reminder_message": "Il testo del promemoria una tantum inviato il numero configurato di minuti prima della fine prevista. Distinto dagli aggiornamenti live ricorrenti di cui sopra. Supporta i segnaposto {device}, {minutes}, {program}.",
"notify_timeout_seconds": "Ignora automaticamente le notifiche dopo questo numero di secondi (inoltrate come \"timeout\" dell'app complementare). Impostarli su 0 per mantenerli fino allo scioglimento. Impostazione predefinita: 0.",
"notify_channel": "Android canale di notifica dell'app complementare per notifiche di stato, progressi in tempo reale e promemoria. Il suono e l'importanza di un canale vengono configurati nell'app complementare la prima volta che viene utilizzato il nome del canale: WashData imposta solo il nome del canale. Lascia vuoto per l'impostazione predefinita dell'app.",
"notify_finish_channel": "Canale Android separato per l'avviso di fine lavoro (utilizzato anche dal promemoria e dal ronzino di lavanderia in attesa) in modo che possa avere il proprio suono. Lascia vuoto per riutilizzare il canale sopra.",
"notify_pre_complete_message": "Testo degli aggiornamenti ricorrenti sull'avanzamento in tempo reale durante l'esecuzione del ciclo. Supporta i segnaposto {device}, {minutes}, {program}."
}
},
"advanced_settings": {
"title": "Impostazioni avanzate",
"description": "Ottimizza le soglie di rilevamento, l'apprendimento e il comportamento avanzato. Le impostazioni predefinite funzionano bene per la maggior parte delle configurazioni.",
"sections": {
"suggestions_section": {
"name": "Impostazioni suggerite",
"description": "{suggestions_count} suggerimenti appresi disponibili. Seleziona Applica valori suggeriti per rivedere le modifiche proposte prima di salvare.",
"data": {
"apply_suggestions": "Applica valori suggeriti"
},
"data_description": {
"apply_suggestions": "Seleziona questa casella per aprire una fase di revisione dei valori suggeriti dall'algoritmo di apprendimento. Nulla viene salvato automaticamente.\n\nSuggeriti (dall'apprendimento):\n- min_power: {suggested_min_power} W\n- off_delay: {suggested_off_delay} s\n- watchdog_interval: {suggested_watchdog_interval} s\n- no_update_active_timeout: {suggested_no_update_active_timeout} s\n- profile_match_interval: {suggested_profile_match_interval} s\n- auto_label_confidence: {suggested_auto_label_confidence}\n- duration_tolerance: {suggested_duration_tolerance}\n- profile_duration_tolerance: {suggested_profile_duration_tolerance}\n- profile_match_min_duration_ratio: {suggested_profile_match_min_duration_ratio}\n- profile_match_max_duration_ratio: {suggested_profile_match_max_duration_ratio}\n- start_threshold_w: {suggested_start_threshold_w} W\n- stop_threshold_w: {suggested_stop_threshold_w} W\n- end_energy_threshold: {suggested_end_energy_threshold} Wh\n- running_dead_zone: {suggested_running_dead_zone} s\n{suggested_reason}"
}
},
"detection_section": {
"name": "Rilevamento e soglie di potenza",
"description": "Quando l'elettrodomestico è considerato ACCESO o SPENTO, soglie di energia e temporizzazione delle transizioni di stato.",
"data": {
"start_duration_threshold": "Durata antirimbalzo avvio (s)",
"start_energy_threshold": "Gate energetico di avvio (Wh)",
"completion_min_seconds": "Durata minima per completamento (s)",
"start_threshold_w": "Soglia di avvio (W)",
"stop_threshold_w": "Soglia di arresto (W)",
"end_energy_threshold": "Gate energetico di fine (Wh)",
"running_dead_zone": "Zona morta di avvio (s)",
"end_repeat_count": "Conteggio ripetizioni fine ciclo",
"min_off_gap": "Intervallo minimo tra cicli (s)",
"sampling_interval": "Intervallo di campionamento (s)"
},
"data_description": {
"start_duration_threshold": "Ignora i brevi picchi di potenza più corti di questa durata (secondi). Filtra i picchi di avvio (es. 60 W per 2 s) prima dell'inizio del ciclo effettivo. Predefinito: 5 s.",
"start_energy_threshold": "Il ciclo deve accumulare almeno questa quantità di energia (Wh) durante la fase di AVVIO per essere confermato. Predefinito: 0,005 Wh.",
"completion_min_seconds": "I cicli più brevi di questo valore verranno contrassegnati come \"interrotti\" anche se terminano naturalmente. Predefinito: 600 s.",
"start_threshold_w": "La potenza deve salire AL DI SOPRA di questa soglia per AVVIARE un ciclo. Imposta un valore superiore alla potenza in standby. Predefinito: min_power + 1 W.",
"stop_threshold_w": "La potenza deve scendere AL DI SOTTO di questa soglia per TERMINARE un ciclo. Imposta appena sopra lo zero per evitare che il rumore generi false terminazioni. Predefinito: 0,6 × min_power.",
"end_energy_threshold": "Il ciclo termina solo se l'energia nell'ultima finestra di ritardo di spegnimento è inferiore a questo valore (Wh). Previene false terminazioni se la potenza oscilla vicino allo zero. Predefinito: 0,05 Wh.",
"running_dead_zone": "Dopo l'avvio del ciclo, ignora i cali di potenza per questo numero di secondi per evitare il rilevamento di false terminazioni durante la fase di avviamento iniziale. Imposta su 0 per disabilitare. Predefinito: 0 s.",
"end_repeat_count": "Numero di volte consecutive in cui la condizione di fine (potenza sotto la soglia per off_delay) deve essere soddisfatta prima di terminare il ciclo. Valori più alti prevengono false terminazioni durante le pause. Predefinito: 1.",
"min_off_gap": "Se un ciclo inizia entro questo numero di secondi dalla fine del precedente, i due cicli verranno UNITI in un unico ciclo.",
"sampling_interval": "Intervallo minimo di campionamento in secondi. Gli aggiornamenti più veloci di questa velocità verranno ignorati. Default: 30s (2s per lavatrici, lavasciuga e lavastoviglie)."
}
},
"matching_section": {
"name": "Corrispondenza profili e apprendimento",
"description": "Con quanta aggressività WashData abbina i cicli in corso ai profili appresi e quando chiedere feedback.",
"data": {
"profile_match_min_duration_ratio": "Rapporto durata minima corrispondenza profilo (0,1-1,0)",
"profile_match_interval": "Intervallo corrispondenza profilo (s)",
"profile_match_threshold": "Soglia di corrispondenza profilo",
"profile_unmatch_threshold": "Soglia di non corrispondenza profilo",
"auto_label_confidence": "Confidenza etichettatura automatica (0-1)",
"learning_confidence": "Confidenza richiesta feedback (0-1)",
"suppress_feedback_notifications": "Elimina le notifiche di feedback",
"duration_tolerance": "Tolleranza durata (0-0,5)",
"smoothing_window": "Finestra di livellamento (campioni)",
"profile_duration_tolerance": "Tolleranza durata corrispondenza profilo (0-0,5)"
},
"data_description": {
"profile_match_min_duration_ratio": "Rapporto di durata minima per la corrispondenza del profilo. Il ciclo in esecuzione deve aver raggiunto almeno questa frazione della durata del profilo per corrispondere. Più basso = corrispondenza anticipata. Predefinito: 0,50 (50%).",
"profile_match_interval": "Con quale frequenza (in secondi) tentare la corrispondenza del profilo durante un ciclo. Valori più bassi forniscono un rilevamento più rapido ma aumentano l'utilizzo della CPU. Predefinito: 300 s (5 minuti).",
"profile_match_threshold": "Punteggio minimo di similarità DTW (0,01,0) richiesto per considerare un profilo come corrispondente. Più alto = corrispondenza più rigida, meno falsi positivi. Predefinito: 0,4.",
"profile_unmatch_threshold": "Punteggio di similarità DTW (0,01,0) al di sotto del quale un profilo precedentemente abbinato viene rifiutato. Dovrebbe essere inferiore alla soglia di corrispondenza per evitare sfarfallio. Predefinito: 0,35.",
"auto_label_confidence": "Etichetta automaticamente i cicli con confidenza pari o superiore a questo valore al completamento (0,01,0).",
"learning_confidence": "Confidenza minima per richiedere la verifica dell'utente tramite un evento (0,01,0).",
"suppress_feedback_notifications": "Se abilitato, WashData continuerà a monitorare e richiedere feedback internamente, ma non mostrerà notifiche persistenti che chiedono di confermare i cicli. Utile quando i cicli vengono sempre rilevati correttamente e le istruzioni ti distraggono.",
"duration_tolerance": "Tolleranza per le stime del tempo rimanente durante un'esecuzione (0,00,5 corrisponde a 050%).",
"smoothing_window": "Numero di letture di potenza recenti usate per il livellamento a media mobile.",
"profile_duration_tolerance": "Tolleranza usata dalla corrispondenza del profilo per la varianza della durata totale (0,00,5). Comportamento predefinito: ±25%."
}
},
"timing_section": {
"name": "Tempi, manutenzione e debug",
"description": "Watchdog, reimpostazione del progresso, manutenzione automatica ed esposizione delle entità di debug.",
"data": {
"watchdog_interval": "Intervallo watchdog (s)",
"no_update_active_timeout": "Timeout senza aggiornamenti (s)",
"progress_reset_delay": "Ritardo ripristino avanzamento (s)",
"auto_maintenance": "Abilita manutenzione automatica",
"expose_debug_entities": "Esponi entità di debug",
"save_debug_traces": "Salva tracce di debug"
},
"data_description": {
"watchdog_interval": "Secondi tra i controlli watchdog durante l'esecuzione. Predefinito: 5 s. ATTENZIONE: assicurarsi che questo valore sia MAGGIORE dell'intervallo di aggiornamento del sensore per evitare false terminazioni (es. se il sensore si aggiorna ogni 60 s, usare 65 s o più).",
"no_update_active_timeout": "Per i sensori che pubblicano solo al cambiamento: forza la fine di un ciclo ATTIVO solo se non arrivano aggiornamenti per questo numero di secondi. Il completamento a bassa potenza utilizza ancora il ritardo di spegnimento.",
"progress_reset_delay": "Dopo che un ciclo si completa (100%), attendi questo numero di secondi di inattività prima di reimpostare l'avanzamento allo 0%. Predefinito: 300 s.",
"auto_maintenance": "Abilita la manutenzione automatica (ripara campioni, unisce frammenti).",
"expose_debug_entities": "Mostra sensori avanzati (Confidenza, Fase, Ambiguità) per il debug.",
"save_debug_traces": "Memorizza dati dettagliati di classificazione e traccia di potenza nella cronologia (aumenta l'utilizzo dello spazio di archiviazione)."
}
},
"anti_wrinkle_section": {
"name": "Scudo antipiega (asciugatrici)",
"description": "Ignora le rotazioni del cestello dopo il ciclo per evitare cicli fantasma. Solo asciugatrice / lavasciuga.",
"data": {
"anti_wrinkle_enabled": "Protezione antirughe (solo asciugatrice/lavasciuga)",
"anti_wrinkle_max_power": "Potenza massima antirughe (W) (solo asciugatrice/lavasciuga)",
"anti_wrinkle_max_duration": "Durata massima antirughe (s) (solo asciugatrice/lavasciuga)",
"anti_wrinkle_exit_power": "Potenza di uscita antirughe (W) (solo asciugatrice/lavasciuga)"
},
"data_description": {
"anti_wrinkle_enabled": "Ignora le brevi rotazioni del cestello a bassa potenza al termine di un ciclo per evitare cicli fantasma (solo asciugatrice/lavasciuga).",
"anti_wrinkle_max_power": "Le raffiche a potenza pari o inferiore a questo valore vengono trattate come rotazioni antirughe anziché come nuovi cicli. Si applica solo quando la Protezione antirughe è abilitata.",
"anti_wrinkle_max_duration": "Durata massima delle raffiche da trattare come rotazione antirughe. Si applica solo quando la Protezione antirughe è abilitata.",
"anti_wrinkle_exit_power": "Se la potenza scende al di sotto di questo livello, esci immediatamente dalla modalità antirughe (spegnimento vero). Si applica solo quando la Protezione antirughe è abilitata."
}
},
"delay_start_section": {
"name": "Rilevamento avvio ritardato",
"description": "Tratta la modalità standby prolungata a bassa potenza come 'In attesa di avvio' finché il ciclo non inizia davvero.",
"data": {
"delay_start_detect_enabled": "Abilita il rilevamento dell'avvio ritardato",
"delay_confirm_seconds": "Avvio ritardato: tempo di conferma standby (s)",
"delay_timeout_hours": "Avvio ritardato: tempo di attesa massimo (h)"
},
"data_description": {
"delay_start_detect_enabled": "Quando abilitato, un breve picco di consumo a bassa potenza seguito da un consumo prolungato in standby viene rilevato come un avvio ritardato. Il sensore di stato mostra \"In attesa di avvio\" durante il ritardo. La durata o l'avanzamento del programma non vengono monitorati finché il ciclo non inizia effettivamente. Richiede che start_threshold_w sia impostato al di sopra della potenza del picco di drenaggio.",
"delay_confirm_seconds": "La potenza deve restare tra Soglia di arresto (W) e Soglia di avvio (W) per questo numero di secondi prima che WashData entri in 'In attesa di avvio'. Filtra i brevi picchi dovuti alla navigazione nei menu. Predefinito: 60 s.",
"delay_timeout_hours": "Timeout di sicurezza: se la macchina è ancora in \"In attesa di avvio\" dopo queste ore, WashData si reimposta su Off. Predefinito: 8 ore."
}
},
"external_triggers_section": {
"name": "Trigger esterni, porta e pausa",
"description": "Sensore esterno opzionale di fine ciclo, sensore porta per rilevare pausa/pulito e interruttore di taglio alimentazione durante la pausa.",
"data": {
"external_end_trigger_enabled": "Abilita trigger esterno di fine ciclo",
"external_end_trigger": "Sensore esterno di fine ciclo",
"external_end_trigger_inverted": "Inverti la logica del trigger (attiva su SPENTO)",
"door_sensor_entity": "Sensore porta",
"pause_cuts_power": "Interrompere l'alimentazione durante la pausa",
"switch_entity": "Cambia entità (per pausa interruzione alimentazione)",
"notify_unload_delay_minutes": "Ritardo notifica attesa lavanderia (min)"
},
"data_description": {
"external_end_trigger_enabled": "Abilita il monitoraggio di un sensore binario esterno per attivare il completamento del ciclo.",
"external_end_trigger": "Seleziona un'entità sensore binario. Quando questo sensore si attiva, il ciclo corrente terminerà con stato \"completato\".",
"external_end_trigger_inverted": "Per impostazione predefinita, il trigger si attiva quando il sensore si accende. Seleziona questa casella per attivarlo quando il sensore si spegne.",
"door_sensor_entity": "Sensore binario opzionale per la porta della macchina (on = aperto, off = chiuso). Quando la porta si apre durante un ciclo attivo, WashData confermerà che il ciclo è stato intenzionalmente messo in pausa. Al termine del ciclo, se la porta è ancora chiusa, lo stato cambia in \"Pulizia\" finché la porta non viene aperta. Nota: la chiusura della porta NON riprende automaticamente un ciclo in pausa: la ripresa deve essere attivata manualmente tramite il pulsante o il servizio Riprendi ciclo.",
"pause_cuts_power": "Quando si mette in pausa tramite il pulsante o il servizio Pausa ciclo, disattivare anche l'entità interruttore configurata. Ha effetto solo se è configurata un'entità interruttore per questo dispositivo.",
"switch_entity": "L'entità interruttore da attivare durante la pausa o la ripresa. Richiesto quando è abilitata l'opzione \"Taglia alimentazione durante la pausa\".",
"notify_unload_delay_minutes": "Invia una notifica tramite il canale di notifica di fine dopo che il ciclo è terminato e la porta non è stata aperta per questo numero di minuti (richiede il sensore porta). Impostare su 0 per disabilitare. Predefinito: 60 minuti."
}
},
"pump_section": {
"name": "Monitor pompa",
"description": "Solo per il tipo di dispositivo pompa. Genera un evento se un ciclo della pompa supera questa durata.",
"data": {
"pump_stuck_duration": "Soglia/e di avviso pompa bloccata (solo pompa)"
},
"data_description": {
"pump_stuck_duration": "Se un ciclo della pompa è ancora in esecuzione dopo questo numero di secondi, viene generato un evento ha_washdata_pump_stuck una volta. Utilizzarlo per rilevare un motore bloccato (il funzionamento tipico della pompa di raccolta è inferiore a 60 s). Impostazione predefinita: 1800 s (30 min). Solo tipo di dispositivo pompa."
}
},
"device_link_section": {
"name": "Collegamento del dispositivo",
"description": "Facoltativamente, collega questo dispositivo WashData a un dispositivo Home Assistant esistente (ad esempio la presa intelligente o l'elettrodomestico stesso). Il dispositivo WashData viene quindi visualizzato come \"Connesso tramite\" quel dispositivo. Lasciare vuoto per mantenere WashData come dispositivo autonomo.",
"data": {
"linked_device": "Dispositivo collegato"
},
"data_description": {
"linked_device": "Seleziona il dispositivo a cui connettere WashData. Ciò aggiunge un riferimento \"Connesso tramite\" nel registro del dispositivo; WashData mantiene la propria scheda dispositivo ed entità. Deselezionare la selezione per rimuovere il collegamento."
}
}
}
},
"diagnostics": {
"title": "Diagnostica e manutenzione",
"description": "Esegui azioni di manutenzione come l'unione di cicli frammentati o la migrazione dei dati archiviati.\n\n**Utilizzo dello spazio di archiviazione**\n\n- Dimensione file: {file_size_kb} KB\n- Cicli: {cycle_count}\n- Profili: {profile_count}\n- Tracce di debug: {debug_count}",
"menu_options": {
"reprocess_history": "Manutenzione: rielabora e ottimizza i dati",
"clear_debug_data": "Cancella dati di debug (libera spazio)",
"wipe_history": "Cancella TUTTI i dati di questo dispositivo (irreversibile)",
"export_import": "Esporta/Importa JSON con impostazioni (copia/incolla)",
"menu_back": "← Indietro"
}
},
"clear_debug_data": {
"title": "Cancella dati di debug",
"description": "Sei sicuro di voler eliminare tutte le tracce di debug memorizzate? Questa operazione libererà spazio ma rimuoverà le informazioni dettagliate sulla classificazione dai cicli precedenti."
},
"manage_cycles": {
"title": "Gestisci i cicli",
"description": "Cicli recenti:\n{recent_cycles}",
"menu_options": {
"auto_label_cycles": "Etichettatura automatica dei cicli precedenti",
"select_cycle_to_label": "Etichetta ciclo specifico",
"select_cycle_to_delete": "Elimina ciclo",
"interactive_editor": "Editor interattivo Unisci/Dividi",
"trim_cycle_select": "Taglia dati del ciclo",
"menu_back": "← Indietro"
}
},
"manage_cycles_empty": {
"title": "Gestisci i cicli",
"description": "Nessun ciclo ancora registrato.",
"menu_options": {
"auto_label_cycles": "Etichettatura automatica dei cicli precedenti",
"menu_back": "← Indietro"
}
},
"manage_profiles": {
"title": "Gestisci profili",
"description": "Riepilogo profili:\n{profile_summary}",
"menu_options": {
"create_profile": "Crea nuovo profilo",
"edit_profile": "Modifica/rinomina profilo",
"delete_profile_select": "Elimina profilo",
"profile_stats": "Statistiche del profilo",
"cleanup_profile": "Pulizia cronologia - Grafico ed eliminazione",
"assign_profile_phases_select": "Assegna intervalli di fase",
"menu_back": "← Indietro"
}
},
"manage_profiles_empty": {
"title": "Gestisci profili",
"description": "Nessun profilo ancora creato.",
"menu_options": {
"create_profile": "Crea nuovo profilo",
"menu_back": "← Indietro"
}
},
"manage_phase_catalog": {
"title": "Gestisci il catalogo delle fasi",
"description": "Catalogo fasi (predefiniti per questo dispositivo + fasi personalizzate):\n{phase_summary}",
"menu_options": {
"phase_catalog_create": "Crea nuova fase",
"phase_catalog_edit_select": "Modifica fase",
"phase_catalog_delete": "Elimina fase",
"menu_back": "← Indietro"
}
},
"phase_catalog_create": {
"title": "Crea fase personalizzata",
"description": "Crea un nome e una descrizione per la fase personalizzata e scegli il tipo di dispositivo a cui si applica.",
"data": {
"target_device_type": "Tipo di dispositivo di destinazione",
"phase_name": "Nome fase",
"phase_description": "Descrizione fase"
}
},
"phase_catalog_edit_select": {
"title": "Modifica fase personalizzata",
"description": "Seleziona una fase personalizzata da modificare.",
"data": {
"phase_name": "Fase personalizzata"
}
},
"phase_catalog_edit": {
"title": "Modifica fase personalizzata",
"description": "Modifica della fase: {phase_name}",
"data": {
"phase_name": "Nome fase",
"phase_description": "Descrizione fase"
}
},
"phase_catalog_delete": {
"title": "Elimina fase personalizzata",
"description": "Seleziona una fase personalizzata da eliminare. Eventuali intervalli assegnati che utilizzano questa fase verranno rimossi.",
"data": {
"phase_name": "Fase personalizzata"
}
},
"assign_profile_phases": {
"title": "Assegna intervalli di fase",
"description": "Anteprima fase per il profilo: **{profile_name}**\n\n{timeline_svg}\n\n**Intervalli correnti:**\n{current_ranges}\n\nUsa le azioni seguenti per aggiungere, modificare, eliminare o salvare gli intervalli.",
"menu_options": {
"assign_profile_phases_add": "Aggiungi intervallo di fase",
"assign_profile_phases_edit_select": "Modifica intervallo di fase",
"assign_profile_phases_delete": "Elimina intervallo di fase",
"phase_ranges_clear": "Cancella tutti gli intervalli",
"assign_profile_phases_auto_detect": "Rileva fasi automaticamente",
"phase_ranges_save": "Salva e torna",
"menu_back": "← Indietro"
}
},
"assign_profile_phases_add": {
"title": "Aggiungi intervallo di fase",
"description": "Aggiungi un intervallo di fase alla bozza corrente.",
"data": {
"phase_name": "Fase",
"start_min": "Minuto di inizio",
"end_min": "Minuto di fine"
}
},
"assign_profile_phases_edit_select": {
"title": "Modifica intervallo di fase",
"description": "Seleziona un intervallo da modificare.",
"data": {
"range_index": "Intervallo di fase"
}
},
"assign_profile_phases_edit": {
"title": "Modifica intervallo di fase",
"description": "Aggiorna l'intervallo di fase selezionato.",
"data": {
"phase_name": "Fase",
"start_min": "Minuto di inizio",
"end_min": "Minuto di fine"
}
},
"assign_profile_phases_delete": {
"title": "Elimina intervallo di fase",
"description": "Seleziona un intervallo da rimuovere dalla bozza.",
"data": {
"range_index": "Intervallo di fase"
}
},
"assign_profile_phases_auto_detect": {
"title": "Fasi rilevate automaticamente",
"description": "Profilo: **{profile_name}**\n\n{timeline_svg}\n\n**{detected_count} fase/i rilevata/e automaticamente.** Scegli un'azione di seguito.",
"data": {
"action": "Azione"
}
},
"assign_profile_phases_auto_detect_name": {
"title": "Assegna nome alle fasi rilevate",
"description": "Profilo: **{profile_name}**\n\n**{detected_count} fase/i rilevata/e:**\n{ranges_summary}\n\nAssegna un nome a ciascuna fase."
},
"assign_profile_phases_select": {
"title": "Assegna intervalli di fase",
"description": "Seleziona un profilo per configurare gli intervalli di fase.",
"data": {
"profile": "Profilo"
}
},
"profile_stats": {
"title": "Statistiche del profilo",
"description": "{stats_table}"
},
"create_profile": {
"title": "Crea nuovo profilo",
"description": "Crea un nuovo profilo manualmente o da un ciclo passato.\n\nEsempi di nomi profilo: \"Delicati\", \"Cotone pesante\", \"Lavaggio rapido\"",
"data": {
"profile_name": "Nome profilo",
"reference_cycle": "Ciclo di riferimento (facoltativo)",
"manual_duration": "Durata manuale (minuti)"
}
},
"edit_profile": {
"title": "Modifica profilo",
"description": "Seleziona un profilo da rinominare",
"data": {
"profile": "Profilo"
}
},
"rename_profile": {
"title": "Modifica dettagli profilo",
"description": "Profilo corrente: {current_name}",
"data": {
"new_name": "Nome profilo",
"manual_duration": "Durata manuale (minuti)"
}
},
"delete_profile_select": {
"title": "Elimina profilo",
"description": "Seleziona un profilo da eliminare",
"data": {
"profile": "Profilo"
}
},
"delete_profile_confirm": {
"title": "Conferma eliminazione profilo",
"description": "⚠️ Questa operazione eliminerà definitivamente il profilo: {profile_name}",
"data": {
"unlabel_cycles": "Rimuovi l'etichetta dai cicli che usano questo profilo"
}
},
"auto_label_cycles": {
"title": "Etichettatura automatica dei cicli precedenti",
"description": "Trovati {total_count} cicli totali. Profili: {profiles}",
"data": {
"confidence_threshold": "Confidenza minima (0,50-0,95)"
}
},
"select_cycle_to_label": {
"title": "Seleziona ciclo da etichettare",
"description": "✓ = completato, ⚠ = ripreso, ✗ = interrotto",
"data": {
"cycle_id": "Ciclo"
}
},
"select_cycle_to_delete": {
"title": "Elimina ciclo",
"description": "⚠️ Questa operazione eliminerà definitivamente il ciclo selezionato",
"data": {
"cycle_id": "Ciclo da eliminare"
}
},
"label_cycle": {
"title": "Etichetta ciclo",
"description": "{cycle_info}",
"data": {
"profile_name": "Profilo",
"new_profile_name": "Nuovo nome profilo (se in fase di creazione)"
}
},
"post_process": {
"title": "Elabora cronologia (Unisci/Dividi)",
"description": "Pulisci la cronologia dei cicli unendo corse frammentate e suddividendo i cicli uniti in modo errato all'interno di una finestra temporale. Inserisci il numero di ore da guardare indietro (usa 999999 per tutte).",
"data": {
"time_range": "Finestra di ricerca (ore)",
"gap_seconds": "Gap unisci/dividi (secondi)"
},
"data_description": {
"time_range": "Numero di ore per la scansione dei cicli frammentati da unire. Utilizzare 999999 per elaborare tutti i dati storici.",
"gap_seconds": "Soglia per decidere se dividere o unire. I gap PIÙ BREVI di questo valore vengono uniti. I gap PIÙ LUNGHI vengono divisi. Riduci questo valore per forzare la divisione di un ciclo unito in modo errato."
}
},
"cleanup_profile": {
"title": "Pulizia cronologia - Seleziona profilo",
"description": "Seleziona un profilo da visualizzare. Verrà generato un grafico con tutti i cicli passati per questo profilo per aiutare a identificare i valori anomali.",
"data": {
"profile": "Profilo"
}
},
"cleanup_select": {
"title": "Pulizia cronologia - Grafico ed eliminazione",
"description": "![Grafico]({graph_url})\n\n**Visualizzazione di {profile_name}**\n\nIl grafico mostra i singoli cicli come linee colorate. Identifica i valori anomali (linee lontane dal gruppo) e abbina il loro colore nell'elenco sottostante per eliminarli.\n\n**Seleziona i cicli da eliminare DEFINITIVAMENTE:**",
"data": {
"cycles_to_delete": "Cicli da eliminare (abbina i colori corrispondenti)"
}
},
"interactive_editor": {
"title": "Editor interattivo Unisci/Dividi",
"description": "Seleziona un'azione manuale da eseguire sulla cronologia dei cicli.",
"menu_options": {
"editor_split": "Dividi un ciclo (trova gap)",
"editor_merge": "Unisci cicli (unisci frammenti)",
"editor_delete": "Elimina ciclo/i",
"menu_back": "← Indietro"
}
},
"editor_select": {
"title": "Seleziona cicli",
"description": "Seleziona il/i ciclo/i da elaborare.\n\n{info_text}",
"data": {
"selected_cycles": "Cicli"
}
},
"editor_configure": {
"title": "Configura e applica",
"description": "{preview_md}",
"data": {
"confirm_action": "Azione",
"merged_profile": "Profilo risultante",
"new_profile_name": "Nuovo nome profilo",
"confirm_commit": "Sì, confermo questa azione",
"segment_0_profile": "Profilo del segmento 1",
"segment_1_profile": "Profilo del segmento 2",
"segment_2_profile": "Profilo del segmento 3",
"segment_3_profile": "Profilo del segmento 4",
"segment_4_profile": "Profilo del segmento 5",
"segment_5_profile": "Profilo del segmento 6",
"segment_6_profile": "Profilo del segmento 7",
"segment_7_profile": "Profilo del segmento 8",
"segment_8_profile": "Profilo del segmento 9",
"segment_9_profile": "Profilo del segmento 10"
}
},
"editor_split_params": {
"title": "Configurazione divisione",
"description": "Regola la sensibilità per la divisione di questo ciclo. Qualsiasi pausa più lunga di questo valore causerà una divisione.",
"data": {
"split_mode": "Metodo di divisione"
}
},
"editor_split_auto_params": {
"title": "Configurazione divisione automatica",
"description": "Regola la sensibilità per dividere questo ciclo. Qualsiasi intervallo di inattività più lungo di questo causerà una divisione.",
"data": {
"min_gap_seconds": "Soglia intervallo di divisione (secondi)"
}
},
"editor_split_manual_params": {
"title": "Timestamp di divisione manuale",
"description": "{preview_md}Finestra del ciclo: **{cycle_start_wallclock} → {cycle_end_wallclock}** del {cycle_date}.\n\nInserisci uno o più timestamp di divisione (`HH:MM` o `HH:MM:SS`), uno per riga. Il ciclo verrà tagliato a ogni timestamp — N timestamp producono N+1 segmenti.",
"data": {
"split_timestamps": "Timestamp di divisione"
}
},
"reprocess_history": {
"title": "Manutenzione: rielabora e ottimizza i dati",
"description": "Esegue una pulizia approfondita dei dati storici:\n1. Rimuove le letture a potenza zero (silenzio).\n2. Corregge i tempi e la durata dei cicli.\n3. Ricalcola tutti i modelli statistici (inviluppi).\n\n**Esegui questa operazione per risolvere problemi con i dati o applicare nuovi algoritmi.**"
},
"wipe_history": {
"title": "Cancella cronologia (solo per test)",
"description": "⚠️ Questa operazione eliminerà definitivamente TUTTI i cicli e i profili memorizzati per questo dispositivo. Questa operazione non può essere annullata!"
},
"export_import": {
"title": "Esporta/Importa JSON",
"description": "Copia/incolla cicli, profili E impostazioni per questo dispositivo. Esporta qui di seguito o incolla un JSON per importare.",
"data": {
"mode": "Azione",
"json_payload": "Configurazione JSON completa"
},
"data_description": {
"mode": "Scegli Esporta per copiare i dati e le impostazioni correnti, oppure Importa per incollare i dati esportati da un altro dispositivo WashData.",
"json_payload": "Per l'esportazione: copia questo JSON (include cicli, profili e tutte le impostazioni ottimizzate). Per l'importazione: incolla il JSON esportato da WashData."
}
},
"record_cycle": {
"title": "Registra ciclo",
"description": "Registra manualmente un ciclo per creare un profilo pulito senza interferenze.\n\nStato: **{status}**\nDurata: {duration}s\nCampioni: {samples}",
"menu_options": {
"record_refresh": "Aggiorna stato",
"record_stop": "Interrompi registrazione (salva ed elabora)",
"record_start": "Avvia nuova registrazione",
"record_process": "Elabora ultima registrazione (taglia e salva)",
"record_discard": "Scarta ultima registrazione",
"menu_back": "← Indietro"
}
},
"record_process": {
"title": "Elabora registrazione",
"description": "![Grafico]({graph_url})\n\n**Il grafico mostra la registrazione grezza.** Blu = Mantieni, Rosso = Taglio proposto.\n*Il grafico è statico e non si aggiorna con le modifiche del modulo.*\n\nRegistrazione interrotta. I tagli sono allineati alla frequenza di campionamento rilevata (~{sampling_rate}s).\n\nDurata grezza: {duration}s\nCampioni: {samples}",
"data": {
"head_trim": "Taglio inizio (secondi)",
"tail_trim": "Taglio fine (secondi)",
"save_mode": "Destinazione di salvataggio",
"profile_name": "Nome profilo"
}
},
"learning_feedbacks": {
"title": "Feedback di apprendimento",
"description": "Feedback in sospeso: {count}\n\n{pending_table}\n\nSeleziona una richiesta di revisione del ciclo da elaborare.",
"menu_options": {
"learning_feedbacks_pick": "Rivedi un feedback in sospeso",
"learning_feedbacks_dismiss_all": "Ignora tutti i feedback in sospeso",
"menu_back": "← Indietro"
}
},
"learning_feedbacks_pick": {
"title": "Seleziona feedback da rivedere",
"description": "Seleziona una richiesta di revisione del ciclo da aprire.",
"data": {
"selected_feedback": "Seleziona ciclo da rivedere"
}
},
"learning_feedbacks_empty": {
"title": "Feedback di apprendimento",
"description": "Nessuna richiesta di feedback in sospeso trovata.",
"menu_options": {
"menu_back": "← Indietro"
}
},
"learning_feedbacks_dismiss_all": {
"title": "Ignora tutti i feedback in sospeso",
"description": "Stai per ignorare **{count}** richiesta/e di feedback in sospeso. I cicli ignorati rimangono nella cronologia ma non contribuiranno con un nuovo segnale di apprendimento. Questa azione non può essere annullata.\n\n✅ Seleziona la casella in basso e fai clic su **Invia** per ignorarli tutti.\n❌ Lasciala deselezionata e fai clic su **Invia** per annullare e tornare indietro.",
"data": {
"confirm_dismiss_all": "Conferma: ignora tutte le richieste di feedback in sospeso"
}
},
"resolve_feedback": {
"title": "Risolvi feedback",
"description": "{comparison_img}{candidates_table}\n**Profilo rilevato**: {detected_profile} ({confidence_pct}%)\n**Durata stimata**: {est_duration_min} min\n**Durata effettiva**: {act_duration_min} min\n\n__Scegli un'azione di seguito:__",
"data": {
"action": "Cosa vorresti fare?",
"corrected_profile": "Programma corretto (se si corregge)",
"corrected_duration": "Durata corretta in secondi (se si corregge)"
}
},
"trim_cycle_select": {
"title": "Taglia ciclo - Seleziona ciclo",
"description": "Seleziona un ciclo da tagliare. ✓ = completato, ⚠ = ripreso, ✗ = interrotto",
"data": {
"cycle_id": "Ciclo"
}
},
"trim_cycle": {
"title": "Taglia ciclo",
"description": "Finestra corrente: {trim_summary}\n\n{trim_svg}",
"data": {
"action": "Azione"
}
},
"trim_cycle_start": {
"title": "Imposta inizio taglio",
"description": "Finestra del ciclo: {cycle_start_wallclock} → {cycle_end_wallclock}\n\nInizio attuale: **{current_wallclock}** (+{current_offset_min} min dall'inizio del ciclo)\n\nScegli una nuova ora di inizio utilizzando il selettore dell'orologio di seguito.",
"data": {
"trim_start_time": "Nuova ora di inizio",
"trim_start_min": "Nuovo inizio (minuti dall'inizio del ciclo)"
}
},
"trim_cycle_end": {
"title": "Imposta fine taglio",
"description": "Finestra del ciclo: {cycle_start_wallclock} → {cycle_end_wallclock}\n\nFine attuale: **{current_wallclock}** (+{current_offset_min} min dall'inizio del ciclo)\n\nScegli una nuova ora di fine utilizzando il selettore dell'orologio di seguito.",
"data": {
"trim_end_time": "Nuova ora di fine",
"trim_end_min": "Nuova fine (minuti dall'inizio del ciclo)"
}
}
},
"error": {
"import_failed": "Importazione non riuscita. Incolla un JSON di esportazione WashData valido.",
"select_exactly_one": "Seleziona esattamente un ciclo per questa azione.",
"select_at_least_one": "Seleziona almeno un ciclo per questa azione.",
"select_at_least_two": "Seleziona almeno due cicli per questa azione.",
"profile_exists": "Esiste già un profilo con questo nome",
"rename_failed": "Impossibile rinominare il profilo. Il profilo potrebbe non esistere oppure il nuovo nome è già in uso.",
"assignment_failed": "Impossibile assegnare il profilo al ciclo",
"duplicate_phase": "Esiste già una fase con questo nome.",
"phase_not_found": "La fase selezionata non è stata trovata.",
"invalid_phase_name": "Il nome della fase non può essere vuoto.",
"phase_name_too_long": "Il nome della fase è troppo lungo.",
"invalid_phase_range": "L'intervallo di fase non è valido. La fine deve essere maggiore dell'inizio.",
"invalid_phase_timestamp": "Il timestamp non è valido. Usa il formato AAAA-MM-GG HH:MM o HH:MM.",
"overlapping_phase_ranges": "Gli intervalli di fase si sovrappongono. Regola gli intervalli e riprova.",
"incomplete_phase_row": "Ogni riga di fase deve includere una fase e valori di inizio/fine completi per la modalità selezionata.",
"timestamp_mode_cycle_required": "Seleziona un ciclo sorgente quando si usa la modalità timestamp.",
"no_phase_ranges": "Non sono ancora disponibili intervalli di fase per quell'azione.",
"feedback_notification_title": "WashData: Verifica ciclo ({device})",
"feedback_notification_message": "**Dispositivo**: {device}\n**Programma**: {program} ({confidence}% di confidenza)\n**Ora**: {time}\n\nWashData ha bisogno del tuo aiuto per verificare questo ciclo rilevato.\n\nVai su **Impostazioni > Dispositivi e servizi > WashData > Configura > Feedback di apprendimento** per confermare o correggere questo risultato.",
"suggestions_ready_notification_title": "WashData: impostazioni suggerite disponibili ({device})",
"suggestions_ready_notification_message": "Il sensore **Impostazioni suggerite** segnala ora **{count}** raccomandazioni utilizzabili.\n\nPer rivederle e applicarle: **Impostazioni > Dispositivi e servizi > WashData > Configura > Impostazioni avanzate > Applica valori suggeriti**.\n\nI suggerimenti sono facoltativi e vengono mostrati per la revisione prima del salvataggio.",
"trim_range_invalid": "L'inizio deve essere prima della fine. Regola i punti di taglio.",
"trim_failed": "Taglio non riuscito. Il ciclo potrebbe non esistere più oppure la finestra è vuota.",
"invalid_split_timestamp": "Il timestamp non è valido o è fuori dalla finestra del ciclo. Usa HH:MM o HH:MM:SS all'interno della finestra del ciclo.",
"no_split_segments_found": "Da questi timestamp non è stato possibile produrre segmenti validi. Assicurati che ogni timestamp sia all'interno della finestra del ciclo e che i segmenti durino almeno 1 minuto.",
"auto_tune_suggestion": "{device_type} {device_title} ha rilevato cicli fantasma. Modifica min_power suggerita: {current_min}W -> {new_min}W (non applicata automaticamente).",
"auto_tune_title": "Sintonizzazione automatica WashData",
"auto_tune_fallback": "{device_type} {device_title} ha rilevato cicli fantasma. Modifica min_power suggerita: {current_min}W -> {new_min}W (non applicata automaticamente)."
},
"abort": {
"no_cycles_found": "Nessun ciclo trovato",
"no_split_segments_found": "Nel ciclo selezionato non sono stati trovati segmenti divisibili.",
"cycle_not_found": "Il ciclo selezionato non può essere caricato.",
"no_power_data": "Nessun dato di traccia di potenza disponibile per il ciclo selezionato.",
"no_profiles_found": "Nessun profilo trovato. Crea prima un profilo.",
"no_profiles_for_matching": "Nessun profilo disponibile per la corrispondenza. Crea prima i profili.",
"no_unlabeled_cycles": "Tutti i cicli sono già etichettati",
"no_suggestions": "Nessun valore suggerito ancora disponibile. Esegui alcuni cicli e riprova.",
"no_predictions": "Nessuna previsione",
"no_custom_phases": "Nessuna fase personalizzata trovata.",
"reprocess_success": "{count} cicli rielaborati correttamente.",
"debug_data_cleared": "Dati di debug cancellati correttamente da {count} cicli."
}
},
"selector": {
"notify_events_option": {
"options": {
"cycle_start": "Avvio ciclo",
"cycle_finish": "Fine ciclo",
"cycle_live": "Avanzamento in tempo reale"
}
},
"common_text": {
"options": {
"unlabeled": "(Senza etichetta)",
"create_new_profile": "Crea nuovo profilo",
"remove_label": "Rimuovi etichetta",
"no_reference_cycle": "(Nessun ciclo di riferimento)",
"all_device_types": "Tutti i tipi di dispositivo",
"current_suffix": "(corrente)",
"editor_select_info": "Seleziona 1 ciclo da dividere o 2+ cicli da unire.",
"editor_select_info_split": "Seleziona 1 ciclo da dividere.",
"editor_select_info_merge": "Seleziona 2 o più cicli da unire.",
"editor_select_info_delete": "Seleziona 1 o più cicli da eliminare.",
"no_cycles_recorded": "Nessun ciclo ancora registrato.",
"profile_summary_line": "- **{name}**: {count} cicli, {avg} min in media",
"no_profiles_created": "Nessun profilo ancora creato.",
"phase_preview": "Anteprima fase",
"phase_preview_no_curve": "La curva del profilo medio non è ancora disponibile. Esegui/etichetta più cicli per questo profilo.",
"average_power_curve": "Curva di potenza media",
"unit_min": "min",
"profile_option_fmt": "{name} ({count} cicli, ~{duration} min in media)",
"profile_option_short_fmt": "{name} ({count} cicli, ~{duration} min)",
"deleted_cycles_from_profile": "Eliminati {count} cicli da {profile}.",
"not_enough_data_graph": "Dati insufficienti per generare il grafico.",
"no_profiles_found": "Nessun profilo trovato.",
"cycle_info_fmt": "Ciclo: {start}, {duration} min, Corrente: {label}",
"top_candidates_header": "### Principali candidati",
"tbl_profile": "Profilo",
"tbl_confidence": "Confidenza",
"tbl_correlation": "Correlazione",
"tbl_duration_match": "Corrisp. durata",
"detected_profile": "Profilo rilevato",
"estimated_duration": "Durata stimata",
"actual_duration": "Durata effettiva",
"choose_action": "__Scegli un'azione di seguito:__",
"tbl_count": "Conteggio",
"tbl_avg": "Media",
"tbl_min": "Min",
"tbl_max": "Max",
"tbl_energy_avg": "Energia (media)",
"tbl_energy_total": "Energia (totale)",
"tbl_consistency": "Consist.",
"tbl_last_run": "Ultima esecuzione",
"graph_legend_title": "Legenda del grafico",
"graph_legend_body": "La banda blu rappresenta l'intervallo minimo e massimo di assorbimento di potenza osservato. La linea mostra la curva di potenza media.",
"recording_preview": "Anteprima registrazione",
"trim_start": "Inizio taglio",
"trim_end": "Fine taglio",
"split_preview_title": "Anteprima divisione",
"split_preview_found_fmt": "Trovati {count} segmenti.",
"split_preview_confirm_fmt": "Clicca Conferma per dividere questo ciclo in {count} cicli separati.",
"merge_preview_title": "Anteprima unione",
"merge_preview_joining_fmt": "Unione di {count} cicli. I gap verranno riempiti con letture di 0 W.",
"editor_delete_preview_title": "Anteprima eliminazione",
"editor_delete_preview_intro": "I cicli selezionati verranno eliminati definitivamente:",
"editor_delete_preview_confirm": "Fai clic su Conferma per eliminare definitivamente questi record dei cicli.",
"no_power_preview": "*Nessun dato di potenza disponibile per l'anteprima.*",
"profile_comparison": "Confronto profili",
"actual_cycle_label": "Questo ciclo (effettivo)",
"storage_usage_header": "Utilizzo dello spazio di archiviazione",
"storage_file_size": "Dimensione file",
"storage_cycles": "Cicli",
"storage_profiles": "Profili",
"storage_debug_traces": "Tracce di debug",
"overview_suffix": "Panoramica",
"phase_preview_for_profile": "Anteprima fase per il profilo",
"current_ranges_header": "Intervalli correnti",
"assign_phases_help": "Usa le azioni seguenti per aggiungere, modificare, eliminare o salvare gli intervalli.",
"profile_summary_header": "Riepilogo profili",
"recent_cycles_header": "Cicli recenti",
"trim_cycle_preview_title": "Anteprima taglio ciclo",
"trim_cycle_preview_no_data": "Nessun dato di potenza disponibile per questo ciclo.",
"trim_cycle_preview_kept_suffix": "mantenuto",
"table_program": "Programma",
"table_when": "Quando",
"table_length": "Durata",
"table_match": "Corrispondenza",
"table_profile": "Profilo",
"table_cycles": "Cicli",
"table_avg_length": "Durata media",
"table_last_run": "Ultima esecuzione",
"table_avg_energy": "Energia media",
"table_detected_program": "Programma rilevato",
"table_confidence": "Confidenza",
"table_reported": "Segnalato",
"phase_builtin_suffix": "(Incorporato)",
"phase_none_available": "Nessuna fase disponibile.",
"settings_deprecation_warning": "⚠️ **Tipo di dispositivo obsoleto:** è prevista la rimozione di {device_type} in una versione futura. La pipeline di corrispondenza di WashData non produce risultati affidabili per questa classe di apparecchi. La tua integrazione continua a funzionare durante il periodo di deprecazione; per disattivare questo avviso, imposta il **Tipo di dispositivo** di seguito su uno dei tipi supportati (lavatrice, asciugatrice, lavatrice-asciugatrice combinata, lavastoviglie, friggitrice ad aria, macchina per il pane o pompa) o su **Altro (avanzato)** se il tuo elettrodomestico non corrisponde a nessuno dei tipi supportati. **Altro (Avanzato)** fornisce impostazioni predefinite intenzionalmente generiche che non sono ottimizzate per alcun dispositivo specifico, quindi dovrai configurare tu stesso le soglie, i timeout e i parametri di corrispondenza; tutte le impostazioni esistenti vengono conservate quando cambi.",
"phase_other_device_types": "Altri tipi di dispositivi:"
}
},
"interactive_editor_action": {
"options": {
"split": "Dividi un ciclo (trova gap)",
"merge": "Unisci cicli (unisci frammenti)",
"delete": "Elimina ciclo/i"
}
},
"split_mode": {
"options": {
"auto": "Rileva automaticamente gli intervalli inattivi",
"manual": "Timestamp manuali"
}
},
"diagnostics_action": {
"options": {
"reprocess_history": "Manutenzione: rielabora e ottimizza i dati",
"clear_debug_data": "Cancella dati di debug (libera spazio)",
"wipe_history": "Cancella TUTTI i dati di questo dispositivo (irreversibile)",
"export_import": "Esporta/Importa JSON con impostazioni (copia/incolla)"
}
},
"export_import_mode": {
"options": {
"export": "Esporta tutti i dati",
"import": "Importa/Unisci dati"
}
},
"manage_cycles_action": {
"options": {
"auto_label_cycles": "Etichettatura automatica dei cicli precedenti",
"select_cycle_to_label": "Etichetta ciclo specifico",
"select_cycle_to_delete": "Elimina ciclo",
"interactive_editor": "Editor interattivo Unisci/Dividi",
"trim_cycle": "Taglia dati del ciclo"
}
},
"manage_profiles_action": {
"options": {
"create_profile": "Crea nuovo profilo",
"edit_profile": "Modifica/rinomina profilo",
"delete_profile": "Elimina profilo",
"profile_stats": "Statistiche del profilo",
"cleanup_profile": "Pulizia cronologia - Grafico ed eliminazione",
"assign_phases": "Assegna intervalli di fase"
}
},
"manage_phase_catalog_action": {
"options": {
"create_custom_phase": "Crea nuova fase",
"edit_custom_phase": "Modifica fase",
"delete_custom_phase": "Elimina fase"
}
},
"assign_profile_phases_action": {
"options": {
"add_range": "Aggiungi intervallo di fase",
"edit_range": "Modifica intervallo di fase",
"delete_range": "Elimina intervallo di fase",
"clear_ranges": "Cancella tutti gli intervalli",
"auto_detect_ranges": "Rileva fasi automaticamente",
"save_ranges": "Salva e torna"
}
},
"record_cycle_action": {
"options": {
"refresh_status": "Aggiorna stato",
"stop_recording": "Interrompi registrazione (salva ed elabora)",
"start_recording": "Avvia nuova registrazione",
"process_recording": "Elabora ultima registrazione (taglia e salva)",
"discard_recording": "Scarta ultima registrazione"
}
},
"record_process_save_mode": {
"options": {
"new_profile": "Crea nuovo profilo",
"existing_profile": "Aggiungi al profilo esistente",
"discard": "Scarta registrazione"
}
},
"resolve_feedback_action": {
"options": {
"confirm": "Conferma - rilevamento corretto",
"correct": "Correggi - scegli programma/durata",
"ignore": "Ignora - falso positivo/ciclo rumoroso",
"delete": "Elimina - rimuovi dalla cronologia"
}
},
"assign_profile_phases_auto_detect_action": {
"options": {
"name_phases": "Assegna nome e applica le fasi",
"cancel": "Torna indietro senza modifiche"
}
},
"trim_cycle_action": {
"options": {
"set_start": "Imposta punto di inizio",
"set_end": "Imposta punto di fine",
"reset": "Ripristina durata completa",
"apply": "Applica taglio",
"cancel": "Annulla"
}
},
"device_type": {
"options": {
"washing_machine": "Lavatrice",
"dryer": "Asciugatrice",
"washer_dryer": "Combinazione lavatrice-asciugatrice",
"dishwasher": "Lavastoviglie",
"coffee_machine": "Macchina da caffè (obsoleta)",
"ev": "Veicolo elettrico (obsoleto)",
"air_fryer": "Friggitrice ad aria",
"heat_pump": "Pompa di calore (obsoleto)",
"bread_maker": "Macchina per il pane",
"pump": "Pompa / Pompa di raccolta",
"oven": "Forno (deprecato)",
"other": "Altro (Avanzato)"
}
}
},
"services": {
"label_cycle": {
"name": "Etichetta ciclo",
"description": "Assegna un profilo esistente a un ciclo passato oppure rimuovi l'etichetta.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "Il dispositivo WashData da etichettare."
},
"cycle_id": {
"name": "ID ciclo",
"description": "L'ID del ciclo da etichettare."
},
"profile_name": {
"name": "Nome profilo",
"description": "Il nome di un profilo esistente (crea profili nel menu Gestisci profili). Lascia vuoto per rimuovere l'etichetta."
}
}
},
"create_profile": {
"name": "Crea profilo",
"description": "Crea un nuovo profilo (autonomo o basato su un ciclo di riferimento).",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "Il dispositivo WashData."
},
"profile_name": {
"name": "Nome profilo",
"description": "Nome per il nuovo profilo (es. \"Cotone pesante\", \"Delicati\")."
},
"reference_cycle_id": {
"name": "ID ciclo di riferimento",
"description": "ID ciclo facoltativo su cui basare questo profilo."
}
}
},
"delete_profile": {
"name": "Elimina profilo",
"description": "Elimina un profilo e, facoltativamente, rimuovi l'etichetta dai cicli che lo utilizzano.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "Il dispositivo WashData."
},
"profile_name": {
"name": "Nome profilo",
"description": "Il profilo da eliminare."
},
"unlabel_cycles": {
"name": "Rimuovi etichetta dai cicli",
"description": "Rimuovi l'etichetta del profilo dai cicli che utilizzano questo profilo."
}
}
},
"auto_label_cycles": {
"name": "Etichettatura automatica dei cicli precedenti",
"description": "Etichetta retroattivamente i cicli senza etichetta usando la corrispondenza dei profili.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "Il dispositivo WashData."
},
"confidence_threshold": {
"name": "Soglia di confidenza",
"description": "Confidenza di corrispondenza minima (0,50-0,95) per applicare le etichette."
}
}
},
"export_config": {
"name": "Esporta configurazione",
"description": "Esporta profili, cicli e impostazioni di questo dispositivo in un file JSON (per dispositivo).",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "Il dispositivo WashData da esportare."
},
"path": {
"name": "Percorso",
"description": "Percorso file assoluto facoltativo in cui scrivere (il valore predefinito è /config/ha_washdata_export_{entry}.json)."
}
}
},
"import_config": {
"name": "Importa configurazione",
"description": "Importa profili, cicli e impostazioni per questo dispositivo da un file JSON di esportazione (le impostazioni potrebbero essere sovrascritte).",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "Il dispositivo WashData in cui importare."
},
"path": {
"name": "Percorso",
"description": "Percorso assoluto al file JSON di esportazione da importare."
}
}
},
"submit_cycle_feedback": {
"name": "Invia feedback sul ciclo",
"description": "Conferma o correggi un programma rilevato automaticamente dopo un ciclo completato. Fornisci `entry_id` (avanzato) o `device_id` (consigliato).",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "Il dispositivo WashData (consigliato al posto di entry_id)."
},
"entry_id": {
"name": "ID voce",
"description": "L'ID della voce di configurazione per il dispositivo (alternativa a device_id)."
},
"cycle_id": {
"name": "ID ciclo",
"description": "L'ID ciclo mostrato nella notifica/nei registri di feedback."
},
"user_confirmed": {
"name": "Conferma programma rilevato",
"description": "Imposta su true se il programma rilevato è corretto."
},
"corrected_profile": {
"name": "Profilo corretto",
"description": "Se non confermato, fornisci il nome corretto del profilo/programma."
},
"corrected_duration": {
"name": "Durata corretta (secondi)",
"description": "Durata corretta facoltativa in secondi."
},
"notes": {
"name": "Note",
"description": "Note facoltative su questo ciclo."
}
}
},
"record_start": {
"name": "Avvia registrazione ciclo",
"description": "Avvia manualmente la registrazione di un ciclo pulito (ignora tutta la logica di corrispondenza).",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "Il dispositivo WashData su cui registrare."
}
}
},
"record_stop": {
"name": "Interrompi registrazione ciclo",
"description": "Interrompe la registrazione manuale.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "Il dispositivo WashData su cui interrompere la registrazione."
}
}
},
"trim_cycle": {
"name": "Taglia ciclo",
"description": "Ritaglia i dati di potenza di un ciclo passato a una finestra temporale specifica.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "Il dispositivo WashData."
},
"cycle_id": {
"name": "ID ciclo",
"description": "L'ID del ciclo da tagliare."
},
"trim_start_s": {
"name": "Inizio taglio (secondi)",
"description": "Conserva i dati a partire da questo offset in secondi. Predefinito: 0."
},
"trim_end_s": {
"name": "Fine taglio (secondi)",
"description": "Conserva i dati fino a questo offset in secondi. Predefinito = durata intera."
}
}
},
"pause_cycle": {
"name": "Pausa ciclo",
"description": "Mettere in pausa il ciclo attivo per un dispositivo WashData.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "Il dispositivo WashData da mettere in pausa."
}
}
},
"resume_cycle": {
"name": "Riprendi ciclo",
"description": "Riprendere un ciclo in pausa per un dispositivo WashData.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "Il dispositivo WashData da riprendere."
}
}
}
},
"entity": {
"binary_sensor": {
"running": {
"name": "In esecuzione"
},
"match_ambiguity": {
"name": "Ambiguità corrispondenza"
}
},
"sensor": {
"washer_state": {
"name": "Stato",
"state": {
"off": "Spento",
"idle": "In attesa",
"starting": "In avvio",
"running": "In esecuzione",
"paused": "In pausa",
"user_paused": "In pausa dall'utente",
"ending": "In chiusura",
"finished": "Completato",
"anti_wrinkle": "Antirughe",
"delay_wait": "In attesa di iniziare",
"interrupted": "Interrotto",
"force_stopped": "Fermato forzatamente",
"rinse": "Risciacquo",
"unknown": "Sconosciuto",
"clean": "Pulito"
}
},
"washer_program": {
"name": "Programma"
},
"time_remaining": {
"name": "Tempo rimanente"
},
"total_duration": {
"name": "Durata totale"
},
"cycle_progress": {
"name": "Avanzamento"
},
"current_power": {
"name": "Potenza attuale"
},
"elapsed_time": {
"name": "Tempo trascorso"
},
"debug_info": {
"name": "Informazioni di debug"
},
"match_confidence": {
"name": "Confidenza corrispondenza"
},
"top_candidates": {
"name": "Principali candidati",
"state": {
"none": "Nessuno"
}
},
"current_phase": {
"name": "Fase corrente"
},
"wash_phase": {
"name": "Fase"
},
"profile_cycle_count": {
"name": "Conteggio profilo {profile_name}",
"unit_of_measurement": "cicli"
},
"suggestions": {
"name": "Impostazioni suggerite disponibili"
},
"pump_runs_today": {
"name": "Avvii pompa (ultime 24 ore)"
},
"cycle_count": {
"name": "Conteggio cicli"
}
},
"select": {
"program_select": {
"name": "Programma ciclo",
"state": {
"auto_detect": "Rilevamento automatico"
}
}
},
"button": {
"force_end_cycle": {
"name": "Termina ciclo forzatamente"
},
"pause_cycle": {
"name": "Pausa ciclo"
},
"resume_cycle": {
"name": "Riprendi ciclo"
}
}
},
"exceptions": {
"device_id_required": {
"message": "È richiesto un device_id valido."
},
"cycle_id_required": {
"message": "È richiesto un cycle_id valido."
},
"profile_name_required": {
"message": "È richiesto un nome_profilo valido."
},
"device_not_found": {
"message": "Dispositivo non trovato."
},
"no_config_entry": {
"message": "Nessuna voce di configurazione trovata per il dispositivo."
},
"integration_not_loaded": {
"message": "Integrazione non caricata per questo dispositivo."
},
"cycle_not_found_or_no_power": {
"message": "Ciclo non trovato o privo di dati di potenza."
},
"trim_failed_empty_window": {
"message": "Taglio non riuscito - ciclo non trovato, nessun dato di potenza, oppure la finestra risultante è vuota."
},
"trim_invalid_range": {
"message": "trim_end_s deve essere maggiore di trim_start_s."
}
}
}