Module:snon-common

From Linguifex
Revision as of 02:21, 23 April 2026 by Melinoë (talk | contribs)
Jump to navigation Jump to search

Documentation for this module may be created at Module:snon-common/doc

local export = {}

local eclipsis_prefixes = {
	["b"] = "m",
	["c"] = "g",
	["d"] = "n",
	["f"] = "v",
	["g"] = "n",
	["p"] = "b",
	["t"] = "d",
	["ph"] = "bh",
	["h"] = "nh",
	["s"] = "z",
	["ch"] = "gh",
}

function export.mutations(word, tag)
	local ret = {normal = word, len = word, ecl = word, hpro = word}
	
	local word_l = mw.ustring.lower(word)
	
	if tag ~= "nolen" then
		if mw.ustring.find(word_l, "^[bcdfgmpts]") then
			ret.len = mw.ustring.gsub(word, "^(.)", "%1h")
		elseif mw.ustring.find(word_l, "^i[aeouàèòù]") then
			ret.len = mw.ustring.gsub(word, "^(.)", "h%1")
		elseif mw.ustring.find(word_l, "^[h]") then
			ret.len = mw.ustring.gsub(word, "^(.)", "g%1")
		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
		
	elseif mw.ustring.find(word, "^[AEIOUÀÈÌÒÙ]") then
		ret.ecl  = "n" .. word
		ret.hpro = "h" .. word
	end
	
	return ret
end

return export