Modül:usex/templates

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


local export = {}

local table_module = "Module:table"
local usex_module = "Module:usex"
local yesno_module = "Module:yesno"

local insert = table.insert
local rfind = mw.ustring.find
local rsplit = mw.text.split

local function track(page)
	require("Module:debug/track")("usex/templates/" .. page)
	return true
end

function export.usex_t(frame)
	local alias_of_3 = {alias_of = 3}
	local boolean = {type = "boolean"}
	local list = {list = true}
	local language = {type = "language"}
	local script = {type = "script"}
	
	-- Invocation arguments (passed in the template #invoke call).
	local iargs = require("Module:parameters").process(frame.args, {
		 = true,
		 = true,
		 = boolean,
		 = true,
	})

	local parent_args = frame:getParent().args
	if parent_args.qualifier then
		track("qualifier")
	end

	-- Template (parent) arguments.
	local args = require("Module:parameters").process(parent_args, {
		-- Usex/quotation text parameters
		 = {required = true, type = "language"},
		 = true,
		 = language,
		 = true,
		 = {alias_of = "tr"},
		 = true,
		 = {alias_of = "ts"},
		 = script,
		 = true,
		 = {alias_of = "norm"},
		 = script,
		 = true,
		 = list,
		 = {alias_of = "q"},
		 = list,
		 = true,
		
		-- Usex/quotation audio parameters,
		 = true,

		-- Translation of usex text
		 = true,
		 = alias_of_3,
		 = alias_of_3,
		 = true,

		-- Original text, if the usex/quotation is a translation
		 = true,
		 = language,
		 = true,
		 = true,
		 = script,
		 = true,
		 = script,
		 = true,
		 = list,
		 = list,
		 = true,

		-- Citation-related parameters; for anything more complex, usex {{quote-*}}
		 = true,
		 = true,

		-- Formatting parameters
		 = true,
		 = boolean,

		-- Categorization parameters
		 = boolean,
		 = true,
	})

	local lang = args
	local sc = args.sc
	local normsc = args.normsc
	if normsc and not args.norm then
		error("Cannot specify normsc= without norm=")
	end

	if #args.qq > 0 then
		track("qq")
	end
	if #args.q > 0 then
		track("q")
	end

	local termlang = args.termlang
	if termlang then
		insert(args.qq, 1, "in " .. lang:getCanonicalName())
	end

	local origlang, origsc, orignormsc
	if args.orig then
		origlang = args.origlang
		insert(args.origqq, 1, "in " .. origlang:getCanonicalName())
		origsc = args.origsc
		orignormsc = args.orignormsc
		if orignormsc and not args.orignorm then
			error("Cannot specify orignormsc= without orignorm=")
		end
	else
		for _, noparam in ipairs { "origlang", "origtr", "origts", "origsc", "orignorm", "orignormsc", "origsubst",
			"origref" } do
			if args then
				error(("Cannot specify %s= without orig="):format(noparam))
			end
		end
		if #args.origq > 0 then
			error("Cannot specify origq= without orig=")
		end
		if #args.origqq > 0 then
			error("Cannot specify origqq= without orig=")
		end
	end

	local inline = args.inline or iargs.inline
	if inline ~= "auto" then
		inline = require(yesno_module)(inline)
	end

	local data = {
		lang = lang,
		termlang = termlang,
		sc = sc,
		normsc = normsc,
		usex = args,
		translation = args,
		transliteration = args.tr,
		transcription = args.ts,
		normalization = args.norm,
		inline = inline,
		ref = args.ref,
		quote = iargs.quote,
		lit = args.lit,
		subst = args.subst,
		-- FIXME, change to left and right qualifiers
		qq = #args.qq > 0 and args.qq or args.q,
		audio = args.audio,
		source = args.source,
		footer = args.footer,
		nocat = args.nocat or iargs.nocat,
		brackets = args.brackets,
		sortkey = args.sort,
		class = iargs.class,

		-- Original text, if the usex/quotation is a translation
		orig = args.orig,
		origlang = origlang,
		origtr = args.origtr,
		origts = args.origts,
		origsc = origsc,
		orignorm = args.orignorm,
		orignormsc = orignormsc,
		origsubst = args.origsubst,
		origq = args.origq,
		origqq = args.origqq,
		origref = args.origref,
	}

	return require(usex_module).format_usex(data)
end

local ignore_prefixes = {"User:", "Talk:",
	"Wiktionary:Beer parlour", "Wiktionary:Translation requests",
	"Wiktionary:Grease pit", "Wiktionary:Etymology scriptorium",
	"Wiktionary:Information desk", "Wiktionary:Tea room",
	"Wiktionary:Requests for", "Wiktionary:Votes"
}

function export.page_should_be_ignored(page)
	-- Ignore user pages, talk pages and certain Wiktionary pages
	for _, ip in ipairs(ignore_prefixes) do
		if rfind(page, "^" .. ip) then
			return true
		end
	end
	if rfind(page, " talk:") then
		return true
	end
	return false
end

function export.page_should_be_ignored_t(frame)
	return export.page_should_be_ignored(frame.args) and "true" or ""
end

return export