Modul:de-conj

Üdvözlöm, Ön a Modul:de-conj szó jelentését keresi. A DICTIOUS-ban nem csak a Modul:de-conj szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a Modul:de-conj szót egyes és többes számban mondani. Minden, amit a Modul:de-conj szóról tudni kell, itt található. A Modul:de-conj szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. AModul:de-conj és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

A modult a Modul:de-conj/doc lapon tudod dokumentálni

local export = {}

local data = {}

local m_table = require("Module:de-conj/table")

local irregular_verbs = {
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
}

local pp = {
	 = true,
}

local function append(stem,suffix)
	stem = mw.text.split(stem,"_",true)
	for i=1,#stem do
		stem = stem .. suffix
	end
	return #stem==1 and stem or stem
end

local function make_pres_indc(conj,stem)
	local len = mw.ustring.len(stem)
	local final = mw.ustring.sub(stem,len,len)
	conj = stem .. "en"
	conj = stem .. "end"
	conj = stem .. "e"
	conj = stem .. "t"
	conj = stem .. "en"
	conj = stem .. "en"
	if final == "s" or final == "ß" then
		conj = stem .. "t"
		conj = stem .. "t"
		conj = {stem, stem .. "e"}
		conj = stem .. "t"
	elseif final == "t" then
		conj = stem .. "est"
		conj = stem .. "et"
		conj = stem .. "et"
		conj = stem .. "e"
		conj = stem .. "t"
	elseif final == "d" then
		conj = stem .. "est"
		conj = stem .. "et"
		conj = stem .. "et"
		conj = stem .. "e"
		conj = stem .. "t"
	else
		conj = stem .. "st"
		conj = stem .. "t"
		conj = {stem, stem .. "e"}
		conj = stem .. "t"
	end
end

local function make_pres_subj(conj,stem)
	conj = stem .. "e"
	conj = stem .. "est"
	conj = stem .. "e"
	conj = stem .. "en"
	conj = stem .. "et"
	conj = stem .. "en"
end

local function make_pres(conj,stem)
	make_pres_indc(conj,stem)
	make_pres_subj(conj,stem)
end

local function make_past_indc(conj,stem)
	local len = mw.ustring.len(stem)
	local final = mw.ustring.sub(stem,len,len)
	conj = append(stem,"")
	conj = append(stem,"")
	conj = append(stem,"en")
	conj = append(stem,"en")
	if final == "s" or final == "ß" then
		conj = append(stem,"t")
		conj = append(stem,"t")
	elseif final == "t" then
		conj = append(stem,"e")
		conj = append(stem,"est")
		conj = append(stem,"e")
		conj = append(stem,"et")
	elseif final == "d" then
		conj = append(stem,"est")
		conj = append(stem,"et")
	else
		conj = append(stem,"st")
		conj = append(stem,"t")
	end
end

local function make_past_subj(conj,stem)
	conj = append(stem,"e")
	conj = append(stem,"est")
	conj = append(stem,"e")
	conj = append(stem,"en")
	conj = append(stem,"et")
	conj = append(stem,"en")
end

local function make_past(conj,stem)
	make_past_indc(conj,stem)
	make_past_subj(conj,stem)
end

data = function(stem)
	local conj = {}
	conj = stem .. "en"
	conj = stem .. "end"
	conj = stem .. "t"
	
	conj = stem .. "e"
	conj = stem .. "st"
	conj = stem .. "t"
	conj = stem .. "en"
	conj = stem .. "t"
	conj = stem .. "en"
	
	conj = stem .. "e"
	conj = stem .. "est"
	conj = stem .. "e"
	conj = stem .. "en"
	conj = stem .. "et"
	conj = stem .. "en"
	
	make_past(conj,stem.."t")

	conj = {stem, stem .. "e"}
	conj = stem .. "t"
	
	return conj
end

data = function(stem)
	local conj = data(stem .. "s")

	conj = stem .. "st"

	return conj
end

data = function(stem)
	local conj = data(stem .. "ß")

	conj = stem .. "ßt"

	return conj
end

data = function(stem)
	local conj = data(stem .. "t")
	conj = stem .. "tet"
	
	conj = stem .. "test"
	conj = stem .. "tet"
	conj = stem .. "tet"
	
	make_past(conj,stem .. "tet")
	
	conj = stem .. "te"
	conj = stem .. "tet"
	
	return conj
end

