diff --git a/assets/js/main.js b/assets/js/main.js index 3a47673..ce37b1d 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -638,13 +638,22 @@ const src = alt.getAttribute("src"); if (src) { + // i18n-*.js-Dateien setzen nur window.I18N_PAGE neu (kein Zustand, + // keine Event-Listener) — die MÜSSEN bei jedem Besuch der Seite + // erneut laufen, sonst bleibt window.I18N_PAGE nach einem + // Zwischenstopp auf einer anderen Seite (die es zurückgesetzt hat) + // fälschlich leer, wenn man z.B. zur Startseite zurückkehrt. + const istSprachDatei = /\/i18n-[^/]+\.js$/.test(src); + // Schon vorhanden (z.B. main.js oder eine bereits geladene Datendatei): // nicht erneut ausführen — sonst gäbe es doppelte Deklarationen. - if (schonGeladen.has(src)) continue; + if (schonGeladen.has(src) && !istSprachDatei) continue; schonGeladen.add(src); await new Promise((fertig) => { const neu = document.createElement("script"); - neu.src = src; + neu.src = src; // bei i18n-Dateien bewusst dieselbe URL — der Browser + // bedient das aus dem HTTP-Cache, das