-- ChatTranslateDictionary_Vocab12.lua
--
-- Zwölftes, abschließendes EN-DE Wortschatz-Modul: Technik/Alltag,
-- Bewertungsadjektive, Denkverben, Ereignisse, Ort/Raum, Veränderung, Fähigkeiten.
-- 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 vocab12 = {
    -- Weitere Substantive Technik und Alltag
    { en = "gadget", de = "Gadget" },
    { en = "appliance", de = "Haushaltsgerät (allgemein)" },
    { en = "accessory", de = "Zubehör" },
    { en = "upgrade", de = "Verbesserung (Technik)" },
    { en = "feature", de = "Funktion (Technik)" },
    { en = "setting (device)", de = "Einstellung (Gerät)" },
    { en = "manual (booklet)", de = "Bedienungsanleitung" },
    { en = "warranty", de = "Garantie" },
    { en = "maintenance", de = "Wartung" },
    { en = "malfunction", de = "Fehlfunktion" },

    -- Weitere Adjektive Bewertung
    { en = "outstanding", de = "herausragend" },
    { en = "mediocre", de = "mittelmäßig" },
    { en = "exceptional", de = "außergewöhnlich" },
    { en = "ordinary", de = "gewöhnlich" },
    { en = "remarkable", de = "bemerkenswert" },
    { en = "unremarkable", de = "unauffällig" },
    { en = "impressive", de = "beeindruckend" },
    { en = "disappointing", de = "enttäuschend (Bewertung)" },
    { en = "satisfactory", de = "zufriedenstellend" },
    { en = "unsatisfactory", de = "unzureichend" },

    -- Weitere Verben Denken
    { en = "to analyze", de = "analysieren" },
    { en = "to evaluate", de = "bewerten" },
    { en = "to reflect", de = "nachdenken" },
    { en = "to reconsider", de = "überdenken" },
    { en = "to conclude", de = "schließen (Fazit)" },
    { en = "to speculate", de = "spekulieren" },
    { en = "to predict", de = "vorhersagen" },
    { en = "to estimate", de = "schätzen" },
    { en = "to interpret", de = "interpretieren" },
    { en = "to justify", de = "rechtfertigen" },

    -- Weitere Substantive Ereignis
    { en = "event", de = "Ereignis" },
    { en = "occasion", de = "Anlass" },
    { en = "incident", de = "Vorfall" },
    { en = "situation", de = "Situation" },
    { en = "circumstance", de = "Umstand" },
    { en = "scenario", de = "Szenario" },
    { en = "outcome", de = "Ausgang (Ergebnis)" },
    { en = "aftermath", de = "Nachwirkung" },
    { en = "turning point", de = "Wendepunkt" },

    -- Weitere Substantive Ort und Raum
    { en = "surroundings", de = "Umgebung" },
    { en = "boundary", de = "Grenze (allgemein)" },
    { en = "perimeter", de = "Umfang (Gelände)" },
    { en = "interior", de = "Innenraum" },
    { en = "exterior", de = "Außenbereich" },
    { en = "surface", de = "Oberfläche" },
    { en = "core", de = "Kern" },
    { en = "edge", de = "Rand" },
    { en = "corner", de = "Ecke" },

    -- Weitere Verben Veränderung
    { en = "to transform", de = "verwandeln" },
    { en = "to expand", de = "erweitern" },
    { en = "to shrink", de = "schrumpfen" },
    { en = "to increase", de = "erhöhen" },
    { en = "to decrease", de = "verringern" },
    { en = "to accelerate", de = "beschleunigen" },
    { en = "to decline (verb)", de = "zurückgehen" },
    { en = "to stabilize", de = "stabilisieren" },

    -- Weitere Substantive Fähigkeiten
    { en = "skill", de = "Fähigkeit" },
    { en = "ability", de = "Vermögen (Fähigkeit)" },
    { en = "talent", de = "Talent" },
    { en = "expertise", de = "Fachwissen" },
    { en = "competence", de = "Kompetenz" },
    { en = "strength (skill)", de = "Stärke (Fähigkeit)" },
    { en = "weakness (skill)", de = "Schwäche (Fähigkeit)" },
    { en = "potential", de = "Potenzial" },

}

for _, entry in ipairs(vocab12) 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)