Modül:it-eylem

Merhaba, buraya Modül:it-eylem kelimesinin anlamını aramaya geldiniz. DICTIOUS'da Modül:it-eylem kelimesinin tüm sözlük anlamlarını bulmakla kalmayacak, aynı zamanda etimolojisini, özelliklerini ve Modül:it-eylem kelimesinin tekil ve çoğul olarak nasıl söylendiğini de öğreneceksiniz. Modül:it-eylem kelimesi hakkında bilmeniz gereken her şey burada. Modül:it-eylem kelimesinin tanımı, konuşurken veya metinlerinizi yazarken daha kesin ve doğru olmanıza yardımcı olacaktır. XXX'in ve diğer kelimelerin tanımını bilmek, kelime dağarcığınızı zenginleştirir ve size daha fazla ve daha iyi dilsel kaynaklar sağlar.
Modül belgelemesi

Bu modül şu şablonlarda kullanılmaktadır:


local m_baglantilar = require("Modül:bağlantılar")
local m_utilities = require("Modül:araçlar")

local lang = require("Modül:diller").getirKodaGore("it")

local export = {}

-- Functions that do the actual inflecting by creating the forms of a basic term.
local inflections = {}

-- Main entry point
function export.itconj(frame)
	local args = frame:getParent().args
	
	-- Create the forms
	local data = {forms = {}, categories = {}, refl = false}
	
	data.forms.aux = {mw.text.trim(args or "essere")}
	
	if data.forms.aux and (data.forms.aux == "avere or essere" or data.forms.aux == "essere or avere") then
			data.forms.aux = {"avere", "essere"}
	end
	
	-- Find what type of verb is it (hard-coded in the template).
	-- Generate standard conjugated forms for each type of verb,
	local infl_type = frame:getParent().args
	
	if not infl_type then
		data.forms.infinitive = {args}; if data.forms.infinitive == "" then data.forms.infinitive = nil end
	elseif inflections then
		inflections(args, data)
	else
		error("Verb type " .. infl_type .. " not supported.")
	end
	
	-- Get overridden forms
	process_overrides(args, data)
	
	-- Correct forms that are used in more than one person
	if not data.forms.pres_subj_1sg or #data.forms.pres_subj_1sg == 0 then data.forms.pres_subj_1sg = mw.clone(data.forms.pres_subj_123sg) end
	if not data.forms.pres_subj_2sg or #data.forms.pres_subj_2sg == 0 then data.forms.pres_subj_2sg = mw.clone(data.forms.pres_subj_123sg) end
	if not data.forms.pres_subj_3sg or #data.forms.pres_subj_3sg == 0 then data.forms.pres_subj_3sg = mw.clone(data.forms.pres_subj_123sg) end
	
	if not data.forms.impf_subj_1sg or #data.forms.impf_subj_1sg == 0 then data.forms.impf_subj_1sg = mw.clone(data.forms.impf_subj_12sg) end
	if not data.forms.impf_subj_2sg or #data.forms.impf_subj_2sg == 0 then data.forms.impf_subj_2sg = mw.clone(data.forms.impf_subj_12sg) end
	
	-- Add reflexive pronouns
	if data.refl then
		add_reflexive_pronouns(args, data)
	end
	
	return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end

-- Replaces terms with overridden ones that are given as additional named parameters.
function process_overrides(args, data)
	-- Each term in current is overridden by one in override, if it exists.
	local function override(current, override)
		current = current or {}
		local ret = {}
		
		local i = 1
		
		-- First see if any of the existing items in current have an override specified.
		while current do
			if override and override ~= "" then
				if override ~= "''" and override ~= "-" then
					table.insert(ret, override)
				elseif override == "''" then
					table.insert(data.categories, "it-conj with quotes in override")
				end
			else
				table.insert(ret, current)
			end
			
			i = i + 1
		end
		
		-- We've reached the end of current.
		-- Look in the override list to see if there are any extra forms to add on to the end.
		while override do
			if override and override ~= "" and override ~= "''" and override ~= "-" then
				table.insert(ret, override)
			elseif override == "''" then
				table.insert(data.categories, "it-conj with quotes in override")
			end
			
			i = i + 1
		end
		
		return ret
	end
	
	-- Mark terms with any additional statement as irregular.
	for k,v in pairs(args) do
		if k ~= 1 and k ~= 2 and k ~= "type" and mw.text.trim(v) ~= '' then
			table.insert(data.categories, 'İtalyanca düzensiz eylemler')
			break
		end
	end
	
	-- Mark terms with irregular past participles
	if args and args ~= '' and not data.refl  then
		table.insert(data.categories, 'İtalyanca düzensiz geçmiş zaman ortaçlı eylemler')
	end

	-- Non-finite forms
	data.forms.infinitive = override(data.forms.infinitive, {args})
	data.forms.gerund = override(data.forms.gerund, {args, args})
	data.forms.pres_ptc = override(data.forms.pres_ptc, {args, args})
	data.forms.past_ptc = override(data.forms.past_ptc, {args, args, args, args})
	
	-- Present
	data.forms.pres_indc_1sg = override(data.forms.pres_indc_1sg, {args, args})
	data.forms.pres_indc_2sg = override(data.forms.pres_indc_2sg, {args, args})
	data.forms.pres_indc_3sg = override(data.forms.pres_indc_3sg, {args, args})
	data.forms.pres_indc_1pl = override(data.forms.pres_indc_1pl, {args, args})
	data.forms.pres_indc_2pl = override(data.forms.pres_indc_2pl, {args, args})
	data.forms.pres_indc_3pl = override(data.forms.pres_indc_3pl, {args, args})
	
	-- Imperfect
	data.forms.impf_indc_1sg = override(data.forms.impf_indc_1sg, {args, args})
	data.forms.impf_indc_2sg = override(data.forms.impf_indc_2sg, {args, args})
	data.forms.impf_indc_3sg = override(data.forms.impf_indc_3sg, {args, args})
	data.forms.impf_indc_1pl = override(data.forms.impf_indc_1pl, {args, args})
	data.forms.impf_indc_2pl = override(data.forms.impf_indc_2pl, {args, args})
	data.forms.impf_indc_3pl = override(data.forms.impf_indc_3pl, {args, args})
	
	-- Past historic
	data.forms.phis_indc_1sg = override(data.forms.phis_indc_1sg, {args, args, args})
	data.forms.phis_indc_2sg = override(data.forms.phis_indc_2sg, {args, args})
	data.forms.phis_indc_3sg = override(data.forms.phis_indc_3sg, {args, args, args})
	data.forms.phis_indc_1pl = override(data.forms.phis_indc_1pl, {args, args})
	data.forms.phis_indc_2pl = override(data.forms.phis_indc_2pl, {args, args})
	data.forms.phis_indc_3pl = override(data.forms.phis_indc_3pl, {args, args, args})
	
	-- Future
	data.forms.futr_indc_1sg = override(data.forms.futr_indc_1sg, {args, args})
	data.forms.futr_indc_2sg = override(data.forms.futr_indc_2sg, {args, args})
	data.forms.futr_indc_3sg = override(data.forms.futr_indc_3sg, {args, args})
	data.forms.futr_indc_1pl = override(data.forms.futr_indc_1pl, {args, args})
	data.forms.futr_indc_2pl = override(data.forms.futr_indc_2pl, {args, args})
	data.forms.futr_indc_3pl = override(data.forms.futr_indc_3pl, {args, args})
	
	-- Conditional
	data.forms.cond_1sg = override(data.forms.cond_1sg, {args, args})
	data.forms.cond_2sg = override(data.forms.cond_2sg, {args, args})
	data.forms.cond_3sg = override(data.forms.cond_3sg, {args, args})
	data.forms.cond_1pl = override(data.forms.cond_1pl, {args, args})
	data.forms.cond_2pl = override(data.forms.cond_2pl, {args, args})
	data.forms.cond_3pl = override(data.forms.cond_3pl, {args, args})
	
	-- Present subjunctive
	data.forms.pres_subj_123sg = override(data.forms.pres_subj_123sg, {args, args})
	data.forms.pres_subj_3sg = override(data.forms.pres_subj_3sg, {args, args})
	data.forms.pres_subj_1pl = override(data.forms.pres_subj_1pl, {args, args})
	data.forms.pres_subj_2pl = override(data.forms.pres_subj_2pl, {args, args})
	data.forms.pres_subj_3pl = override(data.forms.pres_subj_3pl, {args, args})
	
	-- Imperfect subjunctive
	data.forms.impf_subj_12sg = override(data.forms.impf_subj_12sg, {args, args})
	data.forms.impf_subj_3sg = override(data.forms.impf_subj_3sg, {args, args})
	data.forms.impf_subj_1pl = override(data.forms.impf_subj_1pl, {args, args})
	data.forms.impf_subj_2pl = override(data.forms.impf_subj_2pl, {args, args})
	data.forms.impf_subj_3pl = override(data.forms.impf_subj_3pl, {args, args})
	
	-- Imperative
	data.forms.impr_2sg = override(data.forms.impr_2sg, {args, args, args, args})
	data.forms.impr_3sg = override(data.forms.impr_3sg, {args, args})
	data.forms.impr_1pl = override(data.forms.impr_1pl, {args, args})
	data.forms.impr_2pl = override(data.forms.impr_2pl, {args, args})
	data.forms.impr_3pl = override(data.forms.impr_3pl, {args, args})
