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

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


local m_baslikbasi = require("Modül:başlık başı")
local com = require("Modül:he-genel")

local export = {}
local pos_functions = {}

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

local function get_params_list(args, argprefix)
	local export = {}
	i = 1
	term = argprefix

	while args ~= nil and args ~= "" do
		table.insert(export, term)

		i = i + 1
		term = argprefix .. i
	end
	return export
end

local function make_params_array(args, params)
	local export = {}
	for _, param in ipairs(params) do
		table.insert(export, args)
	end
	return export
end

local function maybe_get_inflection(args, name, params, list, accel, is_construct)
	if list then
		params = get_params_list(args, params)
	end
	
	local tbl = {}
	if type(params) ~= "table" then
		params = {params}
	end
	for _, param in ipairs(params) do
		local paramwv = param .. "wv"
		local paramdwv = param .. "dwv"
		if args or args or args then
			tbl.label = name
			tbl.accel = accel
			if is_construct == true then
				table.insert(tbl, com.gen_link_ending_with_makaf(args, args, args))
			else
				table.insert(tbl, com.gen_link(args, args, args))
			end
		end
		if args == "" or args == "" or args == "" then
		elseif args ~= nil and args ~= nil then
		end
	end
	return next(tbl) and tbl
end

-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.goster(frame)
	local args = {}
	for k, v in pairs(frame:getParent().args) do
		if v ~= "" then
			args = v
		end
	end
	local poscat = frame.args or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
	
	if frame.args and (args == "" or not args) then args = frame.args end
	
	local veri = {dil = lang, soz_kategorisi = poscat, kategoriler = {}, baslar = make_params_array(args, get_params_list(args, "head")), alfabecevler = make_params_array(args, get_params_list(args, "tr")), cinsiyetler = {}, cekimler = {}}
	local head = args; if head == "" then head = nil end; veri.baslar = head
	
	veri.sira_anahtari = args; if veri.sira_anahtari == "" then veri.sira_anahtari = nil end
	
	if veri.sira_anahtari then
		veri.sira_anahtari = veri.sira_anahtari .. "a" .. mw.title.getCurrentTitle().subpageText
	end
	
	local wv = args or mw.title.getCurrentTitle().subpageText
	local dwv = args
	
	if not veri.baslar then
		if dwv then
			veri.baslar = wv .. " \\ " .. '<span class="inflection-table">' .. "]" .. "</span>" -- not really an inflection table but for the black links
		else
			veri.baslar = wv
		end
	end
	
	if dwv and mw.ustring.match(dwv, "%[%[") then
	end
	
	if not (args or args or args) then
	end
	
	if mw.ustring.match(wv, "׳") then
		table.insert(veri.kategoriler, "İbranice terms spelled with geresh")
	end
	
	if mw.ustring.match(wv, "״") then
		table.insert(veri.kategoriler, "İbranice terms spelled with gershayim")
	end

	local begedkefet = "בגדכפת"
	local vowels = "ְֱֲֳִֵֶַָֹֻ"
	local dagesh = "ּֿ"
	local begedkefet_regex = ""
	local vowels_regex = ""
	local dagesh_regex = ""

	if args == "1" or mw.ustring.match(com.fix_nikud(dwv or wv), "^" .. begedkefet_regex .. vowels_regex) then
		table.insert(veri.kategoriler, "İbranice terms beginning with an unchangeable begedkefet letter")
	elseif mw.ustring.match(com.fix_nikud(dwv or wv), "^" .. begedkefet_regex .. dagesh_regex) then
		table.insert(veri.kategoriler, "İbranice terms beginning with a begedkefet letter")
	end

	local pattern_link = ""
	if args and args ~= "" and poscat ~= "verbs" then
		table.insert(veri.kategoriler, "İbranice terms in the pattern " .. args)
		local patfmt = require("Modül:bağlantılar").tam_bag({dil = lang, alt = args, c = "-"})
		pattern_link = " <small> .. "| ]]</small>"
	end

	if pos_functions then
		pos_functions(args, veri, wv)
	end

	table.insert(veri.cekimler, maybe_get_inflection(args, "Biblical Hebrew ]", "pausal", false))
	
	return (m_baslikbasi.tam_baslikbasi(veri)) .. pattern_link
end

local final_to_nonfinal = {
	="כ",
	="מ",
	="נ",
	="פ",
	="צ",
}

local function stemify_helper(letter, rest)
	return (final_to_nonfinal or letter) .. rest
end

local function stemify(x)
	if x then
		x = mw.ustring.gsub(x, "ְ(*)$", "%1")
		x = mw.ustring.gsub(x, "()(*)$", stemify_helper)
	end
	return x
end

