Module:accel/pt

From Wiktionary, the free dictionary
Jump to navigation Jump to search

This module contains new entry creation rules for Portuguese; see WT:ACCEL for an overview, and Module:accel for information on creating new rules.


return {generate = function (params, entry)
	-- special handling for female equivalents
	if params.pos == "noun" and params.form == "f" then
		entry.head = "{{pt-noun|f}}"
		-- definition already correct
		return
	end
	-- special handling for verb forms
	local gerund_verb_spec = params.form:match("^gerund%-(.*)$")
	if gerund_verb_spec then
		entry.head = "{{head|pt|gerund}}"
		entry.def = "{{pt-verb form of|" .. gerund_verb_spec .. "}}"
		return
	end
	local verb_spec = params.form:match("^verb%-form%-(.*)$")
	if verb_spec then
		entry.def = "{{pt-verb form of|" .. verb_spec .. "}}"
		return
	end
	-- special handling for participles and participle forms
	if params.form == "pp_ms" then
		entry.pos_header = "Participle"
		entry.head = "{{pt-pp}}"
		entry.def = "{{past participle of|pt|" .. params.origin .. "}}"
	elseif params.form:find("^pp_") then
		entry.pos_header = "Participle"
		if params.target:find("es$") then
			-- entregues, assentes, etc.
			entry.head = "{{head|pt|past participle form|g=p}}"
			entry.def = "{{plural of|pt|" .. params.target:gsub("es$", "e") .. "}}"
		else
			local form_of_template = {pp_fs = "feminine singular of", pp_mp = "masculine plural of", pp_fp = "feminine plural of"}
			local gender = {pp_fs = "f-s", pp_mp = "m-p", pp_fp = "f-p"}
			entry.head = "{{head|pt|past participle form|g=" .. gender[params.form] .. "}}"
			entry.def = "{{" .. form_of_template[params.form] .. "|pt|" .. params.target:gsub("[ao]s?$", "o") .. "}}"
		end
	end
end}