Add universal cursor hover-to-translate detector and cache-busting headers

This commit is contained in:
chrisf committed 2026-10-21 04:42:53 +00:00
1 parent e8aef17029
commit e636350940
4 files changed
+206 -32

No files matched your search

+58 -1
View File
@@ -179,5 +179,62 @@ window.HOVER_DICT = {
"direkt": "directly / right", "café": "café (das Café)", "fall": "case (auf jeden Fall = definitely)", "bekommt": "gets / receives",
"per": "by / via", "mail": "email (die E-Mail)", "selbst": "even (selbst wenn = even if) / oneself", "so": "so / this way", "doch": "yet / however / after all",
"system": "system (das System)", "guten": "good (Guten Morgen/Tag)", "leid": "sorry (tut mir leid = I am sorry)", "klar": "clear / all right (Alles klar!)",
"sonst": "otherwise / else", "hoffentlich": "hopefully", "hallo": "hello", "herzlich": "warmly / cordially", "willkommen": "welcome (Herzlich willkommen!)"
"sonst": "otherwise / else", "hoffentlich": "hopefully", "hallo": "hello", "herzlich": "warmly / cordially", "willkommen": "welcome (Herzlich willkommen!)",
// UI, Headings, Grammar Terms & Study Prompts
"wortkraft": "WortKraft (Word Power / Vocabulary Strength)",
"übersicht": "Overview / Dashboard (die Übersicht)",
"wortschatz": "Vocabulary (der Wortschatz — literally 'word-treasure')",
"trainer": "Trainer / Practice Coach (der Trainer)",
"leseecke": "Reading Corner (die Leseecke)",
"sprachpraxis": "Speaking & Writing Practice (die Sprachpraxis)",
"wörterbuch": "Dictionary / Vocabulary Bank (das Wörterbuch)",
"übersetzer": "Translator (der Übersetzer)",
"an": "ON / at / to", "aus": "OFF / out of / from",
"passiven": "passive", "aktiven": "active", "aktive": "active", "aktiver": "active",
"wiedererkennen": "recognition / recognizing again (das Wiedererkennen)",
"fällig": "due (for review)", "fällige": "due",
"wiederholung": "review / repetition (die Wiederholung)", "wiederholungen": "reviews / repetitions",
"bereit": "ready", "abruf": "recall / retrieval (der Abruf)",
"gemeistert": "mastered", "training": "training (das Training)",
"artikel": "article (der/die/das — der Artikel)",
"trefferquote": "accuracy / hit rate (die Trefferquote)",
"eingabe": "input / entry (die Eingabe)",
"sätze": "sentences (die Sätze)", "satz": "sentence (der Satz)",
"geschrieben": "written", "produziert": "produced",
"täglicher": "daily", "schritte": "steps (die Schritte)", "schritt": "step (der Schritt)",
"lückensatz": "cloze / fill-in-the-blank sentence (der Lückensatz)",
"lückensätze": "fill-in-the-blank sentences",
"ergänze": "complete / fill in (imperative)", "fehlende": "missing", "fehlendes": "missing",
"wort": "word (das Wort)", "worte": "words",
"wortart": "part of speech (die Wortart)",
"nomen": "noun (das Nomen)", "verben": "verbs (die Verben)", "ausdrücke": "expressions (die Ausdrücke)",
"präposition": "preposition (die Präposition)", "konnektoren": "connectors (die Konnektoren)",
"maskulin": "masculine (der)", "feminin": "feminine (die)", "neutrum": "neuter (das)", "plural": "plural (die)",
"karteikarte": "flashcard (die Karteikarte)", "wortbau": "word structure / morphology (der Wortbau)",
"eselsbrücke": "mnemonic / memory trick (die Eselsbrücke)",
"kollokationen": "collocations / word pairings", "formen": "forms",
"alltagstipp": "everyday usage tip (der Alltagstipp)",
"alltag": "everyday life (der Alltag)", "alltagssituation": "everyday situation", "alltagssituationen": "everyday situations",
"geschichte": "story (die Geschichte)", "geschichten": "stories (die Geschichten)",
"textauswahl": "text selection (die Textauswahl)", "eigener": "own / custom", "text": "text (der Text)",
"zielwörter": "target words (die Zielwörter)", "zielwörtern": "target words (Dative)",
"fokus": "focus (der Fokus)", "tages": "of the day (des Tages)",
"mischen": "to shuffle / mix", "jetzt": "now", "trainieren": "to train / practice",
"prüfen": "to check / verify", "lösung": "solution / answer (die Lösung)", "zeigen": "to show",
"nochmal": "again / once more", "leicht": "easy / light",
"umdrehen": "to flip / turn over", "vorlesen": "to read aloud", "aussprache": "pronunciation (die Aussprache)",
"übersetzung": "translation (die Übersetzung)", "ausblenden": "to hide", "anzeigen": "to show / display",
"szenarien": "scenarios (die Szenarien)", "rollenspiele": "roleplays (die Rollenspiele)", "rollenspiel": "roleplay (das Rollenspiel)",
"aufgabe": "task / prompt (die Aufgabe)", "senden": "to send",
"starthilfe": "starter hint / jump-start (die Starthilfe)", "mustersatz": "sample sentence (der Mustersatz)", "einfügen": "to insert",
"dialog": "dialogue (der Dialog)", "starten": "to start", "üben": "to practice",
"archiv": "archive / bank (das Archiv)", "kategorien": "categories",
"bedeutung": "meaning (die Bedeutung)", "beispielsatz": "example sentence (der Beispielsatz)",
"speichern": "to save", "gespeichert": "saved", "abbrechen": "to cancel", "hinzufügen": "to add",
"einstellungen": "settings (die Einstellungen)", "fortschritt": "progress (der Fortschritt)",
"exportieren": "to export", "lernstand": "learning progress", "zurücksetzen": "to reset",
"verständnis": "understanding / comprehension (das Verständnis)",
"klicke": "click (imperative)", "wähle": "choose / select (imperative)", "versuche": "try (imperative)",
"fahre": "move / hover / drive", "maus": "mouse (die Maus)", "beliebiges": "any", "stammform": "base form / lemma"
};