Files
r701/oxibadge/src/lib/locales/it.json
T
nicolabelluti da5daf5bca
Check, format and test / build (push) Successful in 11m10s
fix(oxibadge): accept hostnames and FQDNs for the time clock address
The "Edit address" field in Settings only accepted an IPv4 address
(IPV4.test), rejecting a bare hostname (e.g. "timbratore") or FQDN
(e.g. "timbratore.lan") even though the underlying connection (Rust's
ToSocketAddrs) already resolves those fine. Onboarding had no such
restriction. Replaced the IPv4-only check with isValidHost (IPv4 OR a
standard DNS hostname), dropped the numeric-only keyboard hint on that
field, and reworded the labels/placeholder error to not imply IP-only.

Also makes "Edit address" test the connection before accepting it,
instead of saving unconditionally: ActionButton gained a `disabled`
prop so the confirm/cancel buttons can be locked (with a spinner on
confirm) while the test is in flight, and the edit form now only
closes on a successful test, staying open with the raw error shown
otherwise.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 14:05:12 +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 e la porta.",
"host_label": "Indirizzo",
"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",
"port_label": "Porta",
"ip_invalid": "Formato non valido, es. 192.168.1.100 o timbratore.lan",
"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"
}
}