Actions

Module

Module:gloss list

From SUALEX

Revision as of 19:22, 30 January 2026 by Jawad (talk | contribs) (Created page with "-- Module:gloss list local p = {} function p.invoke(frame) local lexicon = require("Module:lexicon") local utilities = require("Module:utilities") local format = require("Module:format") local args = frame.args or {} local gloss_item = args[1] or "" local gloss_pref = args.gloss or "en" -- en | es | all | no if gloss_item == "" then return "Please provide a gloss, e.g. {{gloss list|water}}" end -- preload for safety...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:gloss list/doc

-- Module:gloss list

local p = {}

function p.invoke(frame)
    local lexicon   = require("Module:lexicon")
    local utilities = require("Module:utilities")
    local format    = require("Module:format")

    local args = frame.args or {}
    local gloss_item = args[1] or ""
    local gloss_pref = args.gloss or "en"  -- en | es | all | no

    if gloss_item == "" then
        return "Please provide a gloss, e.g. {{gloss list|water}}"
    end

    -- preload for safety / consistency
    lexicon.preload_all_lexicons()

    local entries = lexicon.get_entries_by_gloss(
        gloss_item,
        gloss_pref == "no" and "en" or gloss_pref
    )

    local rows = {}
    table.insert(rows, '{| class="wikitable searchable sortable"\n! Term !! Language')

    for _, res in ipairs(entries) do
        local entry = res.entry
        local lang_code = res.lang

        for _, t in ipairs(entry.term or {}) do
            local term_html = format.render_term(
                lang_code,
                t.term_item,
                t.homonym,
                t.display_form,
                false,
                nil,
                gloss_pref
            )

            table.insert(
                rows,
                "|-\n| " .. term_html .. " || " .. format.language_name(lang_code)
            )
        end
    end

    table.insert(rows, "|}")
    return utilities.join_strings(rows, "\n")
end

return p