local function gen_fem_t(stemwv)
	local stub, vowel, final, dagesh = mw.ustring.match(com.fix_nikud(stemwv), "^(.*)()(?)(ּ?)$")
	if not stub then
		error("Error attaching feminine ת suffix, please check vocalization.")
	end
	if final == "י" then
		if vowel ~= "ִ" or dagesh ~= "ּ" then
			error("Error attaching feminine ת suffix, please check vocalization.")
		end
		return stub .. vowel .. final .. "ת"
	end
	if vowel == "ִ" or dagesh ~= "" then
		error("Error attaching feminine ת suffix, please check vocalization.")
	end
	if final == "א" then
		return stub .. "ֵ" .. final .. "ת"
	end
	if final == "ה" or final == "ח" or final == "ע" then
		return stub .. "ַ" .. final .. "ַ" .. "ת"
	end
	return stub .. "ֶ" .. final .. "ֶ" .. "ת"
end

pos_functions = function(args, veri)
	-- table.insert(genders, "m")
	if args == nil or args == "" then
		-- Use only provided inflections
		table.insert(veri.cekimler, maybe_get_inflection(args, "feminine", {"f", "f2"}, false))
		table.insert(veri.cekimler, maybe_get_inflection(args, "masculine plural", {"mp", "mp2"}, false))
		table.insert(veri.cekimler, maybe_get_inflection(args, "feminine plural", "fp", true))
	else
		-- Automatically generate inflections
		local stem = args
		local stemwv = args
		local stemdwv = args
		local e = false
		if not stem then
			if stemwv then
				stem = com.remove_nikud(stemwv)
			else
				stem = stemify(mw.title.getCurrentTitle().subpageText)
				if not stemdwv then
					stemwv = stemify(args)
					stemdwv = stemify(args)
				end
				local fstemwv = stemwv and com.fix_nikud(stemwv)
				local fstemdwv = stemdwv and com.fix_nikud(stemdwv)
				if (fstemwv or fstemdwv) and (stem ~= nil or stem:match("ה$")) and (fstemwv == nil or fstemwv:match("ֶה$")) and (fstemdwv == nil or fstemdwv:match("ֶה$")) then
					e = true
					stem = stem and stem:gsub("ה$", "")
					stemwv = fstemwv and fstemwv:gsub("ֶה$", "")
					stemdwv = fstemdwv and fstemdwv:gsub("ֶה$", "")
				end
			end
		end
		stem, stemwv, stemdwv = com.process_wv_triad(stem, stemwv, stemdwv)
		local f, fwv, fdwv = com.process_wv_triad(args, args, args)
		local f2, f2wv, f2dwv = com.process_wv_triad(args, args, args)
		local mp, mpwv, mpdwv = com.process_wv_triad(args, args, args)
		local mp2, mp2wv, mp2dwv = com.process_wv_triad(args, args, args)
		local fp, fpwv, fpdwv = com.process_wv_triad(args, args, args)
		if f ~= "-" then
			if not (f or fwv or fdwv) then
				f = stem and (stem .. "ה")
				fwv = stemwv and (stemwv .. "ָה")
				fdwv = stemdwv and (stemdwv .. "ָה")
			elseif f == "ת" and not (fwv or fdwv) then
				f = stem and (stem .. (e and "ית" or "ת"))
				fwv = stemwv and (e and (stemwv .. "ֵית") or gen_fem_t(stemwv))
				fdwv = stemdwv and (e and (stemdwv .. "ֵית") or gen_fem_t(stemdwv))
			end
			if f2 == "ת" and not (f2wv or f2dwv) then
				f2 = stem and (stem .. (e and "ית" or "ת"))
				f2wv = stemwv and (e and (stemwv .. "ֵית") or gen_fem_t(stemwv))
				f2dwv = stemdwv and (e and (stemdwv .. "ֵית") or gen_fem_t(stemdwv))
			end
			tbl = {label = "feminine", com.gen_link(f, fwv, fdwv)}
			if f2 or f2wv or f2dwv then
				table.insert(tbl, com.gen_link(f2, f2wv, f2dwv))
			end
			table.insert(veri.cekimler, tbl)
		end
		if mp ~= "-" then
			if not (mp or mpwv or mpdwv) then
				mp = stem and (stem .. "ים")
				mpwv = stemwv and (stemwv .. "ִים")
				mpdwv = stemdwv and (stemdwv .. "ִים")
			end
			tbl = {label = "masculine plural", com.gen_link(mp, mpwv, mpdwv)}
			if mp2 or mp2wv or mp2dwv then
				table.insert(tbl, com.gen_link(mp2, mp2wv, mp2dwv))
			end
			table.insert(veri.cekimler, tbl)
		end
		if fp ~= "-" then
			if not (fp or fpwv or fpdwv) then
				fp = stem and (stem .. "ות")
				fpwv = stemwv and (stemwv .. "וֹת")
				fpdwv = stemdwv and (stemdwv .. "וֹת")
			end
			tbl = {label = "feminine plural", com.gen_link(fp, fpwv, fpdwv)}
			table.insert(veri.cekimler, tbl)
		end
	end
