feat: FASE 2 - Client Base (layout, login, navbar, tema, i18n)

Implementazione completa del frontend Flask:
- Layout base.html con TailwindCSS CDN, dark/light theme, flash messages
- Navbar responsive role-based (Maker, MeasurementTec, Metrologist, Admin)
- Login page professionale con form + API integration
- Profilo utente: nome, lingua, tema, badge ruoli
- Sistema tema dark/light: CSS variables + Alpine.js store + localStorage
- i18n completo IT/EN: Flask-Babel (.po) + alpinejs-i18n (JSON)
- API Client riscritto: error handling normalizzato, no crash su 4xx/5xx
- CSRF protection con Flask-WTF su tutti i form
- Logo aziendale dinamico da system_settings
- Asset SVG: tmflow-logo.svg + tmflow-icon.svg (favicon)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Adriano
2026-02-07 01:10:13 +01:00
parent d6508e0ae8
commit edd4580a5a
17 changed files with 2230 additions and 52 deletions
@@ -0,0 +1,247 @@
# English translations for TieMeasureFlow
msgid ""
msgstr ""
"Project-Id-Version: TieMeasureFlow 1.0\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
# Login Page
msgid "Accedi al sistema"
msgstr "Sign in to your account"
msgid "Username"
msgstr "Username"
msgid "Password"
msgstr "Password"
msgid "Accedi"
msgstr "Sign In"
msgid "Credenziali non valide"
msgstr "Invalid credentials"
msgid "Inserisci username e password"
msgstr "Enter username and password"
msgid "Hai dimenticato la password?"
msgstr "Forgot password?"
msgid "Contatta l'amministratore"
msgstr "Contact administrator"
# Navbar
msgid "Misure"
msgstr "Measurements"
msgid "Ricette"
msgstr "Recipes"
msgid "Statistiche"
msgstr "Statistics"
msgid "Admin"
msgstr "Admin"
msgid "Utenti"
msgstr "Users"
msgid "Impostazioni"
msgstr "Settings"
msgid "Profilo"
msgstr "Profile"
msgid "Esci"
msgstr "Logout"
# Profile Page
msgid "Profilo Utente"
msgstr "User Profile"
msgid "Nome Visualizzato"
msgstr "Display Name"
msgid "Lingua"
msgstr "Language"
msgid "Tema"
msgstr "Theme"
msgid "Chiaro"
msgstr "Light"
msgid "Scuro"
msgstr "Dark"
msgid "Ruoli"
msgstr "Roles"
msgid "Salva Modifiche"
msgstr "Save Changes"
msgid "Profilo aggiornato con successo"
msgstr "Profile updated successfully"
# Flash Messages
msgid "Benvenuto, %(name)s!"
msgstr "Welcome, %(name)s!"
msgid "Logout effettuato"
msgstr "Logged out successfully"
msgid "Effettua il login per continuare"
msgstr "Please log in to continue"
msgid "Errore di connessione al server"
msgstr "Server connection error"
# Common UI
msgid "Caricamento..."
msgstr "Loading..."
msgid "Salva"
msgstr "Save"
msgid "Annulla"
msgstr "Cancel"
msgid "Conferma"
msgstr "Confirm"
msgid "Elimina"
msgstr "Delete"
msgid "Modifica"
msgstr "Edit"
msgid "Cerca..."
msgstr "Search..."
msgid "Nessun risultato"
msgstr "No results"
msgid "Errore"
msgstr "Error"
msgid "Successo"
msgstr "Success"
msgid "Attenzione"
msgstr "Warning"
msgid "Info"
msgstr "Info"
msgid "Pagina"
msgstr "Page"
msgid "di"
msgstr "of"
msgid "Precedente"
msgstr "Previous"
msgid "Successivo"
msgstr "Next"
# Measurements
msgid "Conforme"
msgstr "Pass"
msgid "Non Conforme"
msgstr "Fail"
msgid "Valore"
msgstr "Value"
msgid "Prossima misura"
msgstr "Next measurement"
# Numpad
msgid "Tastierino Numerico"
msgstr "Numeric Keypad"
msgid "Cancella"
msgstr "Clear"
msgid "Virgola"
msgstr "Decimal"
msgid "Chiudi"
msgstr "Close"
# Theme
msgid "Cambia tema"
msgstr "Toggle theme"
# Language
msgid "Cambia lingua"
msgstr "Switch language"
msgid "Italiano"
msgstr "Italian"
msgid "English"
msgstr "English"
# Additional Login Page
msgid "Sistema di misurazione industriale"
msgstr "Industrial measurement system"
# Additional Profile Page
msgid "Gestisci le tue informazioni e preferenze"
msgstr "Manage your information and preferences"
msgid "Informazioni Account"
msgstr "Account Information"
msgid "Il nome utente non può essere modificato"
msgstr "Username cannot be changed"
msgid "Nome da visualizzare nell'interfaccia"
msgstr "Name to display in the interface"
msgid "Lingua Preferita"
msgstr "Preferred Language"
msgid "Tema Preferito"
msgstr "Preferred Theme"
msgid "Indietro"
msgstr "Back"
msgid "Azioni Account"
msgstr "Account Actions"
msgid "Esci dal sistema"
msgstr "Logout from system"
msgid "Termina la sessione corrente e torna alla schermata di login"
msgstr "End current session and return to login screen"
msgid "Preferenze"
msgstr "Preferences"
# Error Messages
msgid "Errore durante l'aggiornamento del profilo"
msgstr "Error updating profile"
msgid "Errore di connessione al server: %(error)s"
msgstr "Server connection error: %(error)s"
msgid "Errore nel caricamento del profilo: %(error)s"
msgstr "Error loading profile: %(error)s"
# Roles
msgid "Maker"
msgstr "Maker"
msgid "MeasurementTec"
msgstr "Measurement Technician"
msgid "Metrologist"
msgstr "Metrologist"