Module:hi

local export = {}

local lang = require("Module:languages").getByCode("hi") local m_translit = require("Module:hi-translit") local rsplit = mw.text.split local gsub = mw.ustring.gsub local sub = mw.ustring.sub

--From Module:th function export.new(frame) local title = mw.title.getCurrentTitle.text local args = frame:getParent.args local pos = args[1] or "" local def = args[2] or "" local pos2 = args[3] or (args[4] and "" or false) local def2 = args[4] or "" local pos3 = args[5] or (args[6] and "" or false) local def3 = args[6] or "" local etym = args["e"] or false local head = args["head"] or false local pron = args["pron"] or false local g = args["g"] or false local g2 = args["g2"] or false local g3 = args["g3"] or false local decl = args["decl"] or false local conj = args["conj"] or false -- conjugation stuff local t = args["t"] or false local c = args["c"] or args["cat"] or false local ref = args["ref"] or false local pp = args["pp"] or false --perfect participle

local result = "" local function genTitle(text) local pos_title = { [""] = "Noun", ["n"] = "Noun", ["pn"] = "Proper noun", ["propn"] = "Proper noun", ["pron"] = "Pronoun", ["v"] = "Verb", ["a"] = "Adjective", ["adj"] = "Adjective", ["det"] = "Determiner", ["adv"] = "Adverb", ["prep"] = "Preposition", ["postp"] = "Postposition", ["post"] = "Postposition", ["con"] = "Conjunction", ["part"] = "Particle", ["suf"] = "Suffix", ["pref"] = "Prefix", ["prov"] = "Proverb", ["id"] = "Idiom", ["ph"] = "Phrase", ["intj"] = "Interjection", ["interj"] = "Interjection", ["num"] = "Numeral", ["abb"] = "Abbreviation", ["conj"] = "Conjunction", ["adj-form"] = "Adjective", ["verb-form"] = "Verb", ["noun-form"] = "Noun", ["pp"] = "Perfect participle", };		return pos_title[text] or mw.ustring.upper(sub(text, 1, 1)) .. sub(text, 2, -1) end local function genHead(text) local pos_head = { [""] = "noun", ["n"] = "noun", ["pn"] = "proper noun", ["propn"] = "proper noun", ["v"] = "verb", ["a"] = "adj", ["adv"] = "adv", ["postp"] = "post", ["prep"] = "prep", ["conj"] = "con", ["pron"] = "pron", ["intj"] = "interj", ["pp"] = "perfect participle", };		return pos_head[text] or text end local function other(class, title, args) local code = "" if args[class] then code = code .. "\n\n===" .. title .. "===\n* " if args[class .. "2"] then code = code .. "\n* " if args[class .. "3"] then code = code .. "\n* " if args[class .. "4"] then code = code .. "\n* " end end end end return code end -- header result = result .. "==Hindi==" -- Wikipedia if args["wp"] then result = result .. "\n" end -- Alternative forms result = result .. other("alt", "Alternative forms", args) -- Etymology if etym then etym = mw.ustring.gsub(etym, "^%<", "From") end if etym then result = result .. "\n\n===Etymology===\n" .. etym end -- Pronunciation if pron then result = result .. "\n\n===Pronunciation===\n* " else result = result .. "\n\n===Pronunciation===\n* " end result = result .. "\n\n===" .. genTitle(pos) .. "===\n\n\n# " .. def -- Morphology if decl and decl ~= "" then if pos == "a" or pos == "adj" or pos == "det" then result = result .. "\n\n====Declension====\n" else result = result .. "\n\n====Declension====\n" end end if pos == "v" then result = result .. "\n\n====Conjugation====\n" end -- Other result = result .. other("syn", "=Synonyms=", args) result = result .. other("ant", "=Antonyms=", args) result = result .. other("der", "=Derived terms=", args) result = result .. other("also", "=See also=", args) -- Actual Entry if pos2 then result = result .. "\n\n===" .. genTitle(pos2) .. "===\n\n\n# " .. def2 end if pos3 then result = result .. "\n\n===" .. genTitle(pos3) .. "===\n\n\n# " .. def3 end -- categories and references if ref and ref ~= "" then result = result .. "\n\n===References===\n* " elseif ref == "" then result = result .. "\n\n===References===\n* " end if c then result = result .. "\n\n" end return result end

function export.hi_format(text) text = (' %s '):format(text) return text end

function export.wordify(text) local words, translits = {}, {} for word in mw.text.gsplit(text, ",") do		table.insert(words, export.hi_format(word)) word = gsub(word, "%]%] %[%[", " ") table.insert(translits, m_translit.tr(word, "hi", "Deva")) end text = table.concat(words, ", ") .. " " .. table.concat(translits, ", ") .. " "	return text end

return export