Module:gu

Hello, you have come here looking for the meaning of the word Module:gu. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:gu, but we will also tell you about its etymology, its characteristics and you will know how to say Module:gu in singular and plural. Everything you need to know about the word Module:gu you have here. The definition of the word Module:gu will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:gu, 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("gu")
local m_translit = require("Module:gu-translit")
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=gu}}"
	local pos2 = args or (args and "" or false)
	local def2 = args or "{{rfdef|lang=gu}}"
	local pos3 = args or (args and "" or false)
	local def3 = args or "{{rfdef|lang=gu}}"
	local etym = args or false
	local head = args or false
	local pron = args or false
	local decl = args or false
	local conj = args or false
	local g = args or false
    local g2 = args or false
    local g3 = args or false
    local c = args or args or false
    local ref = args or false

	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",
		};
		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",
		};
		return pos_head or text
	end
	
	local function other(class, title, args)
		local code = ""
		if args then
			code = code .. "\n\n===" .. title .. "===\n* {{l|gu|" .. args .. "}}"
			
			if args then
				code = code .. "\n* {{l|gu|" .. args .. "}}"
				
				if args then
					code = code .. "\n* {{l|gu|" .. args .. "}}"
					
					if args then
						code = code .. "\n* {{l|gu|" .. args .. "}}"
					end
				end
			end
		end
		return code
	end
	
	-- header
	result = result .. "==Gujarati=="
	
	-- Wikipedia
	if args then result = result .. "\n{{wikipedia|lang=gu}}" end
	
	-- Alternative forms
	result = result .. other("alt", "Alternative forms", args)
	
	-- Etymology
	if etym then result = result .. "\n\n===Etymology===\n" .. etym end
	
	-- Pronunciation
	if pron then result = result .. "\n\n===Pronunciation===\n* {{IPA|" .. ((pron ~= title and pron ~= "") and ("|" .. gsub(pron, ",", "|")) or "") .. "|lang=gu}}" end
	result = result .. "\n\n===" .. genTitle(pos) .. "===\n{{gu-" .. genHead(pos) .. (head and ("|head=" .. head) or "") .. (g and ("|g=" .. g) or "") .. (t and ("|" .. t) or "") .. "}}\n\n# " .. def
    
    -- Morphology
	if conj then
		result = result .. "\n\n====Conjugation====\n" .. conj
	end
	if decl then
		result = result .. "\n\n====Declension====\n" .. decl
	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{{gu-" .. 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{{gu-" .. genHead(pos3) .. (head and ("|head=" .. head) or "")  .. (g3 and ("|g=" .. g3) or "") .. "}}\n\n# " .. def3
	end
    
    -- categories and refs (to be done)
    
    if c then
    	result = result .. "\n\n{{C|gu" .. ((c ~= title and c ~= "") and ("|" .. gsub(c, ",", "|")) or "") .. "}}"
    end
	
	return result
end

return export