end

pos_functions = function(args, veri, wv)
	if args == "m" or args == "m-p" then
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.cekimler, maybe_get_inflection(args, "feminine counterpart", "f", true))
	elseif args == "f" or args == "f-p" then
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.cekimler, maybe_get_inflection(args, "masculine counterpart", "m", false))
	end
end

pos_functions = function(args, veri, wv)
	local origin = " origin-" .. wv:gsub("%%", "."):gsub(" ", "_")

	if args == "m" or args == "f" then
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.cinsiyetler, args)
		if args ~= nil then
		end
	elseif args == "m-d" or args == "f-d" then
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.kategoriler, "İbranice dualia tantum")
		table.insert(veri.cekimler, maybe_get_inflection(args, "singular indefinite", "sg", false))
	elseif args == "m-p" or args == "f-p" then
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.kategoriler, "İbranice topluluk adları")
		table.insert(veri.cekimler, maybe_get_inflection(args, "singular indefinite", "sg", false))
	elseif args == "" or args == nil then
		table.insert(veri.cinsiyetler, "?")
		table.insert(veri.kategoriler, "İbranice cinsiyeti eksik sözcükler")
	end
	
	-- Dual forms rare enough that there's no need for without/missing categoristion
	table.insert(veri.cekimler, maybe_get_inflection(args, "dual indefinite", "dual", true))

	if args == "-" then
		table.insert(veri.cekimler, {label = "no plural forms"})
		table.insert(veri.kategoriler, "İbranice nouns without plural forms")
	elseif args == "" or args == nil then
		table.insert(veri.kategoriler, "İbranice noun entries missing plural forms")
	else
		table.insert(veri.cekimler, maybe_get_inflection(args, "plural indefinite", "pl", true, "plural-form-of" .. origin))
		if args == "m" and mw.ustring.sub(com.remove_nikud(args), -2, -1) == "ות" then
			table.insert(veri.kategoriler, "İbranice masculine nouns with plurals ending in ־ות")
		elseif args == "f" and mw.ustring.sub(com.remove_nikud(args), -2, -1) == "ים" then
			table.insert(veri.kategoriler, "İbranice feminine nouns with plurals ending in ־ים")
		end
		if mw.ustring.sub(com.remove_nikud(args), -3, -1) == "יים"
		and mw.ustring.sub(mw.ustring.gsub(com.remove_nikud(wv), "]", ""), -1, -1) ~= "י" then
			table.insert(veri.kategoriler, "İbranice nouns with plurals ending in ־יים")
		end
	end

	if args == "-" then
		table.insert(veri.cekimler, {label = "no construct forms"})
		table.insert(veri.kategoriler, "İbranice nouns without construct forms")
	else
		if args == "" or args == nil then
			table.insert(veri.kategoriler, "İbranice noun entries missing singular construct forms")
		else
			table.insert(veri.cekimler, maybe_get_inflection(args, "singular construct", "cons", true, "construct-form-of" .. origin, true))
		end
		table.insert(veri.cekimler, maybe_get_inflection(args, "dual construct", "dualcons", true , nil, true))
		if (args == "" or args == nil) and args ~= "-" then
			table.insert(veri.kategoriler, "İbranice noun entries missing plural construct forms")
		else
			table.insert(veri.cekimler, maybe_get_inflection(args, "plural construct", "plcons", true, "plural-construct-form-of" .. origin, true))
		end
	end

	table.insert(veri.cekimler, maybe_get_inflection(args, "masculine counterpart", "m", true))
	table.insert(veri.cekimler, maybe_get_inflection(args, "feminine counterpart", "f", true))

	if args == "m" and mw.ustring.sub((com.remove_nikud(args or args or mw.title.getCurrentTitle().subpageText)), -1) == "ת" then
		table.insert(veri.kategoriler, "İbranice masculine nouns ending in ־ת")
	elseif args == "m" and mw.ustring.sub((com.remove_nikud(args or args or mw.title.getCurrentTitle().subpageText)), -1) == "ה" then
		table.insert(veri.kategoriler, "İbranice masculine nouns ending in ־ה")
	end
end