end

-- Adds reflexive pronouns to the appropriate forms
function add_reflexive_pronouns(args, data)
	-- Gather pronoun parameters
	local pronouns = {}
	
	pronouns = args or ""; if pronouns == "" then pronouns = "mi" end
	pronouns = args or ""; if pronouns == "" then pronouns = "ti" end
	pronouns = args or ""; if pronouns == "" then pronouns = "si" end
	pronouns = args or ""; if pronouns == "" then pronouns = "ci" end
	pronouns = args or ""; if pronouns == "" then pronouns = "vi" end
	pronouns = pronouns
	
	-- Go over all the forms in the list
	for key, subforms in pairs(data.forms) do
		-- Extract the person/number from the last 3 characters of the key
		local person = key:sub(-3)
		
		-- Skip these three, as they already had pronouns added earlier
		if pronouns and key ~= "impr_2sg" and key ~= "impr_1pl" and key ~= "impr_2pl" then
			-- Go through each of the alternative subforms and add the pronoun
			for key2, subform in ipairs(subforms) do
				data.forms = pronouns .. " ]"
			end
		end
	end
end


-- Inflection functions

inflections = function(args, data)
	local stem = args
	
	data.forms.infinitive = {stem .. "are"}
	data.forms.gerund = {stem .. "ando"}
	data.forms.pres_ptc = {stem .. "ante"}
	data.forms.past_ptc = {stem .. "ato"}
	
	data.forms.pres_indc_1sg = {stem .. "o"}
	data.forms.pres_indc_2sg = {stem .. "i"}
	data.forms.pres_indc_3sg = {stem .. "a"}
	data.forms.pres_indc_1pl = {stem .. "iamo"}
	data.forms.pres_indc_2pl = {stem .. "ate"}
	data.forms.pres_indc_3pl = {stem .. "ano"}
	
	data.forms.impf_indc_1sg = {stem .. "avo"}
	data.forms.impf_indc_2sg = {stem .. "avi"}
	data.forms.impf_indc_3sg = {stem .. "ava"}
	data.forms.impf_indc_1pl = {stem .. "avamo"}
	data.forms.impf_indc_2pl = {stem .. "avate"}
	data.forms.impf_indc_3pl = {stem .. "avano"}
	
	data.forms.phis_indc_1sg = {stem .. "ai"}
	data.forms.phis_indc_2sg = {stem .. "asti"}
	data.forms.phis_indc_3sg = {stem .. "ò"}
	data.forms.phis_indc_1pl = {stem .. "ammo"}
	data.forms.phis_indc_2pl = {stem .. "aste"}
	data.forms.phis_indc_3pl = {stem .. "arono"}
	
	data.forms.futr_indc_1sg = {stem .. "erò"}
	data.forms.futr_indc_2sg = {stem .. "erai"}
	data.forms.futr_indc_3sg = {stem .. "erà"}
	data.forms.futr_indc_1pl = {stem .. "eremo"}
	data.forms.futr_indc_2pl = {stem .. "erete"}
	data.forms.futr_indc_3pl = {stem .. "eranno"}
	
	data.forms.cond_1sg = {stem .. "erei"}
	data.forms.cond_2sg = {stem .. "eresti"}
	data.forms.cond_3sg = {stem .. "erebbe"}
	data.forms.cond_1pl = {stem .. "eremmo"}
	data.forms.cond_2pl = {stem .. "ereste"}
	data.forms.cond_3pl = {stem .. "erebbero"}
	
	data.forms.pres_subj_123sg = {stem .. "i"}
	data.forms.pres_subj_3sg = nil
	data.forms.pres_subj_1pl = {stem .. "iamo"}
	data.forms.pres_subj_2pl = {stem .. "iate"}
	data.forms.pres_subj_3pl = {stem .. "ino"}
	
	data.forms.impf_subj_12sg = {stem .. "assi"}
	data.forms.impf_subj_3sg = {stem .. "asse"}
	data.forms.impf_subj_1pl = {stem .. "assimo"}
	data.forms.impf_subj_2pl = {stem .. "aste"}
	data.forms.impf_subj_3pl = {stem .. "assero"}
	
	data.forms.impr_2sg = {stem .. "a", "non ]"}
	data.forms.impr_3sg = {stem .. "i"}
	data.forms.impr_1pl = {stem .. "iamo"}
	data.forms.impr_2pl = {stem .. "ate"}
	data.forms.impr_3pl = {stem .. "ino"}
end

inflections = function(args, data)
	inflections(args, data)
	
	local stem = args
	data.refl = true
	
	data.forms.infinitive = {stem .. "arsi"}
	data.forms.gerund = {stem .. "andosi"}
	data.forms.pres_ptc = {stem .. "antesi"}
	table.insert(data.forms.past_ptc, stem .. "atosi")
	if args and mw.ustring.match(args, "ne$") then
		data.forms.impr_2sg = {stem .. "atene", "non te ne ]", "non ]"}
	elseif args and mw.ustring.match(args, "la$") then
		data.forms.impr_2sg = {stem .. "atela", "non te la ]", "non ]"}
	else
		data.forms.impr_2sg = {stem .. "ati", "non ti ]", "non ]"}
	end	
	data.forms.impr_1pl = {stem .. "iamoci"}
	data.forms.impr_2pl = {stem .. "atevi"}
