Modül:Söz türü

Vikisözlük sitesinden
Gezinti kısmına atla Arama kısmına atla
[Düzenle] [Tazele] Template-info.svg Modül belgelemesi

Modülün alt sayfaları:


local cikart = {}

local veri = require("Modül:temalar/veri/söz türü")
local gkat = require("Modül:temalar").getirAsilAdaGore
local gbas = require("Modül:temalar").getirBaslikAdinaGore

function cikart.sozTuru(frame)
	local tumKat = {}
	local y = {}
	
	local params = {
		[1] = {required = true},
		[2] = {},
	}
	
	args = require("Modül:parameters").process(frame:getParent().args, params)
	
	local tur = args[1]
	local dil = args[2] == "Osmanlıca" and "Osmanlı Türkçesi" or args[2]
	
	for n, m in pairs(veri) do
		local tablo = m.yanlisYazimlar or {}
		local asil = m.baslikAdi
		for _, yanlis in pairs(tablo) do
			y[yanlis] = asil
		end
	end
	
	if y[tur] then
		tur = y[tur]
		table.insert(tumKat, "[[Kategori:Yanlış söz türü girdisi içeren sayfalar]]")
	end
	
	tur = gbas(tur)
	
	if not dil then
		table.insert(tumKat, "[[Kategori:Dil parametresi olmayan söz türü şablonları]]")
	elseif require("Modül:alfabekontrol").goster(mw.title.getCurrentTitle().subpageText, dil) == false then
		table.insert(tumKat, "[[Kategori:Alfabesi düzeltilmesi gereken sözcükler]]")
		table.insert(tumKat, "[[Kategori:" .. dil .. " alfabesi düzeltilmesi gereken sözcükler]]")
	else
		anaKategori = tur:getirAnahtar() == true and tur:getirKategori() or tur:getirEbeveynler()[1]
		while gkat(anaKategori):getirAnahtar() ~= true do
			anaKategori = gkat(anaKategori):getirEbeveynler()[1]
		end
		table.insert(tumKat, "[[Kategori:" .. gkat(anaKategori):getirKategoriAdi(dil) .. "]]")
		table.insert(tumKat, "[[Kategori:" .. tur:getirKategoriAdi() .. "]]")
		table.insert(tumKat, "[[Kategori:" .. tur:getirKategoriAdi(dil) .. "]]")
		if tur:getirKategoriAdi() == "Çekimli eylemler" then
			table.insert(tumKat, "[[Kategori:adlar için gizli kategori]]")
		end
	end
	
	return tur:getirBaslikAdi() .. table.concat(tumKat)
end

function cikart.calisma(frame)
	local tumKat = {}
	local y = {}
	
	local params = {
		[1] = {required = true},
		[2] = {},
	}
	
	args = require("Modül:parameters").process(frame.args, params)
	
	local tur = args[1]
	local dil = args[2]
	
	for n, m in pairs(veri) do
		local tablo = m.yanlisYazimlar or {}
		local asil = m.baslikAdi
		for _, yanlis in pairs(tablo) do
			y[yanlis] = asil
		end
	end
	
	if y[tur] then
		tur = y[tur]
	end
	
	tur = gbas(tur)
	
	if require("Modül:alfabekontrol").goster(mw.title.getCurrentTitle().subpageText, dil) == false then
	else
		anaKategori = tur:getirAnahtar() == true and tur:getirKategori() or tur:getirEbeveynler()[1]
		while gkat(anaKategori):getirAnahtar() ~= true do
			anaKategori = gkat(anaKategori):getirEbeveynler()[1]
		end
	end
	
	return tur:getirBaslikAdi() .. table.concat(tumKat)
end

return cikart