pos_functions = function(args, veri)
	table.insert(veri.cekimler, maybe_get_inflection(args, "construct", "cons", true, nil, true))
	
	table.insert(veri.cekimler, maybe_get_inflection(args, "dual", "dual", true))
	table.insert(veri.cekimler, maybe_get_inflection(args, "plural", "pl", true))
	local f = maybe_get_inflection(args, "feminine", "f", true)
	table.insert(veri.cekimler, f)
	table.insert(veri.cekimler, maybe_get_inflection(args, "feminine construct", "fcons", true, nil, true))

	table.insert(veri.cinsiyetler, "m")
	if not f then
		table.insert(veri.cinsiyetler, "f")
	end
end

pos_functions = function(args, veri)
	if args == "m" or args == "f" or args == "m-p" or args == "f-p" then
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.cinsiyetler, args)
	elseif args then
	end
end

pos_functions = function(args, veri, wv)
	local origin = " origin-" .. wv:gsub("%%", "."):gsub(" ", "_")

	if args and args ~= "-" and args ~= "" then
		table.insert(veri.cekimler, maybe_get_inflection(args, "plural indefinite", "pl", true, "plural-form-of" .. origin))
		if args == "m" and mw.ustring.sub(com.remove_nikud(args), -2, -1) == "ות" then
			table.insert(veri.kategoriler, "İbranice masculine nouns with plurals ending in ־ות")
		elseif args == "f" and mw.ustring.sub(com.remove_nikud(args), -2, -1) == "ים" then
			table.insert(veri.kategoriler, "İbranice feminine nouns with plurals ending in ־ים")
		end
		if mw.ustring.sub(com.remove_nikud(args), -3, -1) == "יים"
		and mw.ustring.sub(mw.ustring.gsub(com.remove_nikud(wv), "]", ""), -1, -1) ~= "י" then
			table.insert(veri.kategoriler, "İbranice nouns with plurals ending in ־יים")
		end
	end

	if args == "m" or args == "f" then
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.cinsiyetler, args)
	elseif args == "m-d" or args == "f-d" then
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.kategoriler, "İbranice dualia tantum")
	elseif args == "m-p" or args == "f-p" then
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.cinsiyetler, args)
		table.insert(veri.kategoriler, "İbranice topluluk adları")
	elseif args == "" or args == nil then
		table.insert(veri.kategoriler, "İbranice cinsiyeti eksik özel adlar")
	elseif args == "-" then --surnames don't really have gender
		table.insert(veri.kategoriler, "İbranice cinsiyetsiz özel adlar")
	else
		table.insert(veri.cinsiyetler, "?")
	end
end

local binyanim = {
	 = "pa'al",
	 = "pi'el",
	 = "hif'il",
	 = "hitpa'el",
	 = "huf'al",
	 = "pu'al",
	 = "nif'al",
	 = "hitpu'al", -- should this be included?
}

local weakroots = {
	 = {
		 = true,
		 = true,
		 = true,
		 = true,
		 = true,
		 = true,
		 = true,
	},
	 = {
		 = true,
		 = true,
		 = true,
		 = true,
		 = true,
		 = true,
		 = true,
	},
	 = {
		 = true,
		 = true,
		 = true,
		 = true,
		 = true,
	},
}

local function maybe_get_weakcat(args, pos, binyan)
	if weakroots] then
		if binyan then
			return "İbranice " .. pos .. "״" .. args .. " " .. binyan .. " verbs"
		else
			return "İbranice " .. pos .. "״" .. args .. " verbs"
		end
	else
		return nil -- perhaps track error if args ~= ""
	end
end

pos_functions = function(args, veri)
	local binyan = binyanim]
	if binyan then
		table.insert(veri.cekimler, { label="]" })
		table.insert(veri.kategoriler, "İbranice " .. binyanim] .. " verbs")
	elseif args ~= "-" then
		table.insert(veri.kategoriler, "İbranice verbs lacking binyan")
	end
	table.insert(veri.kategoriler, maybe_get_weakcat(args, "פ", binyan))
	table.insert(veri.kategoriler, maybe_get_weakcat(args, "ע", binyan))
	table.insert(veri.kategoriler, maybe_get_weakcat(args, "ל", binyan))
	table.insert(veri.cekimler, maybe_get_inflection(args, "infinitive", "inf", true))
	table.insert(veri.cekimler, maybe_get_inflection(args, "present", "pres", true))
	table.insert(veri.cekimler, maybe_get_inflection(args, "future", "fut", true))
	table.insert(veri.cekimler, maybe_get_inflection(args, "imperative", "imp", true))
	table.insert(veri.cekimler, maybe_get_inflection(args, "passive participle", "passp", true))
	table.insert(veri.cekimler, maybe_get_inflection(args, "passive counterpart", "pass", true))
	table.insert(veri.cekimler, maybe_get_inflection(args, "active counterpart", "act", true))
end

return export