end

inflections = function(args, data)
	local stem = args
	
	data.forms.infinitive = {stem .. "are"}
	data.forms.gerund = {stem .. "ando"}
	data.forms.pres_ptc = {stem .. "ante"}
	data.forms.past_ptc = {stem .. "ato"}
	
	data.forms.pres_indc_1sg = {stem .. "o"}
	data.forms.pres_indc_2sg = {stem .. "hi"}
	data.forms.pres_indc_3sg = {stem .. "a"}
	data.forms.pres_indc_1pl = {stem .. "hiamo"}
	data.forms.pres_indc_2pl = {stem .. "ate"}
	data.forms.pres_indc_3pl = {stem .. "ano"}
	
	data.forms.impf_indc_1sg = {stem .. "avo"}
	data.forms.impf_indc_2sg = {stem .. "avi"}
	data.forms.impf_indc_3sg = {stem .. "ava"}
	data.forms.impf_indc_1pl = {stem .. "avamo"}
	data.forms.impf_indc_2pl = {stem .. "avate"}
	data.forms.impf_indc_3pl = {stem .. "avano"}
	
	data.forms.phis_indc_1sg = {stem .. "ai"}
	data.forms.phis_indc_2sg = {stem .. "asti"}
	data.forms.phis_indc_3sg = {stem .. "ò"}
	data.forms.phis_indc_1pl = {stem .. "ammo"}
	data.forms.phis_indc_2pl = {stem .. "aste"}
	data.forms.phis_indc_3pl = {stem .. "arono"}
	
	data.forms.futr_indc_1sg = {stem .. "herò"}
	data.forms.futr_indc_2sg = {stem .. "herai"}
	data.forms.futr_indc_3sg = {stem .. "herà"}
	data.forms.futr_indc_1pl = {stem .. "heremo"}
	data.forms.futr_indc_2pl = {stem .. "herete"}
	data.forms.futr_indc_3pl = {stem .. "heranno"}
	
	data.forms.cond_1sg = {stem .. "herei"}
	data.forms.cond_2sg = {stem .. "heresti"}
	data.forms.cond_3sg = {stem .. "herebbe"}
	data.forms.cond_1pl = {stem .. "heremmo"}
	data.forms.cond_2pl = {stem .. "hereste"}
	data.forms.cond_3pl = {stem .. "herebbero"}
	
	data.forms.pres_subj_123sg = {stem .. "hi"}
	data.forms.pres_subj_3sg = nil
	data.forms.pres_subj_1pl = {stem .. "hiamo"}
	data.forms.pres_subj_2pl = {stem .. "hiate"}
	data.forms.pres_subj_3pl = {stem .. "hino"}
	
	data.forms.impf_subj_12sg = {stem .. "assi"}
	data.forms.impf_subj_3sg = {stem .. "asse"}
	data.forms.impf_subj_1pl = {stem .. "assimo"}
	data.forms.impf_subj_2pl = {stem .. "aste"}
	data.forms.impf_subj_3pl = {stem .. "assero"}
	
	data.forms.impr_2sg = {stem .. "a", "non ]"}
	data.forms.impr_3sg = {stem .. "hi"}
	data.forms.impr_1pl = {stem .. "hiamo"}
	data.forms.impr_2pl = {stem .. "ate"}
	data.forms.impr_3pl = {stem .. "hino"}
end

inflections = function(args, data)
	inflections(args, data)
	
	local stem = args
	data.refl = true
	
	data.forms.infinitive = {stem .. "arsi"}
	data.forms.gerund = {stem .. "andosi"}
	data.forms.pres_ptc = {stem .. "antesi"}
	table.insert(data.forms.past_ptc, stem .. "atosi")
	if args and mw.ustring.match(args, "ne$") then
		data.forms.impr_2sg = {stem .. "atene", "non te ne ]", "non ]"}
	elseif args and mw.ustring.match(args, "la$") then
		data.forms.impr_2sg = {stem .. "atela", "non te la ]", "non ]"}
	else
		data.forms.impr_2sg = {stem .. "ati", "non ti ]", "non ]"}
	end	
	data.forms.impr_1pl = {stem .. "hiamoci"}
	data.forms.impr_2pl = {stem .. "atevi"}
end

inflections = function(args, data)
	local stem = args
	
	data.forms.infinitive = {stem .. "are"}
	data.forms.gerund = {stem .. "ando"}
	data.forms.pres_ptc = {stem .. "ante"}
	data.forms.past_ptc = {stem .. "ato"}
	
	data.forms.pres_indc_1sg = {stem .. "o"}
	data.forms.pres_indc_2sg = {stem}
	data.forms.pres_indc_3sg = {stem .. "a"}
	data.forms.pres_indc_1pl = {stem .. "amo"}
	data.forms.pres_indc_2pl = {stem .. "ate"}
	data.forms.pres_indc_3pl = {stem .. "ano"}
	
	data.forms.impf_indc_1sg = {stem .. "avo"}
	data.forms.impf_indc_2sg = {stem .. "avi"}
	data.forms.impf_indc_3sg = {stem .. "ava"}
	data.forms.impf_indc_1pl = {stem .. "avamo"}
	data.forms.impf_indc_2pl = {stem .. "avate"}
	data.forms.impf_indc_3pl = {stem .. "avano"}
	
	data.forms.phis_indc_1sg = {stem .. "ai"}
	data.forms.phis_indc_2sg = {stem .. "asti"}
	data.forms.phis_indc_3sg = {stem .. "ò"}
	data.forms.phis_indc_1pl = {stem .. "ammo"}
	data.forms.phis_indc_2pl = {stem .. "aste"}
	data.forms.phis_indc_3pl = {stem .. "arono"}
	
	data.forms.futr_indc_1sg = {stem .. "erò"}
	data.forms.futr_indc_2sg = {stem .. "erai"}
	data.forms.futr_indc_3sg = {stem .. "erà"}
	data.forms.futr_indc_1pl = {stem .. "eremo"}
	data.forms.futr_indc_2pl = {stem .. "erete"}
	data.forms.futr_indc_3pl = {stem .. "eranno"}
	
	data.forms.cond_1sg = {stem .. "erei"}
	data.forms.cond_2sg = {stem .. "eresti"}
	data.forms.cond_3sg = {stem .. "erebbe"}
	data.forms.cond_1pl = {stem .. "eremmo"}
	data.forms.cond_2pl = {stem .. "ereste"}
	data.forms.cond_3pl = {stem .. "erebbero"}
	
	data.forms.pres_subj_123sg = {stem}
	data.forms.pres_subj_3sg = nil
	data.forms.pres_subj_1pl = {stem .. "amo"}
	data.forms.pres_subj_2pl = {stem .. "ate"}
	data.forms.pres_subj_3pl = {stem .. "no"}
	
	data.forms.impf_subj_12sg = {stem .. "assi"}
	data.forms.impf_subj_3sg = {stem .. "asse"}
	data.forms.impf_subj_1pl = {stem .. "assimo"}
	data.forms.impf_subj_2pl = {stem .. "aste"}
	data.forms.impf_subj_3pl = {stem .. "assero"}
	
	data.forms.impr_2sg = {stem .. "a", "non ]"}
	data.forms.impr_3sg = {stem}
	data.forms.impr_1pl = {stem .. "amo"}
	data.forms.impr_2pl = {stem .. "ate"}
	data.forms.impr_3pl = {stem .. "no"}
end

inflections = function(args, data)
	inflections(args, data)
	
	local stem = args
	data.refl = true
	
	data.forms.infinitive = {stem .. "arsi"}
	data.forms.gerund = {stem .. "andosi"}
	data.forms.pres_ptc = {stem .. "antesi"}
	table.insert(data.forms.past_ptc, stem .. "atosi")
	if args and mw.ustring.match(args, "ne$") then
		data.forms.impr_2sg = {stem .. "atene", "non te ne ]", "non ]"}
	elseif args and mw.ustring.match(args, "la$") then
		data.forms.impr_2sg = {stem .. "atela", "non te la ]", "non ]"}
	else
		data.forms.impr_2sg = {stem .. "ati", "non ti ]", "non ]"}
	end	
	data.forms.impr_1pl = {stem .. "amoci"}
	data.forms.impr_2pl = {stem .. "atevi"}
end

inflections = function(args, data)
	local stem = args
	
	data.forms.infinitive = {stem .. "iare"}
	data.forms.gerund = {stem .. "iando"}
	data.forms.pres_ptc = {stem .. "iante"}
	data.forms.past_ptc = {stem .. "iato"}
	
	data.forms.pres_indc_1sg = {stem .. "io"}
	data.forms.pres_indc_2sg = {stem .. "i"}
	data.forms.pres_indc_3sg = {stem .. "ia"}
	data.forms.pres_indc_1pl = {stem .. "iamo"}
	data.forms.pres_indc_2pl = {stem .. "iate"}
	data.forms.pres_indc_3pl = {stem .. "iano"}
	
	data.forms.impf_indc_1sg = {stem .. "iavo"}
	data.forms.impf_indc_2sg = {stem .. "iavi"}
	data.forms.impf_indc_3sg = {stem .. "iava"}
	data.forms.impf_indc_1pl = {stem .. "iavamo"}
	data.forms.impf_indc_2pl = {stem .. "iavate"}
	data.forms.impf_indc_3pl = {stem .. "iavano"}
	
	data.forms.phis_indc_1sg = {stem .. "iai"}
	data.forms.phis_indc_2sg = {stem .. "iasti"}
	data.forms.phis_indc_3sg = {stem .. "iò"}
	data.forms.phis_indc_1pl = {stem .. "iammo"}
	data.forms.phis_indc_2pl = {stem .. "iaste"}
	data.forms.phis_indc_3pl = {stem .. "iarono"}
	
	data.forms.futr_indc_1sg = {stem .. "erò"}
	data.forms.futr_indc_2sg = {stem .. "erai"}
	data.forms.futr_indc_3sg = {stem .. "erà"}
	data.forms.futr_indc_1pl = {stem .. "eremo"}
	data.forms.futr_indc_2pl = {stem .. "erete"}
	data.forms.futr_indc_3pl = {stem .. "eranno"} 
	
	data.forms.cond_1sg = {stem .. "erei"}
	data.forms.cond_2sg = {stem .. "eresti"}
	data.forms.cond_3sg = {stem .. "erebbe"}
	data.forms.cond_1pl = {stem .. "eremmo"}
	data.forms.cond_2pl = {stem .. "ereste"}
	data.forms.cond_3pl = {stem .. "erebbero"}
	
	data.forms.pres_subj_123sg = {stem .. "i"}
	data.forms.pres_subj_3sg = nil
	data.forms.pres_subj_1pl = {stem .. "iamo"}
	data.forms.pres_subj_2pl = {stem .. "iate"}
	data.forms.pres_subj_3pl = {stem .. "ino"}
	
	data.forms.impf_subj_12sg = {stem .. "iassi"}
	data.forms.impf_subj_3sg = {stem .. "iasse"}
	data.forms.impf_subj_1pl = {stem .. "iassimo"}
	data.forms.impf_subj_2pl = {stem .. "iaste"}
	data.forms.impf_subj_3pl = {stem .. "iassero"}
	
	data.forms.impr_2sg = {stem .. "ia", "non ]"}
	data.forms.impr_3sg = {stem .. "i"}
	data.forms.impr_1pl = {stem .. "iamo"}
	data.forms.impr_2pl = {stem .. "iate"}
	data.forms.impr_3pl = {stem .. "ino"}
end

inflections = function(args, data)
	inflections(args, data)
	
	local stem = args
	data.refl = true
	
	data.forms.infinitive = {stem .. "iarsi"}
	data.forms.gerund = {stem .. "iandosi"}
	data.forms.pres_ptc = {stem .. "iantesi"}
	table.insert(data.forms.past_ptc, stem .. "iatosi")
	if args and mw.ustring.match(args, "ne$") then
		data.forms.impr_2sg = {stem .. "iatene", "non te ne ]", "non ]"}
	elseif args and mw.ustring.match(args, "la$") then
		data.forms.impr_2sg = {stem .. "iatela", "non te la ]", "non ]"}
	else
		data.forms.impr_2sg = {stem .. "iati", "non ti ]", "non ]"}
	end	
	data.forms.impr_1pl = {stem .. "iamoci"}
	data.forms.impr_2pl = {stem .. "iatevi"}
end

