This commit is contained in:
2025-11-30 00:34:56 +01:00
parent 337c847d79
commit cf0c43a211
38 changed files with 4024 additions and 1325 deletions

View File

@@ -42,6 +42,14 @@ XX. **Nome Problema (FIX/IMPLEMENTATO DATA):** - **Problema:** Descrizione breve
**NON dimenticare:** Questo file è la memoria persistente tra sessioni. Se non viene aggiornato, il lavoro fatto andrà perso e dovrà essere riscoperto.
### Rispetto delle Traduzioni (i18n)
**OBBLIGATORIO:** È severamente vietato inserire stringhe hardcoded nel codice frontend.
- **TUTTI** i testi visibili all'utente devono usare `useTranslation` e le chiavi definite in `translation.json`.
- **Nuove stringhe:** Se serve un nuovo testo, aggiungerlo PRIMA in `it/translation.json` e `en/translation.json`, poi usarlo nel codice.
- **Placeholder:** Usare i placeholder (es. `{{value}}`) per valori dinamici, mai concatenazione di stringhe.
- **Date/Numeri:** Usare i formattatori di `react-i18next` o `Intl` per date e numeri.
---
## Quick Start - Session Recovery
@@ -65,6 +73,24 @@ XX. **Nome Problema (FIX/IMPLEMENTATO DATA):** - **Problema:** Descrizione breve
- Persistenza impostazioni nel browser (localStorage)
- Adattamento automatico componenti MUI
- **NUOVA FEATURE: Sistema Internazionalizzazione (i18n)** - COMPLETATO
- **Obiettivo:** Implementare un sistema robusto per la gestione delle traduzioni (Italiano/Inglese)
- **Stack Tecnologico:** `i18next`, `react-i18next`, `i18next-http-backend`, `i18next-browser-languagedetector`
- **Implementazione:**
- `i18n.ts` - Configurazione inizializzazione i18next con backend loader e detector
- `public/locales/{lang}/translation.json` - File di traduzione JSON separati per lingua
- Refactoring `LanguageContext.tsx` per usare `useTranslation` hook
- Aggiornamento `Layout.tsx` e `SettingsSelector.tsx` per usare chiavi di traduzione
- Traduzione completa delle pagine:
- `Dashboard.tsx`
- `EventiPage.tsx`
- `ClientiPage.tsx`
- **Vantaggi:**
- Caricamento asincrono delle traduzioni
- Rilevamento automatico lingua browser
- Struttura scalabile per future lingue
- Namespace per organizzazione chiavi (common, menu, modules)
- **NUOVA FEATURE: Gestione Inventario (Frontend)** - COMPLETATO
- **Obiettivo:** Interfaccia utente per la gestione completa degli inventari fisici
@@ -90,6 +116,17 @@ XX. **Nome Problema (FIX/IMPLEMENTATO DATA):** - **Problema:** Descrizione breve
- **Soluzione:** Corretti i percorsi in `useWarehouseNavigation.ts` per corrispondere a `routes.tsx`
- **File modificati:** `frontend/src/modules/warehouse/hooks/useWarehouseNavigation.ts`
- **FIX: Traduzioni Warehouse non funzionanti** - RISOLTO
- **Problema:** Le traduzioni del modulo warehouse mostravano i placeholder (chiavi) invece del testo
- **Causa:** La sezione `warehouse` in `translation.json` era erroneamente annidata dentro l'oggetto `reports` invece di essere alla radice
- **Soluzione:** Spostata la sezione `warehouse` al livello principale in `translation.json` (IT e EN)
- **File modificati:** `frontend/public/locales/it/translation.json`, `frontend/public/locales/en/translation.json`
- **FIX: Traduzioni Custom Fields** - RISOLTO
- **Problema:** Mancavano traduzioni per la pagina dei custom fields e per i tipi di campo
- **Soluzione:** Aggiunte chiavi mancanti (`noFields`, `multiselect`, `sectionTitle`), corretto casing per entità warehouse, aggiornato codice per usare chiavi corrette
- **File modificati:** `frontend/public/locales/it/translation.json`, `frontend/public/locales/en/translation.json`, `frontend/src/pages/CustomFieldsAdminPage.tsx`, `frontend/src/components/customFields/CustomFieldsRenderer.tsx`
- **FIX: Campo Codice Readonly e Codice Alternativo** - COMPLETATO
- **Obiettivo:** Il campo "Codice" deve essere sempre auto-generato (non modificabile), aggiungere campo "Codice Alternativo" opzionale
- **Backend modificato:**