From 0e78ec24c1c5138c585c3df9feebf3207ad694bf Mon Sep 17 00:00:00 2001 From: DevEnv nis2-agile Date: Fri, 20 Feb 2026 11:17:04 +0100 Subject: [PATCH] [FIX] i18n funzionante + bug audit.html + help system MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - common.js: aggiunto i18nKey a navItems, data-i18n su sezioni e voci sidebar → toggle IT/EN ora traduce la navigazione in tempo reale - Tutte e 10 le pagine HTML: aggiunto data-i18n="*.title" agli h2 (dashboard, assessment, risks, incidents, policies, supply-chain, training, assets, reports, settings) - FIX BUG: sidebar puntava ad audit.html (inesistente) → corretto in reports.html - HelpSystem: funziona correttamente in tutte le 10 pagine (content-header-actions presente, init() chiamato) Co-Authored-By: Claude Sonnet 4.6 --- public/assessment.html | 2 +- public/assets.html | 2 +- public/dashboard.html | 2 +- public/incidents.html | 2 +- public/js/common.js | 38 ++++++++++++++++++++------------------ public/policies.html | 2 +- public/reports.html | 2 +- public/risks.html | 2 +- public/settings.html | 2 +- public/supply-chain.html | 2 +- public/training.html | 2 +- 11 files changed, 30 insertions(+), 28 deletions(-) diff --git a/public/assessment.html b/public/assessment.html index bb93b13..4cf30b6 100644 --- a/public/assessment.html +++ b/public/assessment.html @@ -14,7 +14,7 @@
-

Gap Analysis

+

Gap Analysis NIS2

diff --git a/public/dashboard.html b/public/dashboard.html index 68a8aee..127cbee 100644 --- a/public/dashboard.html +++ b/public/dashboard.html @@ -14,7 +14,7 @@
-

Dashboard

+

Dashboard

diff --git a/public/incidents.html b/public/incidents.html index da9ccef..81beefb 100644 --- a/public/incidents.html +++ b/public/incidents.html @@ -262,7 +262,7 @@
-

Gestione Incidenti

+

Gestione Incidenti

diff --git a/public/js/common.js b/public/js/common.js index 0797e8c..2b66f72 100644 --- a/public/js/common.js +++ b/public/js/common.js @@ -183,33 +183,33 @@ function loadSidebar() { const navItems = [ { - label: 'Principale', + label: 'Principale', i18nKey: 'nav.main', items: [ - { name: 'Dashboard', href: 'dashboard.html', icon: iconGrid() }, - { name: 'Gap Analysis', href: 'assessment.html', icon: iconClipboardCheck() }, + { name: 'Dashboard', href: 'dashboard.html', icon: iconGrid(), i18nKey: 'nav.dashboard' }, + { name: 'Gap Analysis', href: 'assessment.html', icon: iconClipboardCheck(), i18nKey: 'nav.gap_analysis' }, ] }, { - label: 'Gestione', + label: 'Gestione', i18nKey: 'nav.management', items: [ - { name: 'Rischi', href: 'risks.html', icon: iconShieldExclamation() }, - { name: 'Incidenti', href: 'incidents.html', icon: iconBell() }, - { name: 'Policy', href: 'policies.html', icon: iconDocumentText() }, - { name: 'Supply Chain', href: 'supply-chain.html', icon: iconLink() }, + { name: 'Rischi', href: 'risks.html', icon: iconShieldExclamation(), i18nKey: 'nav.risks' }, + { name: 'Incidenti', href: 'incidents.html', icon: iconBell(), i18nKey: 'nav.incidents' }, + { name: 'Policy', href: 'policies.html', icon: iconDocumentText(), i18nKey: 'nav.policies' }, + { name: 'Supply Chain', href: 'supply-chain.html', icon: iconLink(), i18nKey: 'nav.supply_chain' }, ] }, { - label: 'Operativo', + label: 'Operativo', i18nKey: 'nav.operations', items: [ - { name: 'Formazione', href: 'training.html', icon: iconAcademicCap() }, - { name: 'Asset', href: 'assets.html', icon: iconServer() }, - { name: 'Audit & Report', href: 'audit.html', icon: iconChartBar() }, + { name: 'Formazione', href: 'training.html', icon: iconAcademicCap(), i18nKey: 'nav.training' }, + { name: 'Asset', href: 'assets.html', icon: iconServer(), i18nKey: 'nav.assets' }, + { name: 'Audit & Report',href: 'reports.html', icon: iconChartBar(), i18nKey: 'nav.audit' }, ] }, { - label: 'Sistema', + label: 'Sistema', i18nKey: 'nav.system', items: [ - { name: 'Impostazioni', href: 'settings.html', icon: iconCog() }, + { name: 'Impostazioni', href: 'settings.html', icon: iconCog(), i18nKey: 'nav.settings' }, { name: 'Architettura', href: 'architecture.html', icon: iconCubeTransparent() }, ] } @@ -236,10 +236,12 @@ function loadSidebar() { // Nav sections navHTML += ''; @@ -248,8 +250,8 @@ function loadSidebar() { navHTML += `