inflections = function(args, data)
	local stem = args
	
	data.forms.infinitive = {stem .. "ere"}
	data.forms.gerund = {stem .. "endo"}
	data.forms.pres_ptc = {stem .. "ente"}
	data.forms.past_ptc = {stem .. "uto"}
	
	data.forms.pres_indc_1sg = {stem .. "o"}
	data.forms.pres_indc_2sg = {stem .. "i"}
	data.forms.pres_indc_3sg = {stem .. "e"}
	data.forms.pres_indc_1pl = {stem .. "iamo"}
	data.forms.pres_indc_2pl = {stem .. "ete"}
	data.forms.pres_indc_3pl = {stem .. "ono"}
	
	data.forms.impf_indc_1sg = {stem .. "evo"}
	data.forms.impf_indc_2sg = {stem .. "evi"}
	data.forms.impf_indc_3sg = {stem .. "eva"}
	data.forms.impf_indc_1pl = {stem .. "evamo"}
	data.forms.impf_indc_2pl = {stem .. "evate"}
	data.forms.impf_indc_3pl = {stem .. "evano"}
	
	data.forms.phis_indc_1sg = {stem .. "ei"}
	data.forms.phis_indc_2sg = {stem .. "esti"}
	data.forms.phis_indc_3sg = {stem .. "ette", stem .. "é"}
	data.forms.phis_indc_1pl = {stem .. "emmo"}
	data.forms.phis_indc_2pl = {stem .. "este"}
	data.forms.phis_indc_3pl = {stem .. "ettero", stem .. "erono"}
	
	data.forms.futr_indc_1sg = {stem .. "erò"}
	data.forms.futr_indc_2sg = {stem .. "erai"}
	data.forms.futr_indc_3sg = {stem .. "erà"}
	data.forms.futr_indc_1pl = {stem .. "eremo"}
	data.forms.futr_indc_2pl = {stem .. "erete"}
	data.forms.futr_indc_3pl = {stem .. "eranno"}
	
	data.forms.cond_1sg = {stem .. "erei"}
	data.forms.cond_2sg = {stem .. "eresti"}
	data.forms.cond_3sg = {stem .. "erebbe"}
	data.forms.cond_1pl = {stem .. "eremmo"}
	data.forms.cond_2pl = {stem .. "ereste"}
	data.forms.cond_3pl = {stem .. "erebbero"}
	
	data.forms.pres_subj_123sg = {stem .. "a"}
	data.forms.pres_subj_3sg = nil
	data.forms.pres_subj_1pl = {stem .. "iamo"}
	data.forms.pres_subj_2pl = {stem .. "iate"}
	data.forms.pres_subj_3pl = {stem .. "ano"}
	
	data.forms.impf_subj_12sg = {stem .. "essi"}
	data.forms.impf_subj_3sg = {stem .. "esse"}
	data.forms.impf_subj_1pl = {stem .. "essimo"}
	data.forms.impf_subj_2pl = {stem .. "este"}
	data.forms.impf_subj_3pl = {stem .. "essero"}
	
	if mw.ustring.match(stem, "a$") then
		data.forms.impr_2sg = {stem .. "i", "non ]"}
	elseif args and mw.ustring.match(args, "orre$") then
		data.forms.impr_2sg = {stem .. "i", "non  .. "]]"}
	else
		data.forms.impr_2sg = {stem .. "i", "non ]"}
	end	
	
	data.forms.impr_3sg = {stem .. "a"}
	data.forms.impr_1pl = {stem .. "iamo"}
	data.forms.impr_2pl = {stem .. "ete"}
	data.forms.impr_3pl = {stem .. "ano"}
end

inflections = function(args, data)
	inflections(args, data)
	
	local stem = args
	local stem2 = ""
	data.refl = true
	
	data.forms.infinitive = {stem .. "ersi"}
	data.forms.gerund = {stem .. "endosi"}
	data.forms.pres_ptc = {stem .. "entesi"}
	table.insert(data.forms.past_ptc, stem .. "utosi")
	if mw.ustring.match(stem, "a$") then
		if args and mw.ustring.match(args, "ne$") then
			data.forms.impr_2sg = {stem .. "itene", "non te ne ]", "non ]"}
		elseif args and mw.ustring.match(args, "la$") then
			data.forms.impr_2sg = {stem .. "itela", "non te la ]", "non ]"}
		else
			data.forms.impr_2sg = {stem .. "i", "non ti ]", "non ]"}
		end	
	elseif args and mw.ustring.match(args, "orsi$") then
		stem2 = stem:gsub("(n)$", { = "r"})
		if args and mw.ustring.match(args, "ne$") then
			data.forms.impr_2sg = {stem .. "itene", "non te ne ]", "non ]"}
		elseif args and mw.ustring.match(args, "la$") then
			data.forms.impr_2sg = {stem .. "itela", "non te la ]", "non ]"}
		else
			data.forms.impr_2sg = {stem .. "i", "non ti ]", "non ]"}
		end	
	else
		if args and mw.ustring.match(args, "ne$") then
			data.forms.impr_2sg = {stem .. "itene", "non te ne ]", "non ]"}
		elseif args and mw.ustring.match(args, "la$") then
			data.forms.impr_2sg = {stem .. "itela", "non te la ]", "non ]"}
		else
			data.forms.impr_2sg = {stem .. "iti", "non ti ]", "non ]"}
		end	
	end	
	data.forms.impr_1pl = {stem .. "iamoci"}
	data.forms.impr_2pl = {stem .. "etevi"}
end

inflections = function(args, data)
	local stem = args
	
	data.forms.infinitive = {stem .. "ire"}
	data.forms.gerund = {stem .. "endo"}
	data.forms.pres_ptc = {stem .. "ente"}
	data.forms.past_ptc = {stem .. "ito"}
	
	data.forms.pres_indc_1sg = {stem .. "o"}
	data.forms.pres_indc_2sg = {stem .. "i"}
	data.forms.pres_indc_3sg = {stem .. "e"}
	data.forms.pres_indc_1pl = {stem .. "iamo"}
	data.forms.pres_indc_2pl = {stem .. "ite"}
	data.forms.pres_indc_3pl = {stem .. "ono"}
	
	data.forms.impf_indc_1sg = {stem .. "ivo"}
	data.forms.impf_indc_2sg = {stem .. "ivi"}
	data.forms.impf_indc_3sg = {stem .. "iva"}
	data.forms.impf_indc_1pl = {stem .. "ivamo"}
	data.forms.impf_indc_2pl = {stem .. "ivate"}
	data.forms.impf_indc_3pl = {stem .. "ivano"}
	
	data.forms.phis_indc_1sg = {stem .. "ii"}
	data.forms.phis_indc_2sg = {stem .. "isti"}
	data.forms.phis_indc_3sg = {stem .. "ì"}
	data.forms.phis_indc_1pl = {stem .. "immo"}
	data.forms.phis_indc_2pl = {stem .. "iste"}
	data.forms.phis_indc_3pl = {stem .. "irono"}
	
	data.forms.futr_indc_1sg = {stem .. "irò"}
	data.forms.futr_indc_2sg = {stem .. "irai"}
	data.forms.futr_indc_3sg = {stem .. "irà"}
	data.forms.futr_indc_1pl = {stem .. "iremo"}
	data.forms.futr_indc_2pl = {stem .. "irete"}
	data.forms.futr_indc_3pl = {stem .. "iranno"}
	
	data.forms.cond_1sg = {stem .. "irei"}
	data.forms.cond_2sg = {stem .. "iresti"}
	data.forms.cond_3sg = {stem .. "irebbe"}
	data.forms.cond_1pl = {stem .. "iremmo"}
	data.forms.cond_2pl = {stem .. "ireste"}
	data.forms.cond_3pl = {stem .. "irebbero"}
	
	data.forms.pres_subj_123sg = {stem .. "a"}
	data.forms.pres_subj_3sg = nil
	data.forms.pres_subj_1pl = {stem .. "iamo"}
	data.forms.pres_subj_2pl = {stem .. "iate"}
	data.forms.pres_subj_3pl = {stem .. "ano"}
	
	data.forms.impf_subj_12sg = {stem .. "issi"}
	data.forms.impf_subj_3sg = {stem .. "isse"}
	data.forms.impf_subj_1pl = {stem .. "issimo"}
	data.forms.impf_subj_2pl = {stem .. "iste"}
	data.forms.impf_subj_3pl = {stem .. "issero"}
	
	data.forms.impr_2sg = {stem .. "i", "non ]"}
	data.forms.impr_3sg = {stem .. "a"}
	data.forms.impr_1pl = {stem .. "iamo"}
	data.forms.impr_2pl = {stem .. "ite"}
	data.forms.impr_3pl = {stem .. "ano"}
end

