Files
r701/oxibadge/src/lib/locales/it.json
T
nicolabelluti 0c320c39b0
Check, format and test / build (push) Successful in 10m25s
feat(oxibadge): warn before losing unexported review edits, add undo
The review screen now tracks whether there are edits not yet exported
and asks for confirmation before discarding them: clicking back, or
closing the app window entirely (intercepted via onCloseRequested,
which needed a core:window:allow-destroy capability that wasn't
granted by core:default). The confirmation dialog (ConfirmDialog.svelte)
is generic, built on a shared ModalFrame extracted from ExportModal so
the two don't duplicate the backdrop/box styling.

Also adds undo: a per-row button (icon-only, left of the note, shown
when that day has edits) reverts just that day instantly, and a
per-employee "undo all" (icon in a red box, last among the header's
tools) reverts every day for the current employee after a confirmation
dialog, since that one can't be undone itself.

ActionButton moves out of review/ next to IconButton/PillButton, since
ConfirmDialog (outside the review feature) now uses it too.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 13:46:31 +02:00

193 lines
8.9 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.
{
"loading": "Caricamento...",
"onboarding": {
"title": "Benvenuto!",
"subtitle": "Collega Oxibadge al tuo timbratore inserendo il suo indirizzo IP e la porta.",
"host_label": "Indirizzo IP",
"port_label": "Porta",
"hint": "Trovi l'indirizzo nelle impostazioni di rete del timbratore.",
"button": {
"idle": "Testa connessione",
"testing": "Connessione in corso...",
"retry": "Riprova"
}
},
"confirm_month": {
"title": "Conferma del mese",
"subtitle": "Stai per confermare le timbrature di questo mese. Tocca il mese o l'anno per cambiarli.",
"change_month_aria": "Mese: {month}, cambia",
"change_year_aria": "Anno: {year}, cambia",
"close_aria": "Chiudi selezione",
"choose_month_aria": "Scegli il mese",
"choose_year_aria": "Scegli l'anno",
"month_option_aria": "{month} {year}",
"button": "Vai alle timbrature"
},
"loading_records": {
"title": "Scarico le timbrature...",
"description": "Sto leggendo dal timbratore le timbrature di <strong>{period}</strong>. Può richiedere qualche secondo."
},
"loading_employees": {
"title": "Recupero i dipendenti...",
"description": "Sto leggendo i nomi dei dipendenti registrati sul timbratore. Ci vuole solo un attimo."
},
"errors": {
"title": "Impossibile raggiungere il timbratore"
},
"review": {
"title": "Revisione timbrature",
"day_word": "{n, plural, one {1 giorno} other {{n} giorni}}",
"to_check": "da controllare",
"to_round": "da arrotondare",
"to_check_cap": "Da controllare",
"to_round_cap": "Da arrotondare",
"shift_1": "1° turno",
"shift_2": "2° turno",
"issue_stacked": "{total} timbrature tutte sul {shift}",
"issue_invalid_time": "Orario non valido (usa HH:MM)",
"issue_lunch_missing": "Pausa pranzo non timbrata",
"issue_missing_out": "Manca l’uscita del {shift}",
"issue_missing_in": "Manca l’entrata del {shift}",
"issue_out_before_in": "Uscita prima dell’entrata ({shift})",
"info_unrounded": "Orari non arrotondati a {step} min",
"note_empty": "Nessuna timbratura",
"note_lunch_added": "Pausa pranzo aggiunta",
"note_shifts_fixed": "Turni sistemati",
"note_edited": "{n, plural, one {1 orario modificato} other {{n} orari modificati}}",
"note_rounded": "{n, plural, one {1 orario arrotondato} other {{n} orari arrotondati}}",
"export_done": "Esportazione completata: {who}",
"everyone": "tutti i dipendenti",
"only_unrounded": "{days} con orari non arrotondati",
"confirm_title_all": "Ci sono {summary}",
"confirm_title_one": "{name} ha {summary}",
"close_menu_aria": "Chiudi menu",
"no_records": "Nessuna timbratura trovata per questo mese.",
"back_to_month": "Torna alla scelta del mese",
"export": "Esporta",
"export_options_aria": "Altre opzioni di esportazione",
"all_employees": "Tutti i dipendenti",
"employee_count": "{n} dipendenti",
"all_good": "tutto a posto",
"all_good_cap": "Tutto a posto",
"only_name": "Solo {name}",
"employees_nav_aria": "Dipendenti",
"search_employee": "Cerca dipendente",
"days_to_check_aria": "{n} giorni da controllare",
"days_to_round_aria": "{n} giorni da arrotondare",
"no_problem_aria": "Nessun problema",
"employee_name_aria": "Nome del dipendente",
"save_name": "Salva nome",
"save": "Salva",
"cancel": "Annulla",
"edit_name": "Modifica nome",
"days_worked": "giorni lavorati",
"total_hours": "ore totali",
"edited": "modificati",
"fix_shifts_title": "Riordina in ordine di orario le timbrature finite tutte nello stesso turno",
"fix_shifts": "Sistema turni ({days})",
"fix_shifts_short": "Sistema turni",
"add_lunch_title": "Inserisce la pausa {start}–{end} nei giorni con solo entrata del mattino e uscita della sera",
"add_lunch": "Aggiungi pausa pranzo ({days})",
"lunch_short": "Pausa",
"round_title": "Arrotonda all'orario più vicino",
"round_all": "Arrotonda a {step} min ({days})",
"round_short": "Arrotonda",
"day_filter_aria": "Filtro giorni",
"all_days": "Tutti i giorni",
"col_day": "Giorno",
"col_in": "Entrata",
"col_out": "Uscita",
"col_hours": "Ore",
"col_notes": "Note",
"col_in_1": "Entrata 1° turno",
"col_out_1": "Uscita 1° turno",
"col_in_2": "Entrata 2° turno",
"col_out_2": "Uscita 2° turno",
"cell_aria": "{label}, {col}",
"cell_aria_stacked": "{label}, {col} ({index} di {total})",
"fix_shifts_day_aria": "Sistema i turni di {label}",
"add_lunch_day_aria": "Aggiungi pausa pranzo {start}–{end} a {label}",
"round_day_aria": "Arrotonda gli orari di {label}",
"no_rows": "Nessun giorno da controllare per questo dipendente.",
"cancel_export_aria": "Annulla esportazione",
"export_warning_issues": "Se esporti ora, questi giorni finiranno nel file con orari mancanti, da verificare o non arrotondati. Puoi tornare indietro e sistemarli, oppure esportare comunque.",
"export_warning_unrounded": "Gli orari sono completi, ma alcuni non sono arrotondati a {step} minuti. Puoi arrotondarli automaticamente prima di esportare, oppure esportarli così come sono.",
"back_to_review": "Torna alla revisione",
"round_and_export": "Arrotonda ed esporta",
"export_anyway": "Esporta comunque",
"leave_confirm_title": "Modifiche non esportate",
"leave_confirm_message": "Se esci ora, le modifiche fatte in questa revisione andranno perse.",
"leave_anyway": "Esci senza esportare",
"undo_day_aria": "Annulla le modifiche di {label}",
"undo_short": "Annulla",
"undo_all": "Annulla modifiche",
"undo_all_title": "Ripristina gli orari di questo dipendente a quelli letti dal timbratore",
"undo_all_confirm_title": "Annullare tutte le modifiche?",
"undo_all_confirm_message": "Tutti gli orari modificati per questo dipendente torneranno a quelli letti dal timbratore. L'operazione non si può annullare.",
"undo_all_confirm": "Annulla tutte le modifiche"
},
"settings": {
"title": "Impostazioni",
"device_title": "Timbratore",
"device_desc": "Il timbratore da cui Oxibadge scarica le timbrature.",
"device_label": "Indirizzo",
"status_testing": "Verifica…",
"status_ok": "Raggiungibile",
"status_idle": "Non verificato",
"edit_address": "Modifica indirizzo",
"test_connection": "Testa connessione",
"ip_label": "Indirizzo IP",
"port_label": "Porta",
"ip_invalid": "Formato non valido, es. 192.168.1.100",
"cancel": "Annulla",
"confirm": "Conferma",
"shifts_title": "Turni previsti",
"shifts_desc": "L'orario di lavoro standard. La pausa tra i due turni è quella usata da \"Aggiungi pausa pranzo\" nella revisione.",
"shift_1": "1° turno",
"shift_2": "2° turno",
"shift_in": "Entrata",
"shift_out": "Uscita",
"shift_error_format": "Inserisci tutti gli orari nel formato HH:MM.",
"shift_error_out1": "L'uscita del 1° turno deve essere dopo l'entrata.",
"shift_error_in2": "Il 2° turno deve iniziare dopo la fine del 1°.",
"shift_error_out2": "L'uscita del 2° turno deve essere dopo l'entrata.",
"hours_per_day_label": "Ore previste",
"per_day": "al giorno",
"break_label": "Pausa",
"round_title": "Arrotondamento orari",
"round_desc": "Gli orari vengono arrotondati al multiplo più vicino.",
"round_example": "Es. {from} → {to}.",
"round_label": "Minuti",
"minutes_short": "min",
"round_range": "Da 1 a 60 minuti",
"language_title": "Lingua",
"language_desc": "La lingua dell'interfaccia di Oxibadge.",
"save_idle": "Le modifiche vengono salvate automaticamente",
"save_saving": "Salvataggio…",
"save_saved": "Modifiche salvate",
"save_invalid": "Non salvato: correggi l'errore",
"save_failed": "Salvataggio non riuscito",
"employees_title": "Dipendenti",
"employees_count": "{n, plural, one {1 dipendente} other {{n} dipendenti}}",
"manage_employees": "Gestisci dipendenti",
"close_aria": "Chiudi",
"employee_name_aria": "Nome del dipendente #{id}",
"edit_name_aria": "Modifica nome di {name}",
"remove_name_aria": "Rimuovi {name} dalla cache",
"employee_remove_confirm": "Rimuovere {name}? Al prossimo controllo verrà chiesto di nuovo il nome.",
"remove": "Rimuovi",
"no_employees_found": "Nessun dipendente trovato.",
"employees_local_note": "I nomi modificati valgono solo in Oxibadge: il timbratore non viene mai scritto."
},
"new_employees": {
"title": "Nuovi dipendenti",
"subtitle": "{n, plural, one {Sul timbratore c'è 1 dipendente nuovo.} other {Sul timbratore ci sono {n} dipendenti nuovi.}}",
"hint": "Correggi i nomi se serve: valgono solo in Oxibadge.",
"missing_placeholder": "nome mancante",
"name_aria": "Nome del dipendente #{id}",
"renamed_count": "{n, plural, one {1 nome modificato} other {{n} nomi modificati}}",
"missing_count": "{n, plural, one {1 nome mancante} other {{n} nomi mancanti}}",
"continue": "Continua"
}
}