Для документации этого модуля может быть создана страница Модуль:WDLang/doc

local p = {}

local wikidata = require('Модуль:WDBase')

p.P_WORK_LANG = 'P407'
p.P_LANG_CODE = 'P218'

p.Q_MULTILANG = 'Q20923490'

function p.langEntity(lang)
	-- Список языков langEntities получен с помощью запроса:
	-- SELECT ?code ?entity
	-- WHERE 
	-- { 
	--     ?entity p:P218 ?statement0.
	--     ?entity wdt:P218 ?code.
	--     ?statement0 (ps:P218) _:anyValueP218.
	--     SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
	-- }
	local langEntities = {
	    el = "Q9129",
	    ha = "Q56475",
	    li = "Q102172",
	    so = "Q13275",
	    na = "Q13307",
	    pt = "Q5146",
	    tk = "Q9267",
	    se = "Q33947",
	    ss = "Q34014",
	    to = "Q34094",
	    tw = "Q36850",
	    tr = "Q256",
	    ms = "Q9237",
	    hz = "Q33315",
	    rw = "Q33573",
	    oj = "Q33875",
	    ty = "Q34128",
	    wa = "Q34219",
	    wo = "Q34257",
	    za = "Q13216",
	    nv = "Q13310",
	    ru = "Q7737",
	    yi = "Q8641",
	    nn = "Q25164",
	    tt = "Q25285",
	    aa = "Q27811",
	    ho = "Q33617",
	    sc = "Q33976",
	    yo = "Q34311",
	    nd = "Q35613",
	    mh = "Q36280",
	    pi = "Q36727",
	    pl = "Q809",
	    sa = "Q11059",
	    rm = "Q13199",
	    sw = "Q7838",
	    uk = "Q8798",
	    no = "Q9043",
	    sk = "Q9058",
	    sl = "Q9063",
	    my = "Q9228",
	    ve = "Q32704",
	    ne = "Q33823",
	    om = "Q33864",
	    sg = "Q33954",
	    su = "Q34002",
	    tl = "Q34057",
	    ro = "Q7913",
	    te = "Q8097",
	    vi = "Q9199",
	    sr = "Q9299",
	    ny = "Q33273",
	    rn = "Q33583",
	    ng = "Q33900",
	    sd = "Q33997",
	    tn = "Q34137",
	    ts = "Q34327",
	    ps = "Q58680",
	    ur = "Q1617",
	    qu = "Q5218",
	    oc = "Q14185",
	    nl = "Q7411",
	    uz = "Q9264",
	    sh = "Q9301",
	    ae = "Q29572",
--  	or = "Q33810",
	    sm = "Q34011",
	    st = "Q34340",
	    kr = "Q36094",
	    kj = "Q1405077",
	    zu = "Q10179",
	    ug = "Q13263",
	    si = "Q13267",
	    sv = "Q9027",
	    os = "Q33968",
	    sn = "Q34004",
	    ta = "Q5885",
	    zh = "Q7850",
	    sq = "Q8748",
	    mt = "Q9166",
	    th = "Q9217",
	    tg = "Q9260",
	    xh = "Q13218",
	    nb = "Q25167",
	    ti = "Q34124",
	    lu = "Q36157",
	    nr = "Q36785",
	    vo = "Q36986",
	    bh = "Q135305",
	    pa = "Q112664216",
	    en = "Q1860",
	    hr = "Q6654",
	    bg = "Q7918",
	    be = "Q9091",
	    gl = "Q9307",
	    fy = "Q27175",
	    ak = "Q28026",
	    cu = "Q35499",
	    fj = "Q33295",
	    cv = "Q33348",
	    kn = "Q33673",
	    ln = "Q36217",
	    mi = "Q36451",
	    ja = "Q5287",
	    mg = "Q7930",
	    da = "Q9035",
	    lv = "Q9078",
	    lt = "Q9083",
	    ky = "Q9255",
	    ht = "Q33491",
	    ii = "Q34235",
	    gn = "Q35876",
	    is = "Q294",
	    mr = "Q1571",
	    an = "Q8765",
	    ga = "Q9142",
	    mn = "Q9246",
	    kl = "Q25355",
	    av = "Q29561",
	    dv = "Q32656",
	    ig = "Q33578",
	    kv = "Q36126",
	    ml = "Q36236",
	    es = "Q1321",
	    hy = "Q8785",
	    lb = "Q9051",
	    hu = "Q9067",
	    fa = "Q9168",
	    id = "Q9240",
	    kk = "Q9252",
	    he = "Q9288",
	    fo = "Q25258",
	    ik = "Q27183",
	    as = "Q29401",
	    ce = "Q33350",
	    ff = "Q33454",
	    io = "Q35224",
	    ay = "Q4627",
	    br = "Q12107",
	    ba = "Q13389",
	    af = "Q14196",
	    gu = "Q5137",
	    lo = "Q9211",
	    gd = "Q9314",
	    ch = "Q33262",
	    jv = "Q33549",
	    bo = "Q34271",
	    ia = "Q35934",
	    ku = "Q36368",
	    hi = "Q1568",
	    la = "Q397",
	    eu = "Q8752",
	    cs = "Q9056",
	    bs = "Q9303",
	    cy = "Q9309",
	    kw = "Q25289",
	    am = "Q28244",
	    iu = "Q29921",
	    kg = "Q33702",
	    bi = "Q35452",
	    ie = "Q35850",
	    fi = "Q1412",
	    eo = "Q143",
	    de = "Q188",
	    ab = "Q5111",
	    ca = "Q7026",
	    ar = "Q13955",
	    ko = "Q9176",
	    ee = "Q30005",
	    ks = "Q33552",
	    fr = "Q150",
	    it = "Q652",
	    ka = "Q8108",
	    et = "Q9072",
	    km = "Q9205",
	    az = "Q9292",
	    mk = "Q9296",
	    gv = "Q12175",
	    bn = "Q9610",
	    dz = "Q33081",
	    co = "Q33111",
	    bm = "Q33243",
	    lg = "Q33368",
	    cr = "Q33390",
	    ki = "Q33587"
	}
	langEntities['or'] = "Q33810"

	return langEntities[lang]
end

function p.workLangEntity(entity, lang)
	return wikidata.value(entity, p.P_WORK_LANG, lang)
end

function p.langCode(entity)
	return wikidata.text(entity, p.P_LANG_CODE)
end

return p