feat(oxibadge): add timesheet review and export screen
Check, format and test / build (push) Successful in 10m16s
Check, format and test / build (push) Successful in 10m16s
Add the month-review screen shown after records/employees load: an editable per-employee timesheet table with issue/rounding detection, bulk fixes (reorder stacked punches, add lunch break, round to step), and an export flow (single employee or all) wired to a new Rust export_timesheet command. Split into focused components under review/ instead of one large file, with shared i18n keys and a new export_timesheet IPC command. Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -34,7 +34,86 @@
|
||||
"errors": {
|
||||
"title": "Impossibile raggiungere il timbratore"
|
||||
},
|
||||
"done": {
|
||||
"message": "Non c'è niente da fare."
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user