KRITISCH: echten Ursprung der "rohen Übersetzungs-Schlüssel"-Bugs gefunden und behoben
Beide heutigen Meldungen ("pr_quote_open...", "ts_profil_ansehen") waren
KEIN Caching-Problem, sondern ein echter Bug in main.js: nach Klick auf
einen internen Link und dann "Zurück" (oder generell jede zweite Seite
innerhalb einer Browser-Sitzung) wurde die seiteneigene i18n-*.js-Datei
nie erneut ausgeführt -> window.I18N_PAGE blieb auf null -> jede
Übersetzung fiel auf den rohen Schlüsselnamen zurück.
Ursache: skripteUebernehmen() erkennt i18n-Dateien am Muster ".js$"
(String-Ende). Seit die Cache-Busting-Version ("?v=...") an jede
Skript-URL angehängt wird, endet der echte src-Wert aber nie mehr auf
".js", sondern auf ".js?v=...". Der Test schlug seitdem für JEDE
i18n-Datei fehl und sie wurde wie eine normale, schon geladene Datei
behandelt und beim nächsten Seitenwechsel übersprungen.
Mit Playwright reproduziert (Klick auf Profil-Kachel + Zurück-Button)
und nach dem Fix erneut verifiziert -- betraf praktisch jede Seite mit
eigenem i18n-*.js beim Navigieren per Klick, nicht nur team-scouts.html.
Cache-Busting-Version auf 20260821i erhöht.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
+16
-1
@@ -925,7 +925,22 @@
|
||||
// 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);
|
||||
//
|
||||
// BUGFIX 21.08.2026 (Nutzer-Report: rohe Übersetzungs-Schlüssel wie
|
||||
// "ts_profil_ansehen" sichtbar, aber NUR nachdem man auf einen Link
|
||||
// geklickt und dann "Zurück" gedrückt hat): das Muster endete bisher
|
||||
// auf ".js$" (striktes String-Ende). Seit die Cache-Busting-Version
|
||||
// ("?v=20260821...") an JEDE Skript-URL angehängt wird, endet der
|
||||
// echte src-Wert aber nie mehr auf ".js", sondern auf ".js?v=...".
|
||||
// Der Test schlug dadurch für JEDE i18n-Datei fehl -> istSprachDatei
|
||||
// war immer false -> die i18n-Datei wurde wie eine normale, schon
|
||||
// geladene Datei übersprungen und NIE erneut ausgeführt, sobald man
|
||||
// per Klick auf eine andere Seite und wieder zurück navigiert ist.
|
||||
// window.I18N_PAGE blieb dadurch dauerhaft auf null (von der
|
||||
// Zwischenseite zurückgesetzt) stehen -- jede Übersetzung fiel auf
|
||||
// den rohen Schlüsselnamen zurück. Fix: ".js" darf jetzt auch von
|
||||
// einem "?..." gefolgt werden, nicht nur vom exakten String-Ende.
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user