inflections = function(args, data)
	inflections(args, data)
	
	local stem = args
	data.refl = true
	
	data.forms.infinitive = {stem .. "irsi"}
	data.forms.gerund = {stem .. "endosi"}
	data.forms.pres_ptc = {stem .. "entesi"}
	table.insert(data.forms.past_ptc, stem .. "itosi")
	if args and mw.ustring.match(args, "ne$") then
		data.forms.impr_2sg = {stem .. "itene", "non te ne ]", "non ]"}
	elseif args and mw.ustring.match(args, "la$") then
		data.forms.impr_2sg = {stem .. "itela", "non te la ]", "non ]"}
	else
		data.forms.impr_2sg = {stem .. "iti", "non ti ]", "non ]"}
	end	
	data.forms.impr_1pl = {stem .. "iamoci"}
	data.forms.impr_2pl = {stem .. "itevi"}
end

inflections = function(args, data)
	local stem = args
	
	data.forms.infinitive = {stem .. "ire"}
	data.forms.gerund = {stem .. "endo"}
	data.forms.pres_ptc = {stem .. "ente"}
	data.forms.past_ptc = {stem .. "ito"}
	
	data.forms.pres_indc_1sg = {stem .. "isco"}
	data.forms.pres_indc_2sg = {stem .. "isci"}
	data.forms.pres_indc_3sg = {stem .. "isce"}
	data.forms.pres_indc_1pl = {stem .. "iamo"}
	data.forms.pres_indc_2pl = {stem .. "ite"}
	data.forms.pres_indc_3pl = {stem .. "iscono"}
	
	data.forms.impf_indc_1sg = {stem .. "ivo"}
	data.forms.impf_indc_2sg = {stem .. "ivi"}
	data.forms.impf_indc_3sg = {stem .. "iva"}
	data.forms.impf_indc_1pl = {stem .. "ivamo"}
	data.forms.impf_indc_2pl = {stem .. "ivate"}
	data.forms.impf_indc_3pl = {stem .. "ivano"}
	
	data.forms.phis_indc_1sg = {stem .. "ii"}
	data.forms.phis_indc_2sg = {stem .. "isti"}
	data.forms.phis_indc_3sg = {stem .. "ì"}
	data.forms.phis_indc_1pl = {stem .. "immo"}
	data.forms.phis_indc_2pl = {stem .. "iste"}
	data.forms.phis_indc_3pl = {stem .. "irono"}
	
	data.forms.futr_indc_1sg = {stem .. "irò"}
	data.forms.futr_indc_2sg = {stem .. "irai"}
	data.forms.futr_indc_3sg = {stem .. "irà"}
	data.forms.futr_indc_1pl = {stem .. "iremo"}
	data.forms.futr_indc_2pl = {stem .. "irete"}
	data.forms.futr_indc_3pl = {stem .. "iranno"}
	
	data.forms.cond_1sg = {stem .. "irei"}
	data.forms.cond_2sg = {stem .. "iresti"}
	data.forms.cond_3sg = {stem .. "irebbe"}
	data.forms.cond_1pl = {stem .. "iremmo"}
	data.forms.cond_2pl = {stem .. "ireste"}
	data.forms.cond_3pl = {stem .. "irebbero"} 
	
	data.forms.pres_subj_123sg = {stem .. "isca"}
	data.forms.pres_subj_3sg = nil
	data.forms.pres_subj_1pl = {stem .. "iamo"}
	data.forms.pres_subj_2pl = {stem .. "iate"}
	data.forms.pres_subj_3pl = {stem .. "iscano"}
	
	data.forms.impf_subj_12sg = {stem .. "issi"}
	data.forms.impf_subj_3sg = {stem .. "isse"}
	data.forms.impf_subj_1pl = {stem .. "issimo"}
	data.forms.impf_subj_2pl = {stem .. "iste"}
	data.forms.impf_subj_3pl = {stem .. "issero"}
	
	data.forms.impr_2sg = {stem .. "isci", "non ]"}
	data.forms.impr_3sg = {stem .. "isca"}
	data.forms.impr_1pl = {stem .. "iamo"}
	data.forms.impr_2pl = {stem .. "ite"}
	data.forms.impr_3pl = {stem .. "iscano"}
end

inflections = function(args, data)
	inflections(args, data)
	
	local stem = args
	data.refl = true
	
	data.forms.infinitive = {stem .. "irsi"}
	data.forms.gerund = {stem .. "endosi"}
	data.forms.pres_ptc = {stem .. "entesi"}
	table.insert(data.forms.past_ptc, stem .. "itosi")
	if args and mw.ustring.match(args, "ne$") then
		data.forms.impr_2sg = {stem .. "iscitene", "non te ne ]", "non ]"}
	elseif args and mw.ustring.match(args, "la$") then
		data.forms.impr_2sg = {stem .. "iscitela", "non te la ]", "non ]"}
	else
		data.forms.impr_2sg = {stem .. "isciti", "non ti ]", "non ]"}
	end	
	data.forms.impr_1pl = {stem .. "iamoci"}
	data.forms.impr_2pl = {stem .. "itevi"}
end

inflections = function(args, data)
	local stem = args
	
	data.forms.infinitive = {stem .. "urre"}
	data.forms.gerund = {stem .. "ucendo"}
	data.forms.pres_ptc = {stem .. "ucente"}
	data.forms.past_ptc = {stem .. "otto"}
	
	data.forms.pres_indc_1sg = {stem .. "uco"}
	data.forms.pres_indc_2sg = {stem .. "uci"}
	data.forms.pres_indc_3sg = {stem .. "uce"}
	data.forms.pres_indc_1pl = {stem .. "uciamo"}
	data.forms.pres_indc_2pl = {stem .. "ucete"}
	data.forms.pres_indc_3pl = {stem .. "ucono"}
	
	data.forms.impf_indc_1sg = {stem .. "ucevo"}
	data.forms.impf_indc_2sg = {stem .. "ucevi"}
	data.forms.impf_indc_3sg = {stem .. "uceva"}
	data.forms.impf_indc_1pl = {stem .. "ucevamo"}
	data.forms.impf_indc_2pl = {stem .. "ucevate"}
	data.forms.impf_indc_3pl = {stem .. "ucevano"}
	
	data.forms.phis_indc_1sg = {stem .. "ussi"}
	data.forms.phis_indc_2sg = {stem .. "ucesti"}
	data.forms.phis_indc_3sg = {stem .. "usse"}
	data.forms.phis_indc_1pl = {stem .. "ucemmo"}
	data.forms.phis_indc_2pl = {stem .. "uceste"}
	data.forms.phis_indc_3pl = {stem .. "ussero"}
	
	data.forms.futr_indc_1sg = {stem .. "urrò"}
	data.forms.futr_indc_2sg = {stem .. "urrai"}
	data.forms.futr_indc_3sg = {stem .. "urrà"}
	data.forms.futr_indc_1pl = {stem .. "urremo"}
	data.forms.futr_indc_2pl = {stem .. "urrete"}
	data.forms.futr_indc_3pl = {stem .. "urranno"} 
	
	data.forms.cond_1sg = {stem .. "urrei"}
	data.forms.cond_2sg = {stem .. "urresti"}
	data.forms.cond_3sg = {stem .. "urrebbe"}
	data.forms.cond_1pl = {stem .. "urremmo"}
	data.forms.cond_2pl = {stem .. "urreste"}
	data.forms.cond_3pl = {stem .. "urrebbero"} 
	
	data.forms.pres_subj_123sg = {stem .. "uca"}
	data.forms.pres_subj_3sg = nil
	data.forms.pres_subj_1pl = {stem .. "uciamo"}
	data.forms.pres_subj_2pl = {stem .. "uciate"}
	data.forms.pres_subj_3pl = {stem .. "ucano"}
	
	data.forms.impf_subj_12sg = {stem .. "ucessi"}
	data.forms.impf_subj_3sg = {stem .. "ucesse"}
	data.forms.impf_subj_1pl = {stem .. "ucessimo"}
	data.forms.impf_subj_2pl = {stem .. "uceste"}
	data.forms.impf_subj_3pl = {stem .. "ucessero"}
	
	data.forms.impr_2sg = {stem .. "uci", "non ]"}
	data.forms.impr_3sg = {stem .. "uca"}
	data.forms.impr_1pl = {stem .. "uciamo"}
	data.forms.impr_2pl = {stem .. "ucete"}
	data.forms.impr_3pl = {stem .. "ucano"}
