[FIX] i18n V3: chiavi mr.title/normative.title mancanti (si vedeva la chiave)

La flotta V3 aveva messo data-i18n="mr.title"/"normative.title" sugli <h1> di
misure-requisiti e normative, ma le chiavi non erano in i18n.js → I18n.t()
ritorna la chiave → il titolo mostrava "mr.title"/"normative.title". Aggiunte
le 2 chiavi (it+en). Cache-buster i18n.js ?v=20260627p su tutte le pagine.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-06-27 17:36:39 +02:00
co-authored by Claude Opus 4.8
parent a223923fd6
commit 95e77a668a
36 changed files with 38 additions and 35 deletions
+1 -1
View File
@@ -166,7 +166,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth check ───────────────────────────────────────────
+1 -1
View File
@@ -89,7 +89,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth check ───────────────────────────────────────────
+1 -1
View File
@@ -96,7 +96,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth check ───────────────────────────────────────────
+1 -1
View File
@@ -1126,7 +1126,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
if (!checkAuth()) throw new Error('Not authenticated');
+1 -1
View File
@@ -274,7 +274,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth check ───────────────────────────────────────────
+1 -1
View File
@@ -381,7 +381,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth & Init ─────────────────────────────────────────
+1 -1
View File
@@ -194,7 +194,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
'use strict';
+1 -1
View File
@@ -143,7 +143,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
if (!checkAuth()) throw new Error('Not authenticated');
+1 -1
View File
@@ -196,7 +196,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script src="/js/competenze.js?v=20260627"></script>
<script>
+1 -1
View File
@@ -102,7 +102,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script src="/js/connettori-discovery.js?v=20260627"></script>
<script>
+1 -1
View File
@@ -159,7 +159,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
'use strict';
+1 -1
View File
@@ -226,7 +226,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Icone inline (Lucide stroke) usate nelle stringhe HTML generate dal JS.
+1 -1
View File
@@ -116,7 +116,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script src="/js/dashboard.js?v=20260627"></script>
<script>
+1 -1
View File
@@ -1181,7 +1181,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// La guida è accessibile anche da non autenticati (utile per onboarding)
+1 -1
View File
@@ -363,7 +363,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth & Init ──────────────────────────────────────────────
+1 -1
View File
@@ -935,7 +935,7 @@ curl -H <span class="str">"X-API-Key: nis2_TUA_CHIAVE"</span> \
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
if (!checkAuth()) throw new Error('Not authenticated');
+1 -1
View File
@@ -164,7 +164,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
'use strict';
+1 -1
View File
@@ -203,7 +203,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script src="/js/isms.js?v=20260627v3"></script>
<script>
+3
View File
@@ -116,6 +116,9 @@ const I18n = (function () {
'nav.grp_lexiso': { it: 'Lex e ISO', en: 'Law & ISO' },
'nav.grp_ai': { it: 'AI', en: 'AI' },
'nav.grp_guide': { it: 'Guida', en: 'Guide' },
// ── Titoli pagina aggiunti dalla flotta V3 (mancavano → si vedeva la chiave) ──
'mr.title': { it: 'Misure e Requisiti', en: 'Measures & Requirements' },
'normative.title': { it: 'Aggiornamenti Normativi', en: 'Regulatory Updates' },
// ── Dashboard ──────────────────────────────────
'dashboard.title': { it: 'Dashboard', en: 'Dashboard' },
+1 -1
View File
@@ -179,7 +179,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script src="/js/kb.js"></script>
<script>
+1 -1
View File
@@ -151,7 +151,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
'use strict';
+1 -1
View File
@@ -179,7 +179,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
'use strict';
+1 -1
View File
@@ -141,7 +141,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth + chrome + i18n + help ──────────────────────────
+1 -1
View File
@@ -155,7 +155,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script src="/js/organigramma.js?v=20260627"></script>
<script>
+1 -1
View File
@@ -344,7 +344,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth & Init ─────────────────────────────────────────
+1 -1
View File
@@ -145,7 +145,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script src="/js/raci.js?v=20260627"></script>
<script>
+1 -1
View File
@@ -236,7 +236,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth & Init ─────────────────────────────────────────
+1 -1
View File
@@ -161,7 +161,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
'use strict';
+1 -1
View File
@@ -506,7 +506,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth & Init ──────────────────────────────────────────────
+1 -1
View File
@@ -739,7 +739,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth check ───────────────────────────────────────────
+1 -1
View File
@@ -219,7 +219,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
'use strict';
+1 -1
View File
@@ -214,7 +214,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
'use strict';
+1 -1
View File
@@ -546,7 +546,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth & Init ─────────────────────────────────────────
+1 -1
View File
@@ -194,7 +194,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth & Init (ordine V3) ─────────────────────────────
+1 -1
View File
@@ -262,7 +262,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
if (!checkAuth()) throw new Error('Not authenticated');
+1 -1
View File
@@ -147,7 +147,7 @@
<script src="/js/common.js?v=20260627v3"></script>
<script src="/vendor/lucide/lucide.min.js"></script>
<script src="/js/topnav-v3.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627n"></script>
<script src="/js/i18n.js?v=20260627p"></script>
<script src="/js/help.js?v=20260627n"></script>
<script>
// ── Auth + chrome + i18n + help ──────────────────────────────