Pergi ke kandungan

Modul:R:PRPM

Daripada Wikikamus

local p = {}

-- MAIN DATABASE (all official entries)
local data = {
    ["johor"]           = {"15740",  "Glosari Dialek Johor"},
    ["gdj"]             = {"15740",  "Glosari Dialek Johor"},

    ["kedah"]           = {"150348", "Glosari Dialek Kedah"},
    ["gdked"]           = {"150348", "Glosari Dialek Kedah"},

    ["kelantan"]        = {"107200", "Glosari Dialek Kelantan"},
    ["gdkel"]           = {"107200", "Glosari Dialek Kelantan"},

    ["negeri sembilan"] = {"259120", "Glosari Dialek Negeri Sembilan"},
    ["gdns"]            = {"259120", "Glosari Dialek Negeri Sembilan"},

    ["melaka"]          = {"169476", "Glosari Dialek Melaka"},
    ["gdm"]             = {"169476", "Glosari Dialek Melaka"},

    ["pahang"]          = {"241100", "Glosari Dialek Pahang"},
    ["gdpah"]           = {"241100", "Glosari Dialek Pahang"},

    ["pulau pinang"]    = {"226380", "Glosari Dialek Pulau Pinang"},
    ["gdpp"]            = {"226380", "Glosari Dialek Pulau Pinang"},

    ["bajau"]           = {"208400", "Bahasa Sukuan Bajau"},
    ["bsb"]            = {"208400", "Bahasa Sukuan Bajau"},

    ["kbm"]             = {"123312", "Kamus Bahasa Melayu"},
    ["kbi"]             = {"54140",  "Kamus Bahasa Inggeris"},
    ["mabbim"]          = {"178260", "Istilah MABBIM"},
    ["ibm"]             = {"382696", "Istilah Bahasa Melayu"},
    ["glbs"]            = {"132088", "Glosari Leksikal Bahasa Sukuan"},
    ["kmp"]             = {"282080", "Kamus Melayu Parsi"},
    ["ktm"]             = {"102560", "Kamus Teknologi Maklumat"},
    ["ktmd"]            = {"113780", "Kamus Thai Melayu Dewan"},
    ["kp-b"]            = {"82548",  "Kamus Parsi (Beta)"},
    ["gsus"]            = {"118248", "Glosari Sains Untuk Sekolah"},
    ["gmus"]            = {"313048", "Glosari Matematik Untuk Sekolah"},
    ["diipk"]           = {"150324", "Daftar Istilah Industri Perkhidmatan Kewangan"},
    ["kdp"]             = {"132444", "Kamus Dewan Perdana"},
    ["pendek"]          = {"139612", "kependekan"},
}

local function normalize(s)
    if not s then return "" end
    return string.lower(mw.text.trim(s))
end

function p.show(frame)
    local args = frame:getParent().args or {}

    -- Parameter 1 = dialect
    local dialect = normalize(args[1] or "")

    -- Named parameters
    local keyword = args["keyword"]
    local entri   = args["entri"]

    local pagename = mw.title.getCurrentTitle().text

    -- Default entri = pagename
    if not entri or entri == "" then
        entri = pagename
    end

    -- If keyword not supplied → keyword = entri
    if not keyword or keyword == "" then
        keyword = entri
    end

    -- Display text: "entri"
    local linkText = '"' .. entri .. '"'

    -- If no dialect supplied → default PRPM
    if dialect == "" then
        return string.format(
            '[http://prpm.dbp.gov.my/cari1?keyword=%s %s] di \'\'Pusat Rujukan Persuratan Melayu\'\'.',
            mw.uri.encode(keyword),
            linkText
        )
    end

    -- With dialect glossary
    local d = data[dialect]
    if d then
        local code = d[1]
        local label = d[2]

        return string.format(
            '[https://prpm.dbp.gov.my/Cari1?keyword=%s&d=%s&#LIHATSINI %s] di \'\'Pusat Rujukan Persuratan Melayu (%s)\'\'.',
            mw.uri.encode(keyword),
            code,
            linkText,
            label
        )
    end

    --------------------------------------------------
    -- ERROR: unknown code
    --------------------------------------------------
    return string.format(
        '<span class="error">Kod "%s" tidak wujud dalam modul PRPM.</span>',
        mw.html.escape(code)
    )
end

return p