-- ChatTranslateDictionary_Vocab5.lua
--
-- Fünftes EN-DE Wortschatz-Modul: Bauernhoftiere, Insekten, Gesten,
-- Fitness, Mythologie, Luftfahrt, Fertigung, Fotografie, Theater,
-- Handwerk, Streaming/Content-Creation, Social Media, Erste Hilfe u.a.
-- Enthält NUR Wörter, die in keinem vorherigen Modul vorkommen.
-- Muss NACH allen vorherigen Dateien geladen werden.

CT_Dictionary = CT_Dictionary or {}
CT_Dictionary.words = CT_Dictionary.words or {}

local vocab5 = {
    -- Bauernhoftiere weitere
    { en = "rooster", de = "Hahn" },
    { en = "hen", de = "Henne" },
    { en = "llama", de = "Lama" },
    { en = "donkey", de = "Esel" },
    { en = "mule", de = "Maultier" },
    { en = "ox", de = "Ochse" },
    { en = "calf", de = "Kalb" },
    { en = "piglet", de = "Ferkel" },
    { en = "lamb", de = "Lamm" },
    { en = "foal", de = "Fohlen" },

    -- Insekten weitere
    { en = "wasp", de = "Wespe" },
    { en = "beetle", de = "Käfer" },
    { en = "caterpillar", de = "Raupe" },
    { en = "grasshopper", de = "Heuschrecke" },
    { en = "cricket (insect)", de = "Grille" },
    { en = "dragonfly", de = "Libelle" },
    { en = "moth", de = "Nachtfalter" },
    { en = "cockroach", de = "Kakerlake" },
    { en = "termite", de = "Termite" },
    { en = "ladybug", de = "Marienkäfer" },
    { en = "centipede", de = "Tausendfüßler" },
    { en = "mosquito", de = "Mücke" },

    -- Gesten und Körperbewegungen
    { en = "to nod", de = "nicken" },
    { en = "to wave (gesture)", de = "winken" },
    { en = "to point", de = "zeigen (Geste)" },
    { en = "to kneel", de = "knien" },
    { en = "to crawl", de = "krabbeln" },
    { en = "to bend", de = "sich beugen" },
    { en = "to stretch", de = "sich strecken" },
    { en = "to lean", de = "sich lehnen" },
    { en = "to shrug", de = "mit den Schultern zucken" },
    { en = "to wink", de = "zwinkern" },
    { en = "to blink", de = "blinzeln" },
    { en = "to nod off", de = "einnicken" },
    { en = "to tiptoe", de = "auf Zehenspitzen gehen" },
    { en = "to stumble", de = "stolpern" },
    { en = "to slip", de = "ausrutschen" },

    -- Kommunikation und Unterricht
    { en = "to explain", de = "erklären" },
    { en = "to describe", de = "beschreiben" },
    { en = "to discuss", de = "diskutieren" },
    { en = "to present (verb)", de = "präsentieren" },
    { en = "to summarize", de = "zusammenfassen" },
    { en = "to argue", de = "argumentieren" },
    { en = "to persuade", de = "überzeugen" },
    { en = "to interview", de = "interviewen" },
    { en = "to debate", de = "debattieren" },
    { en = "to clarify", de = "klären" },
    { en = "to emphasize", de = "betonen" },
    { en = "to interrupt (speech)", de = "unterbrechen (Rede)" },
    { en = "to quote", de = "zitieren" },
    { en = "to paraphrase", de = "umschreiben" },

    -- Fitness und Wellness
    { en = "workout", de = "Training" },
    { en = "stretching", de = "Dehnung" },
    { en = "cardio", de = "Cardiotraining" },
    { en = "strength training", de = "Krafttraining" },
    { en = "meditation", de = "Meditation" },
    { en = "mindfulness", de = "Achtsamkeit" },
    { en = "relaxation", de = "Entspannung" },
    { en = "posture", de = "Körperhaltung" },
    { en = "flexibility", de = "Flexibilität (Körper)" },
    { en = "endurance", de = "Ausdauer" },
    { en = "personal trainer", de = "Personal Trainer" },
    { en = "physical therapy", de = "Physiotherapie" },
    { en = "massage", de = "Massage" },
    { en = "wellness", de = "Wellness" },

    -- Versicherung und Steuern weitere
    { en = "income tax", de = "Einkommensteuer" },
    { en = "sales tax", de = "Umsatzsteuer" },
    { en = "tax return", de = "Steuererklärung" },
    { en = "liability insurance", de = "Haftpflichtversicherung" },
    { en = "health insurance", de = "Krankenversicherung" },
    { en = "life insurance", de = "Lebensversicherung" },
    { en = "beneficiary", de = "Begünstigter" },
    { en = "underwriter", de = "Versicherer" },
    { en = "risk assessment", de = "Risikobewertung" },

    -- Bildungsstufen und Geschichte
    { en = "kindergarten", de = "Kindergarten" },
    { en = "elementary school", de = "Grundschule" },
    { en = "high school", de = "Oberschule" },
    { en = "preschool", de = "Vorschule" },
    { en = "civilization", de = "Zivilisation" },
    { en = "empire", de = "Reich (Geschichte)" },
    { en = "dynasty", de = "Dynastie" },
    { en = "revolution", de = "Revolution" },
    { en = "colony", de = "Kolonie" },
    { en = "archive", de = "Archiv" },
    { en = "artifact", de = "Artefakt" },
    { en = "monarchy", de = "Monarchie" },
    { en = "medieval", de = "mittelalterlich" },

    -- Mythologie und Folklore
    { en = "myth", de = "Mythos" },
    { en = "legend", de = "Legende" },
    { en = "dragon (myth)", de = "Drache (Mythos)" },
    { en = "ghost", de = "Geist" },
    { en = "fairy", de = "Fee" },
    { en = "witch", de = "Hexe" },
    { en = "wizard", de = "Zauberer" },
    { en = "giant (myth)", de = "Riese" },
    { en = "goblin", de = "Kobold" },
    { en = "mermaid", de = "Meerjungfrau" },
    { en = "werewolf", de = "Werwolf" },
    { en = "vampire", de = "Vampir" },
    { en = "phoenix", de = "Phönix" },
    { en = "unicorn", de = "Einhorn" },

    -- Segeln und Luftfahrt
    { en = "cockpit", de = "Cockpit" },
    { en = "runway", de = "Landebahn" },
    { en = "altitude", de = "Höhe (Flug)" },
    { en = "turbulence", de = "Turbulenz" },
    { en = "flight attendant", de = "Flugbegleiter" },
    { en = "mast (sailing)", de = "Mast" },
    { en = "keel", de = "Kiel" },
    { en = "rudder", de = "Ruder" },
    { en = "deck", de = "Deck" },
    { en = "crew", de = "Mannschaft (Schiff/Flug)" },
    { en = "cargo", de = "Fracht" },

    -- Fertigung und Logistik
    { en = "assembly line", de = "Fließband" },
    { en = "manufacturing", de = "Herstellung" },
    { en = "quality control", de = "Qualitätskontrolle" },
    { en = "inventory", de = "Bestand" },
    { en = "shipment", de = "Sendung" },
    { en = "supply chain", de = "Lieferkette" },
    { en = "procurement", de = "Beschaffung" },
    { en = "logistics", de = "Logistik" },
    { en = "freight", de = "Frachtgut" },

    -- Fotografie und Filmtechnik
    { en = "lens", de = "Objektiv" },
    { en = "aperture", de = "Blende" },
    { en = "shutter", de = "Verschluss (Kamera)" },
    { en = "exposure", de = "Belichtung" },
    { en = "focus (camera)", de = "Fokus" },
    { en = "tripod", de = "Stativ" },
    { en = "flash (camera)", de = "Blitz (Kamera)" },
    { en = "zoom", de = "Zoom" },
    { en = "resolution", de = "Auflösung" },
    { en = "editing (video)", de = "Videobearbeitung" },
    { en = "footage", de = "Filmmaterial" },

    -- Theater und Zirkus
    { en = "stage", de = "Bühne" },
    { en = "rehearsal", de = "Probe" },
    { en = "performance", de = "Aufführung" },
    { en = "costume", de = "Kostüm" },
    { en = "acrobat", de = "Akrobat" },
    { en = "clown", de = "Clown" },
    { en = "juggler", de = "Jongleur" },
    { en = "magician", de = "Zauberkünstler" },
    { en = "trapeze", de = "Trapez" },

    -- Brett- und Kartenspiele weitere
    { en = "chess piece", de = "Schachfigur" },
    { en = "king (chess)", de = "König (Schach)" },
    { en = "queen (chess)", de = "Dame (Schach)" },
    { en = "checkmate", de = "Schachmatt" },
    { en = "dice", de = "Würfel (Spiel)" },
    { en = "poker", de = "Poker" },
    { en = "bluff", de = "Bluff" },
    { en = "shuffle", de = "mischen (Karten)" },
    { en = "deck of cards", de = "Kartenspiel (Deck)" },

    -- Handwerk und Basteln
    { en = "craft", de = "Handwerk (Basteln)" },
    { en = "knitting", de = "Stricken" },
    { en = "sewing", de = "Nähen" },
    { en = "embroidery", de = "Stickerei" },
    { en = "origami", de = "Origami" },
    { en = "scissors", de = "Schere" },
    { en = "glue stick", de = "Klebestift" },
    { en = "yarn", de = "Wolle (Garn)" },
    { en = "needle", de = "Nadel" },
    { en = "pattern (craft)", de = "Schnittmuster" },

    -- Braukunst und Getränkeherstellung
    { en = "brewery", de = "Brauerei" },
    { en = "fermentation", de = "Fermentation" },
    { en = "distillery", de = "Brennerei" },
    { en = "hops", de = "Hopfen" },
    { en = "malt", de = "Malz" },
    { en = "grape harvest", de = "Weinlese" },
    { en = "vintage (wine)", de = "Jahrgang (Wein)" },

    -- Streaming und Content Creation
    { en = "streamer", de = "Streamer" },
    { en = "subscriber", de = "Abonnent" },
    { en = "follower", de = "Follower" },
    { en = "donation", de = "Spende (Stream)" },
    { en = "chat moderator", de = "Chat-Moderator" },
    { en = "overlay", de = "Overlay" },
    { en = "webcam", de = "Webcam" },
    { en = "livestream", de = "Livestream" },
    { en = "viewer count", de = "Zuschauerzahl" },
    { en = "clip (stream)", de = "Clip" },
    { en = "thumbnail", de = "Vorschaubild" },
    { en = "content creator", de = "Content Creator" },
    { en = "emote", de = "Emote" },
    { en = "collab", de = "Kollaboration" },

    -- Soziale Medien
    { en = "post (social media)", de = "Beitrag" },
    { en = "comment", de = "Kommentar" },
    { en = "hashtag", de = "Hashtag" },
    { en = "feed", de = "Feed" },
    { en = "profile", de = "Profil" },
    { en = "notification", de = "Benachrichtigung" },
    { en = "influencer", de = "Influencer" },
    { en = "trending", de = "im Trend" },
    { en = "viral", de = "viral" },

    -- Erste Hilfe und Katastrophenschutz
    { en = "CPR", de = "Wiederbelebung" },
    { en = "splint", de = "Schiene (Erste Hilfe)" },
    { en = "tourniquet", de = "Aderpresse" },
    { en = "antiseptic", de = "Antiseptikum" },
    { en = "disaster relief", de = "Katastrophenhilfe" },
    { en = "emergency kit", de = "Notfallset" },
    { en = "triage", de = "Triage" },
    { en = "hazard", de = "Gefahrenquelle" },

    -- Ehrenamt und Wohltätigkeit
    { en = "volunteer", de = "Freiwilliger" },
    { en = "charity", de = "Wohltätigkeitsorganisation" },
    { en = "fundraiser", de = "Spendensammlung" },
    { en = "nonprofit", de = "gemeinnützige Organisation" },
    { en = "community service", de = "gemeinnützige Arbeit" },
    { en = "outreach", de = "Öffentlichkeitsarbeit" },

    -- Verben Alltag weitere
    { en = "to celebrate", de = "feiern" },
    { en = "to invite (verb)", de = "einladen" },
    { en = "to apologize", de = "sich entschuldigen" },
    { en = "to forgive", de = "verzeihen" },
    { en = "to complain", de = "sich beschweren" },
    { en = "to compliment", de = "komplimentieren" },
    { en = "to criticize", de = "kritisieren" },
    { en = "to compare", de = "vergleichen" },
    { en = "to combine", de = "kombinieren" },
    { en = "to separate", de = "trennen" },
    { en = "to divide", de = "teilen (aufteilen)" },
    { en = "to multiply", de = "multiplizieren" },
    { en = "to calculate", de = "berechnen" },
    { en = "to measure", de = "messen" },
    { en = "to weigh", de = "wiegen" },
    { en = "to arrange", de = "anordnen" },
    { en = "to prepare", de = "vorbereiten" },
    { en = "to repeat", de = "wiederholen" },
    { en = "to practice", de = "üben" },

    -- Substantive Alltag weitere
    { en = "routine", de = "Routine" },
    { en = "habit", de = "Gewohnheit" },
    { en = "opportunity", de = "Gelegenheit" },
    { en = "challenge", de = "Herausforderung" },
    { en = "solution", de = "Lösung" },
    { en = "problem", de = "Problem" },
    { en = "purpose", de = "Zweck" },
    { en = "reason", de = "Grund" },
    { en = "result", de = "Ergebnis" },
    { en = "consequence", de = "Konsequenz" },
    { en = "effort", de = "Anstrengung" },
    { en = "progress", de = "Fortschritt" },
    { en = "improvement", de = "Verbesserung" },
    { en = "mistake", de = "Fehler" },
    { en = "advantage", de = "Vorteil" },
    { en = "disadvantage", de = "Nachteil" },
    { en = "risk", de = "Risiko" },
    { en = "benefit", de = "Nutzen" },
    { en = "impact", de = "Auswirkung" },

}

for _, entry in ipairs(vocab5) do
    table.insert(CT_Dictionary.words, entry)
end

local function BuildIndex(sourceTable, destIndex)
    for _, entry in ipairs(sourceTable) do
        for srcLang, srcText in pairs(entry) do
            local key = srcText:lower()
            for tgtLang, tgtText in pairs(entry) do
                if tgtLang ~= srcLang then
                    destIndex[tgtLang] = destIndex[tgtLang] or {}
                    destIndex[tgtLang][key] = tgtText
                end
            end
        end
    end
end

CT_Dictionary.wordIndex = CT_Dictionary.wordIndex or {}
BuildIndex(CT_Dictionary.words, CT_Dictionary.wordIndex)