end

inflections = function(args, data)
	inflections(args, data)
	
	local stem = args
	data.refl = true
	
	data.forms.infinitive = {stem .. "ursi"}
	data.forms.gerund = {stem .. "ucendosi"}
	data.forms.pres_ptc = {stem .. "ucentesi"}
	table.insert(data.forms.past_ptc, stem .. "ottosi")
	if args and mw.ustring.match(args, "ne$") then
		data.forms.impr_2sg = {stem .. "ucitene", "non te ne ]", "non ]"}
	elseif args and mw.ustring.match(args, "la$") then
		data.forms.impr_2sg = {stem .. "ucitela", "non te la ]", "non ]"}
	else
		data.forms.impr_2sg = {stem .. "uciti", "non ti ]", "non ]"}
	end	
	data.forms.impr_1pl = {stem .. "uciamoci"}
	data.forms.impr_2pl = {stem .. "ucetevi"}
end

inflections = function(args, data)
	local stem = args
	
	data.forms.infinitive = {stem .. "fare"}
	data.forms.gerund = {stem .. "facendo"}
	data.forms.pres_ptc = {stem .. "facente"}
	data.forms.past_ptc = {stem .. "fatto"}
	
	data.forms.pres_indc_1sg = {stem .. "faccio", stem .. "fò"}
	data.forms.pres_indc_2sg = {stem .. "fai"}
	data.forms.pres_indc_3sg = {stem .. "fà"}
	data.forms.pres_indc_1pl = {stem .. "facciamo"}
	data.forms.pres_indc_2pl = {stem .. "fate"}
	data.forms.pres_indc_3pl = {stem .. "fanno"}
	
	data.forms.impf_indc_1sg = {stem .. "facevo"}
	data.forms.impf_indc_2sg = {stem .. "facevi"}
	data.forms.impf_indc_3sg = {stem .. "faceva"}
	data.forms.impf_indc_1pl = {stem .. "facevamo"}
	data.forms.impf_indc_2pl = {stem .. "facevate"}
	data.forms.impf_indc_3pl = {stem .. "facevano"}
	
	data.forms.phis_indc_1sg = {stem .. "feci"}
	data.forms.phis_indc_2sg = {stem .. "facesti"}
	data.forms.phis_indc_3sg = {stem .. "fece"}
	data.forms.phis_indc_1pl = {stem .. "facemmo"}
	data.forms.phis_indc_2pl = {stem .. "faceste"}
	data.forms.phis_indc_3pl = {stem .. "fecero"}
	
	data.forms.futr_indc_1sg = {stem .. "farò"}
	data.forms.futr_indc_2sg = {stem .. "farai"}
	data.forms.futr_indc_3sg = {stem .. "farà"}
	data.forms.futr_indc_1pl = {stem .. "faremo"}
	data.forms.futr_indc_2pl = {stem .. "farete"}
	data.forms.futr_indc_3pl = {stem .. "faranno"}
	
	data.forms.cond_1sg = {stem .. "farei"}
	data.forms.cond_2sg = {stem .. "faresti"}
	data.forms.cond_3sg = {stem .. "farebbe"}
	data.forms.cond_1pl = {stem .. "faremmo"}
	data.forms.cond_2pl = {stem .. "fareste"}
	data.forms.cond_3pl = {stem .. "farebbero"} 
	
	data.forms.pres_subj_123sg = {stem .. "faccia"}
	data.forms.pres_subj_3sg = nil
	data.forms.pres_subj_1pl = {stem .. "facciamo"}
	data.forms.pres_subj_2pl = {stem .. "facciate"}
	data.forms.pres_subj_3pl = {stem .. "facciano"}
	
	data.forms.impf_subj_12sg = {stem .. "facessi"}
	data.forms.impf_subj_3sg = {stem .. "facesse"}
	data.forms.impf_subj_1pl = {stem .. "facessimo"}
	data.forms.impf_subj_2pl = {stem .. "faceste"}
	data.forms.impf_subj_3pl = {stem .. "facessero"}
	
	data.forms.impr_2sg = {stem .. "fa", stem .. "fai", stem .. "fa'", "non ]"}
	data.forms.impr_3sg = {stem .. "faccia"}
	data.forms.impr_1pl = {stem .. "facciamo"}
	data.forms.impr_2pl = {stem .. "fate"}
	data.forms.impr_3pl = {stem .. "facciano"}
end

