Modül:it-başlıkbaşı

Merhaba, buraya Modül:it-başlıkbaşı kelimesinin anlamını aramaya geldiniz. DICTIOUS'da Modül:it-başlıkbaşı kelimesinin tüm sözlük anlamlarını bulmakla kalmayacak, aynı zamanda etimolojisini, özelliklerini ve Modül:it-başlıkbaşı kelimesinin tekil ve çoğul olarak nasıl söylendiğini de öğreneceksiniz. Modül:it-başlıkbaşı kelimesi hakkında bilmeniz gereken her şey burada. Modül:it-başlıkbaşı 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 Lua modülü, şu şablonların çıktısını vermektedir:


-- This module contains code for Italian headword templates.
-- Templates covered are it-adj, it-noun and it-proper noun.
-- See ] for Italian conjugation templates.
local export = {}

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

function export.itadj(frame)
	local params = {
		 = {},
		 = {},
		 = {},
		 = {},
		 = {},
		
		 = {},
		 = {},
	}
	
	local args = require("Module:parameters").process(frame:getParent().args, params)
	
	local veri = {dil = lang, soz_kategorisi = "ön adlar", kategoriler = {}, sira_anahtari = args, baslar = {args}, cinsiyetler = {}, cekimler = {}}
	
	local stem = args
	local end1 = args
	
	if not stem then -- all specified
		veri.baslar = args
		veri.cekimler = {
			{etiket = "dişil tekil", args},
			{etiket = "eril çoğul", args},
			{etiket = "dişil çoğul", args}
		}
	elseif not end1 then -- no ending vowel parameters - generate default
		veri.cekimler = {
			{etiket = "dişil tekil", stem .. "a"},
			{etiket = "eril çoğul", make_plural(stem .. "o","m")},
			{etiket = "dişil çoğul", make_plural(stem .. "a","f")}
		}
	else
		local end2 = args or error("Either 0, 2 or 4 vowel endings should be supplied!")
		local end3 = args
		
		if not end3 then -- 2 ending vowel parameters - m and f are identical
			veri.cekimler = {
				{etiket = "masculine and feminine plural", stem .. end2}
			}
		else -- 4 ending vowel parameters - specify exactly
			local end4 = args or error("Either 0, 2 or 4 vowel endings should be supplied!")
			veri.cekimler = {
				{etiket = "dişil tekil", stem .. end2},
				{etiket = "eril çoğul", stem .. end3},
				{etiket = "dişil çoğul", stem .. end4}
			}
		end
	end
	
	return require("Modül:başlık başı").tam_baslikbasi(veri)
end

function export.itnoun(frame)
	local PAGENAME = mw.title.getCurrentTitle().text
	
	local params = {
		 = {list = "c", default = "?"},
		 = {list = "ç"},
		
		 = {list = true},
		 = {list = true},
		 = {list = true},
		 = {list = true},
		 = {list = true},
		 = {},
	}
	
	local args = require("Modül:parameters").process(frame:getParent().args, params)
	
	local veri = {dil = lang, soz_kategorisi = "adlar", kategoriler = {}, sira_anahtari = args, baslar = args, cinsiyetler = {}, cekimler = {}}
	
	-- Gender
	if args == "mf" then
		veri.cinsiyetler = {"m", "f"}
	else
		veri.cinsiyetler = args
	end
	
	if #veri.cinsiyetler == 0 then
		veri.cinsiyetler = {"?"}
	end

	local head = veri.baslar and require("Modül:bağlantılar").kaldir_baglantilari(veri.baslar) or PAGENAME
	-- Plural
	local plural = args
	
	if not plural and #args == 0 and #args == 0 then
		args = make_plural(head, veri.cinsiyetler)
	end
	
	if plural == "~" then
		table.insert(veri.cekimler, {etiket = "] ve ]"})
		table.insert(veri.kategoriler, "İtalyanca sayılamayan adlar")
		table.insert(veri.kategoriler, "İtalyanca sayılabilen adlar")
	end
	
	if plural == "-" then
		table.insert(veri.cekimler, {etiket = "]"})
		table.insert(veri.kategoriler, "İtalyanca sayılamayan adlar")
	end
	
	if plural ~= "-" and plural ~= "~" and #args > 0 then
		args.etiket = "çoğul"
		table.insert(veri.cekimler, args)
	end
	
	-- Other gender
	if #args > 0 then
		args.etiket = "dişil"
		table.insert(veri.cekimler, args)
	end
	
	if #args > 0  then
		args.etiket = "eril"
		table.insert(veri.cekimler, args)
	end
	
	if #args > 0 then
		args.etiket = "eril çoğul"
		table.insert(veri.cekimler, args)
	end

	if #args > 0 then
		args.etiket = "dişil çoğul"
		table.insert(veri.cekimler, args)
	end

	-- Category
	if head:find('o$') and (veri.cinsiyetler == "d" or veri.cinsiyetler == "f") then
		table.insert(veri.kategoriler, "İtalyanca geçersiz cinsiyetli adlar")
	end
	
	if head:find('a$') and (veri.cinsiyetler == "e" or veri.cinsiyetler == "m") then
		table.insert(veri.kategoriler, "İtalyanca geçersiz cinsiyetli adlar")
	end
	
	return require("Modül:başlık başı").tam_baslikbasi(veri)
end

-- Generate a default plural form, which is correct for most regular nouns
function make_plural(word, gender)
	-- If there are spaces in the term, then we can't reliably form the plural.
	-- Return nothing instead.
	if word:find(" ") then
		return nil
	elseif word:find("io$") then
		word = word:gsub("io$", "i")
	elseif word:find("ologo$") then
		word = word:gsub("o$", "i")
	elseif word:find("o$") then
		word = word:gsub("o$", "hi")
	elseif word:find("o$") then
		word = word:gsub("o$", "i")
	elseif word:find("a$") then
		word = word:gsub("a$", (gender == "m" and "hi" or "he"))
	elseif word:find("ia$") then
		word = word:gsub("ia$", "e")
	elseif word:find("a$") then
		word = word:gsub("a$", (gender == "m" and "i" or "e"))
	elseif word:find("e$") then
		word = word:gsub("e$", "i")
	end
	return word
end

-- Generate a default feminine form
function make_feminine(word, gender)
	if word:find("o$") then
		return word:gsub("o$", "a")
	else
		return word
	end
end

function export.itprop(frame)
	local params = {
		 = {list = "g", default = "?"},
		 = {},
		 = {},
		 = {},
		 = {},
	}
	
	local args = require("Module:parameters").process(frame:getParent().args, params)
	
	local veri = {dil = lang, soz_kategorisi = "proper nouns", kategoriler = {}, sira_anahtari = args, baslar = {args}, cinsiyetler = args, cekimler = {}}
	
	for i, g in ipairs(veri.cinsiyetler) do
		if g == "p" then
			veri.cinsiyetler = "?-p"
		end
		
		if g == "m-p" or g == "f-p" or g == "?-p" or g == "p" then
			table.insert(veri.cekimler, {etiket = "]"})
			table.insert(veri.kategoriler, lang:getirAsilAd() .. " pluralia tantum")
			break
		end
	end
	if args then
		table.insert(veri.cekimler, {etiket = "eril", args})
	end
	if args then
		table.insert(veri.cekimler, {etiket = "dişil", args})
	end
	
	return require("Modül:başlık başı").tam_baslikbasi(veri)
end

return export

-- For Vim, so we get 4-space tabs
-- vim: set ts=4 sw=4 noet: