Module:ur

Hello, you have come here looking for the meaning of the word Module:ur. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:ur, but we will also tell you about its etymology, its characteristics and you will know how to say Module:ur in singular and plural. Everything you need to know about the word Module:ur you have here. The definition of the word Module:ur will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:ur, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.

This module needs documentation.
Please document this module by describing its purpose and usage on the documentation page.

local export = {}

local lang = require("Module:languages").getByCode("ur")
local gsub = mw.ustring.gsub
local sub = mw.ustring.sub

--From ]
function export.new(frame)
	local title = mw.title.getCurrentTitle().text
	local args = frame:getParent().args
	local pos = args or ""
	local def = args or "{{rfdef|lang=ur}}"
	local pos2 = args or (args and "" or false)
	local def2 = args or "{{rfdef|lang=ur}}"
	local pos3 = args or (args and "" or false)
	local def3 = args or "{{rfdef|lang=ur}}"
	local etym = args or false
	local head = args or false
	local pron = args or false
	local g = args or false
    local g2 = args or false
    local g3 = args or false
    local decl = args or false
	local conj = args or false -- conjugation stuff
    local v = args or false
    local karna = args or false
    local t = args or false
    local c = args or args or false
    local ref = args or false
    local pp = args or false --perfect participle

	local result = ""
	
	local function genTitle(text)
		local pos_title = {
			 = "Noun",  = "Noun",  = "Proper noun",  = "Proper noun",  = "Pronoun",
			 = "Verb",  = "Adjective",  = "Adjective",  = "Adverb",
			 = "Preposition",  = "Postposition",  = "Postposition",  = "Conjunction",
			 = "Particle",  = "Suffix",  = "Prefix",
			 = "Proverb",  = "Idiom",  = "Phrase",  = "Interjection",  = "Interjection",
			 = "Numeral",  = "Abbreviation",  = "Conjunction",
             = "Adjective",  = "Verb",  = "Noun",
             = "Perfect participle",
		};
		return pos_title or mw.ustring.upper(sub(text, 1, 1)) .. sub(text, 2, -1)
	end
	
	local function genHead(text)
		local pos_head = {
			 = "noun",  = "noun",  = "proper noun",  = "proper noun",  = "verb",  = "adj",  = "adv",
			 = "post",  = "prep",  = "con",  = "pron",
			 = "interj",  = "perfect participle",
		};
		return pos_head or text
	end
	
	local function other(class, title, args)
		local code = ""
		if args then
			code = code .. "\n\n===" .. title .. "===\n* {{l|ur|" .. args .. "}}"
			
			if args then
				code = code .. "\n* {{l|ur|" .. args .. "}}"
				
				if args then
					code = code .. "\n* {{l|ur|" .. args .. "}}"
					
					if args then
						code = code .. "\n* {{l|ur|" .. args .. "}}"
					end
				end
			end
		end
		return code
	end
	
	-- header
	result = result .. "==Urdu=="
	
	-- Wikipedia
	if args then result = result .. "\n{{wikipedia|lang=ur}}" 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* {{ur-IPA|" .. ((pron ~= title and pron ~= "") and ("|" .. gsub(pron, ",", "|")) or "") .. "}}"
	else
		result = result .. "\n\n===Pronunciation===\n* {{ur-IPA}}"
	end
	result = result .. "\n\n===" .. genTitle(pos) .. "===\n{{ur-" .. genHead(pos) .. (head and ("|head=" .. head) or "") .. (g and ("|g=" .. g) or "") .. (t and ("|" .. t) or "") .. (pp and ("|" .. pp) or "") .. "}}\n\n# " .. def
    
    -- Morphology
    if decl then result = result .. "\n\n====Declension====\n{{ur-" .. genHead(pos) .. "-" .. ((decl ~= title and decl ~= "") and (gsub(decl, ",", "|")) or "") .. "}}" end
    if conj then result = result .. "\n\n====Conjugation====\n{{ur-conj" .. (v and ("-v") or "") .. (karna and ("-karna") or "") .. "|" .. (conj or "") .. "}}" 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{{ur-" .. genHead(pos2) .. (head and ("|head=" .. head) or "") .. (g2 and ("|g=" .. g2) or "") .. "}}\n\n# " .. def2
	end
	
	if pos3 then
		result = result .. "\n\n===" .. genTitle(pos3) .. "===\n{{ur-" .. genHead(pos3) .. (head and ("|head=" .. head) or "")  .. (g3 and ("|g=" .. g3) or "") .. "}}\n\n# " .. def3
	end
    
    -- categories and references
    if ref then
    	result = result .. "\n\n====References====\n* {{R:Ox HI-EN|" .. ref .."}}"
    end
    
    if c then
    	result = result .. "\n\n{{topics|ur" .. ((c ~= title and c ~= "") and ("|" .. gsub(c, ",", "|")) or "") .. "}}"
    end
	
	return result
end


return export