-- Shows the table with the given forms
function make_table(data)
	return [=[<div class="NavFrame">
<div class="NavHead">&nbsp; &nbsp; ]=] .. m_baglantilar.tam_bag({dil = lang, alt = data.forms.infinitive}, "sözcük").. [=[</div>
<div class="NavContent">
{| style="background:#F0F0F0;border-collapse:separate;border-spacing:2px;width:100%" class="inflection-table"
|-
! colspan="1" style="background:#e2e4c0" | <span title="infinito">mastar</span>
| colspan="1" | ]=] .. show_form(data.forms.infinitive) .. [=[

|-
! colspan="2" style="background:#e2e4c0" | <span title="verbo ausiliare">ek eylem</span>
| colspan="1" | ]=] .. show_form(data.forms.aux) .. [=[

! colspan="2" style="background:#e2e4c0" | <span title="gerundio">ulaç</span>
| colspan="2" | ]=] .. show_form(data.forms.gerund) .. [=[

|-
! colspan="2" style="background:#e2e4c0" |  <span title="participio presente">şimdiki zaman ortacı</span>
| colspan="1" | ]=] .. show_form(data.forms.pres_ptc) .. [=[

! colspan="2" style="background:#e2e4c0" | <span title="participio passato">geçmiş zaman ortacı</span>
| colspan="2" | ]=] .. show_form(data.forms.past_ptc) .. [=[

|-
! colspan="1" rowspan="2" style="background:#C0C0C0" | person
! colspan="3" style="background:#C0C0C0" | tekil
! colspan="3" style="background:#C0C0C0" | çoğul
|-
! style="background:#C0C0C0;width:12.5%" | 1. kişi
! style="background:#C0C0C0;width:12.5%" | 2. kişi
! style="background:#C0C0C0;width:12.5%" | 3. kişi
! style="background:#C0C0C0;width:12.5%" | 1. kişi
! style="background:#C0C0C0;width:12.5%" | 2. kişi
! style="background:#C0C0C0;width:12.5%" | 3. kişi
|-
! style="background:#c0cfe4" colspan="1" | <span title="indicativo">bildirme</span>
! style="background:#c0cfe4" | io
! style="background:#c0cfe4" | tu
! style="background:#c0cfe4" | lui/lei, esso/essa
! style="background:#c0cfe4" | noi
! style="background:#c0cfe4" | voi
! style="background:#c0cfe4" | loro, essi/esse
|-
! style="height:3em;background:#c0cfe4" colspan="1" | <span title="presente">şimdiki zaman</span>
| ]=] .. show_form(data.forms.pres_indc_1sg) .. [=[

| ]=] .. show_form(data.forms.pres_indc_2sg) .. [=[

| ]=] .. show_form(data.forms.pres_indc_3sg) .. [=[

| ]=] .. show_form(data.forms.pres_indc_1pl) .. [=[

| ]=] .. show_form(data.forms.pres_indc_2pl) .. [=[

| ]=] .. show_form(data.forms.pres_indc_3pl) .. [=[

|-
! style="height:3em;background:#c0cfe4" colspan="1" | <span title="imperfetto">kusurlu geçmiş zaman</span>
| ]=] .. show_form(data.forms.impf_indc_1sg) .. [=[

| ]=] .. show_form(data.forms.impf_indc_2sg) .. [=[

| ]=] .. show_form(data.forms.impf_indc_3sg) .. [=[

| ]=] .. show_form(data.forms.impf_indc_1pl) .. [=[

| ]=] .. show_form(data.forms.impf_indc_2pl) .. [=[

| ]=] .. show_form(data.forms.impf_indc_3pl) .. [=[

|-
! style="height:3em;background:#c0cfe4" colspan="1" | <span title="passato remoto">belirli geçmiş zaman</span>
| ]=] .. show_form(data.forms.phis_indc_1sg) .. [=[

| ]=] .. show_form(data.forms.phis_indc_2sg) .. [=[

| ]=] .. show_form(data.forms.phis_indc_3sg) .. [=[

| ]=] .. show_form(data.forms.phis_indc_1pl) .. [=[

| ]=] .. show_form(data.forms.phis_indc_2pl) .. [=[

| ]=] .. show_form(data.forms.phis_indc_3pl) .. [=[

|-
! style="height:3em;background:#c0cfe4" colspan="1" | <span title="futuro semplice">gelecek zaman</span>
| ]=] .. show_form(data.forms.futr_indc_1sg) .. [=[

| ]=] .. show_form(data.forms.futr_indc_2sg) .. [=[

| ]=] .. show_form(data.forms.futr_indc_3sg) .. [=[

| ]=] .. show_form(data.forms.futr_indc_1pl) .. [=[

| ]=] .. show_form(data.forms.futr_indc_2pl) .. [=[

| ]=] .. show_form(data.forms.futr_indc_3pl) .. [=[

|-
! style="background:#c0d8e4" colspan="1" | <span title="condizionale">şart</span>
! style="background:#c0d8e4" | io
! style="background:#c0d8e4" | tu
! style="background:#c0d8e4" | lui/lei, esso/essa
! style="background:#c0d8e4" | noi
! style="background:#c0d8e4" | voi
! style="background:#c0d8e4" | loro, essi/esse
|-
! style="height:3em;background:#c0d8e4" colspan="1" | <span title="condizionale presente">şimdiki zaman</span>
| ]=] .. show_form(data.forms.cond_1sg) .. [=[

| ]=] .. show_form(data.forms.cond_2sg) .. [=[

| ]=] .. show_form(data.forms.cond_3sg) .. [=[

| ]=] .. show_form(data.forms.cond_1pl) .. [=[

| ]=] .. show_form(data.forms.cond_2pl) .. [=[

| ]=] .. show_form(data.forms.cond_3pl) .. [=[

|-
! style="background:#c0e4c0" colspan="1" | <span title="congiuntivo">dilek</span>
! style="background:#c0e4c0" | che io
! style="background:#c0e4c0" | che tu
! style="background:#c0e4c0" | che lui/che lei, che esso/che essa
! style="background:#c0e4c0" | che noi
! style="background:#c0e4c0" | che voi
! style="background:#c0e4c0" | che loro, che essi/che esse
|-
! style="height:3em;background:#c0e4c0" | <span title="congiuntivo presente">şimdiki zaman</span>
| ]=] .. show_form(data.forms.pres_subj_1sg) .. [=[

| ]=] .. show_form(data.forms.pres_subj_2sg) .. [=[

| ]=] .. show_form(data.forms.pres_subj_3sg) .. [=[

| ]=] .. show_form(data.forms.pres_subj_1pl) .. [=[

| ]=] .. show_form(data.forms.pres_subj_2pl) .. [=[

| ]=] .. show_form(data.forms.pres_subj_3pl) .. [=[

|-
! style="height:3em;background:#c0e4c0" rowspan="1" | <span title="congiuntivo imperfetto">kusurlu geçmiş zaman</span>
| ]=] .. show_form(data.forms.impf_subj_1sg) .. [=[

| ]=] .. show_form(data.forms.impf_subj_2sg) .. [=[

| ]=] .. show_form(data.forms.impf_subj_3sg) .. [=[

| ]=] .. show_form(data.forms.impf_subj_1pl) .. [=[

| ]=] .. show_form(data.forms.impf_subj_2pl) .. [=[

| ]=] .. show_form(data.forms.impf_subj_3pl) .. [=[

|-
! colspan="1" rowspan="2" style="height:3em;background:#e4d4c0" | <span title="imperativo">emir</span>
! style="background:#e4d4c0" | &mdash;
! style="background:#e4d4c0" | tu
! style="background:#e4d4c0" | Lei
! style="background:#e4d4c0" | noi
! style="background:#e4d4c0" | voi
! style="background:#e4d4c0" | Loro
|-
|
| ]=] .. show_form(data.forms.impr_2sg) .. [=[

| ]=] .. show_form(data.forms.impr_3sg) .. [=[

| ]=] .. show_form(data.forms.impr_1pl) .. [=[

| ]=] .. show_form(data.forms.impr_2pl) .. [=[

| ]=] .. show_form(data.forms.impr_3pl) .. [=[

|-
|}</div></div>]=]
end

-- Shows forms with links, or a dash if empty
function show_form(subforms)
	if not subforms then
		return "&mdash;"
	elseif type(subforms) ~= "table" then
		error("a non-table value was given in the list of inflected forms.")
	elseif #subforms == 0 then
		return "&mdash;"
	end
	
	local ret = {}
	
	-- Go over each subform and insert links
	for key, subform in ipairs(subforms) do
		table.insert(ret, m_baglantilar.tam_bag({dil = lang, sozcuk = subform}))
	end
	
	return table.concat(ret, ", ")
end

return export