data = function(stem)
	local conj = data(stem .. "d")
	conj = stem .. "det"
	
	conj = stem .. "dest"
	conj = stem .. "det"
	conj = stem .. "det"

	make_past(conj,stem .. "det")
	
	conj = stem .. "de"
	conj = stem .. "det"
	
	return conj
end

data = function(stem, consonant)
	local conj = data(stem .. "ech")
	conj = stem .. "ochen"
	
	conj = stem .. "ichst"
	conj = stem .. "icht"
	
	make_past_indc(conj, stem .. "ach")
	make_past_subj(conj, stem .. "äch")
	
	conj = stem .. "ich"
	
	return conj
end

data = function(stem, consonant)
	local conj = data(stem .. "ehm")
	conj = stem .. "ommen"
	
	conj = stem .. "immst"
	conj = stem .. "immt"
	
	make_past_indc(conj, stem .. "ahm")
	make_past_subj(conj, stem .. "ähm")
	
	conj = stem .. "imm"
	
	return conj
end

data = function(stem)
	local conj = data(stem .. "eh")
	conj = stem .. "ehen"
	
	conj = stem .. "iehst"
	conj = stem .. "ieht"
	
	make_past_indc(conj, stem .. "ah")
	make_past_subj(conj, stem .. "äh")
	
	if stem == "sch" then
		conj = "schieh"
	else
		conj = {stem .. "ieh", stem .. "iehe"}
	end
	
	return conj
end

data = function(stem)
	local conj = data(stem .. "enn")
	conj = stem .. "annt"
	
	make_past_indc(conj, stem .. "annt")

	return conj
end

data = function(stem)
	local conj = data(stem .. "in")
	conj = stem .. "unden"
	
	make_past_indc(conj, stem .. "and")
	make_past_subj(conj, stem .. "änd")
	
	return conj
end

data = function(stem)
	local conj = data(stem .. "ie")
	conj = stem .. "ossen"
	
	make_past_indc(conj, stem .. "oss")
	make_past_subj(conj, stem .. "öss")

	return conj
end

data = function(stem)
	local conj = data("bring")
	conj = "bracht"
	
	make_past_indc(conj, "brach")
	make_past_subj(conj, "bräch")
	
	return conj
end

data = function(stem)
	local conj = data("fahr")
	conj = "fahren"
	
	conj = "fährst"
	conj = "fährt"
	
	make_past_indc(conj,"fuhr")
	make_past_subj(conj,"führ")
	
	return conj
end

data = function(stem)
	local conj = data("komm")
	conj = "kommen"
	
	make_past_indc(conj,"kam")
	make_past_subj(conj,"käm")
	
	return conj
end

data = function(stem)
	local conj = data("las")
	conj = "lassen"
	
	conj = "lässt"
	conj = "lässt"
	
	make_past(conj,"ließ")
	
	return conj
end

data = function(stem)
	local conj = data("lösch")
	conj = "loschen"
	
	conj = "lischst"
	conj = "lischt"
	
	conj = {"lisch", "lische"}
	
	make_past_indc(conj,"losch")
	make_past_subj(conj,"lösch")
	
	return conj
end

data = function(stem)
	local conj = data("schaff")
	conj = "schaffen"
	
	make_past_indc(conj,"schuf")
	make_past_subj(conj,"schüf")
	
	return conj
end

data = function(stem)
	local conj = data("schlaf")
	conj = "schlafen"
	
	conj = "schläfst"
	conj = "schläft"
	
	make_past(conj,"schlief")
	
	return conj
end

data = function(stem)
	local conj = data("schwör")
	conj = "schworen"
	
	make_past_indc(conj,"schwor_schwur")
	make_past_subj(conj,"schwör_schwür")
	
	return conj
end

data = function(stem)
	local conj = {}
	conj = "sein"
	conj = "seiend"
	conj = "wesen"
	
	conj = "bin"
	conj = "bist"
	conj = "ist"
	conj = "sind"
	conj = "seid"
	conj = "sind"
	
	conj = "sei"
	conj = "seist"
	conj = "sei"
	conj = "seien"
	conj = "seiet"
	conj = "seien"
	
	make_past_indc(conj, "war")
	make_past_subj(conj, "wär")

	conj = "sei"
	conj = "seid"
	
	return conj
end

data = function(stem)
	local conj = data("steh")
	conj = "standen"
	
	make_pres_subj(conj, "ständ_stünd")
	make_past_indc(conj, stem .. "stand")
	
	return conj
end

