Module:ga-common

From Wiktionary, the free dictionary
Jump to navigation Jump to search
This module needs documentation.
Please document this module by describing its purpose and usage on the documentation page.

local export = {}

local eclipsis_prefixes = {
	["b"] = "m",
	["c"] = "g",
	["d"] = "n",
	["f"] = "bh",
	["g"] = "n",
	["p"] = "b",
	["t"] = "d",
}

function export.mutations(word, tag)
	local ret = {normal = word, len = word, ecl = word, an = word, tpro = word, hpro = word}
	
	local word_l = mw.ustring.lower(word)
	
	if tag ~= "nolen" then
		if mw.ustring.find(word_l, "^[bcdfgmpt]") then
			ret.len = mw.ustring.gsub(word, "^(.)", "%1h")
		elseif mw.ustring.find(word_l, "^s[aeiouáéíóúlnr]") then
			ret.len = mw.ustring.gsub(word, "^(.)", "%1h")
			ret.an = "t" .. word
		end
	end
	
	if eclipsis_prefixes[mw.ustring.sub(word_l, 1, 1)] then
		ret.ecl = eclipsis_prefixes[mw.ustring.sub(word_l, 1, 1)] .. word
	end
	
	if mw.ustring.find(word, "^[aeiouáéíóú]") then
		ret.ecl  = "n-" .. word
		ret.hpro = "h" .. word
		
		-- Masculine singular nouns have different lenition after the article "an"
		if tag == "msn" then
			ret.tpro = "t-" .. word
		end
	elseif mw.ustring.find(word, "^[AEIOUÁÉÍÓÚ]") then
		ret.ecl  = "n" .. word
		ret.hpro = "h" .. word
		
		-- Masculine singular nouns have different lenition after the article "an"
		if tag == "msn" then
			ret.tpro = "t" .. word
		end
	end
	
	return ret
end

return export