İçeriğe atla

Modül:ja-bağlantı

Vikisözlük sitesinden
Modül belgelemesi [Düzenle] [Tazele]


local cikart = {}

local m_links = require("Modül:bağlantılar")

local lang = require("Modül:diller").getirKodaGore("ja")
local sc = require("Modül:alfabeler").getirKodaGore("Jpan")

-- [[Modül:parameters]]
-- [[Modül:alfabe araçları]]
-- [[Modül:ja]]
-- [[Modül:ja-ruby]]

function cikart.bag(veri, options)
	options = options or {}

	local kana_for_rom = veri.kana or veri.lemma
	if not veri.kana then
		veri.lemma = veri.lemma:gsub('[ %%%^%-%.]', '')
	end

	if veri.lemma:find'%[%[.+%]%]' then
		--require("Modül:debug").track('ja-link/manual wikilink')
		veri.linkto = nil
		veri.lemma = m_links.dil_bag({
			sozcuk = veri.lemma,
			dil = lang,
		}, true) -- allowSelfLink
	elseif veri.linkto == "" or veri.linkto == "-" then
		--require("Modül:debug").track('ja-link/disabled link')
		veri.linkto = nil
	else
		veri.linkto = veri.linkto or veri.lemma:gsub('[ %%]', '')
	end

	if veri.kana and veri.lemma ~= veri.kana then
		veri.ruby = require('Modül:ja-ruby').ruby_auto{
			term = veri.lemma,
			kana = veri.kana,
		}
	else
		--require("Modül:debug").track('ja-link/no ruby')
		veri.ruby = veri.lemma
	end

	if veri.alfabecev ~= '-' then
		if not veri.alfabecev then
			veri.alfabecev = m_links.kaldir_baglantilari(require("Modül:ja").kana_to_romaji(kana_for_rom, {
				hist = options.hist
			}))
			if options.caps then
				--require("Module:debug").track("ja-link/caps")
				veri.alfabecev = mw.ustring.gsub(veri.alfabecev, "^%l", mw.ustring.upper)
				veri.alfabecev = mw.ustring.gsub(veri.alfabecev, " %l", mw.ustring.upper)
			end
		else
			--if options.hist then require("Modül:debug").track("ja-link/parameter hist unused") end
		end
		veri.alfabecev = require("Modül:alfabe araçları").etiket_alfabecev(veri.alfabecev, "ja", "sözcük")
	end

	if veri.gloss == '' then veri.gloss = nil end
	if veri.pos == '' then veri.pos = nil end
	if veri.lit == '' then veri.lit = nil end

	return m_links.tam_bag({
		dil = lang,
		alf = sc,
		sozcuk = veri.linkto,
		alt = veri.ruby,
		c = veri.alfabecev,
		anlam = veri.gloss,
		tam = veri.lit,
		soz = veri.pos,
	}, nil, true) -- face, allowSelfLink
end

function cikart.goster(frame)
	local args = require("Modül:parameters").process(frame:getParent().args, {
		[1] = { required = true },
		[2] = {},
		[3] = {},
		['anlam'] = { alias_of = 3 },
		['bağ'] = { allow_empty = true },
		['rom'] = {},
		['tam'] = {},
		['söz'] = {},
		['hist'] = { type = "boolean" },
		['caps'] = { type = "boolean" },
	})

	return cikart.bag({
		lemma = args[1],
		kana = args[2],
		gloss = args[3],
		lit = args["tam"],
		pos = args["söz"],
		linkto = args["bağ"],
		transliteration = args["rom"],
	}, {
		caps = args["caps"],
		hist = args["hist"],
	})
end

return cikart