data = function(stem)
	local conj = data("tu")
	conj = "tun"
	conj = "tuend"
	conj = "tan"
	
	conj = "tun"
	conj = "tun"
	
	make_past_indc(conj, "tat")
	conj = "tat"
	conj = "tat"
	
	make_past_subj(conj, "tät")
	
	return conj
end

data = function(stem)
	local conj = data("thu")
	conj = "thun"
	conj = "thuend"
	conj = "than"
	
	conj = "thun"
	conj = "thun"
	
	make_past_indc(conj, "that")
	conj = "that"
	conj = "that"
	
	make_past_subj(conj, "thät")
	
	return conj
end

data = function(stem)
	local conj = data("winn")
	conj = "wonnen"
	
	make_past_indc(conj,"wann")
	make_past_subj(conj,"wänn")
	
	return conj
end

data = function(stem)
	local conj = data("woll")
	
	conj = "will"
	conj = "willst"
	conj = "will"

	return conj
end

function export.auto(frame)
	args = frame:getParent().args
	local sep_prefix = args or ""
	local insep_prefix = args or ""
	local stem = args or ""
	local conj_type = args or ""
	local aux = args or "h"
	local insep = args or ""
	local impersonal = args or args or false
	
	sep_prefix = sep_prefix:gsub(" "," ")
	
	if conj_type == "" and stem == "" and insep_prefix == "" and sep_prefix == "" then -- {{de-conj-auto}}
		error("Please provide at least one argument")
	elseif conj_type == "" and stem == "" and insep_prefix == "" then -- {{de-conj-auto|sein}}
		conj_type = sep_prefix
		sep_prefix = ""
	elseif conj_type == "" and stem == "" then
		if irregular_verbs then -- {{de-conj-auto|ab|tun}}
			conj_type = insep_prefix
			insep_prefix = ""
		else -- {{de-conj-auto|mach|en}}
			conj_type = insep_prefix
			stem = sep_prefix
			insep_prefix = ""
			sep_prefix = ""
		end
	elseif conj_type == "" then
		if irregular_verbs then -- {{de-conj-auto|an|ver|tun}} (does not exist)
			conj_type = stem
			stem = ""
		else -- {{de-conj-auto|ab|f|inden}}
			conj_type = stem
			stem = insep_prefix
			insep_prefix = ""
		end
	end
	if insep ~= "" and insep ~= "no" and insep ~= "0" and insep_prefix == "" then
		insep_prefix = sep_prefix
		sep_prefix = ""
	end
	
	if not data then error("Conjugation type not recognized by module") end
	conj = data(stem)
	
	if pp then
		conj = nil
		conj = nil
	end
	
	text = m_table.maketable(sep_prefix,insep_prefix,conj,aux,impersonal)
	return text
end

function export.stems(frame)
	args = frame:getParent().args
	local sep_prefix = args or ""
	local stems = args or ""
	local pp = args or ""
	local aux = args or "h"
	local impersonal = args or ""
	if impersonal == "" then impersonal = args or "" end
	if impersonal == "" then impersonal = false end
	
	sep_prefix = sep_prefix:gsub(" "," ")
	
	if sep_prefix == "" and stems == "" and pp == "" then -- {{de-conj-stems}}
		error("Please provide at least one argument")
	elseif stems == "" then -- {{de-conj-stems|abandonnier}}
		stems = sep_prefix
		sep_prefix = ""
	elseif pp == "" then
		if mw.ustring.match(sep_prefix,"/") then
			pp = stems
			stems = sep_prefix
			sep_prefix = ""
		end
	end
	
	local conj = {}
	
	stems = mw.text.split(stems,"/")
	if pp == "" then
		conj = "ge" .. stems .. "t"
	else
		conj = pp
	end
	
	if #stems == 1 then
		make_pres(conj,stems)
		make_past(conj,stems)
	elseif #stems == 2 then
		make_pres(conj,stems)
		make_past(conj,stems)
	elseif #stems == 3 then
		make_pres(conj,stems)
		make_past_indc(conj,stems)
		make_past_subj(conj,stems)
	elseif #stems == 4 then
		make_pres_indc(conj,stems)
		make_pres_subj(conj,stems)
		make_past_indc(conj,stems)
		make_past_subj(conj,stems)
	end
	
	if args then
		conj = nil
		conj = nil
	end
	
	text = m_table.maketable(sep_prefix,"",conj,aux,impersonal,true)
	return text
end

return export