انتقل إلى المحتوى

وحدة:object usage

من ويكاموس، القاموس الحر
local export = {}

local function parse_form(args, i, default)
	local m_form_data = mw.loadData('Module:form of/data')

	local output = {}
	while args[i] do
		local tag = args[i]
		if m_form_data.shortcuts[tag] then
			tag = m_form_data.shortcuts[tag]
		end
		table.insert(output, tag)
		i = i + 1
	end

	return (#output > 0) and table.concat(output, " ") or default
end

function export.show_bare(frame)
	local pargs = frame:getParent().args
	local lang = pargs[1] or (mw.title.getCurrentTitle().nsText == "Template" and "und") or error("Parameter 1 (language code) has not been specified.")
	local means = pargs["means"] or (mw.title.getCurrentTitle().nsText == "Template" and "meaning") or nil
	lang = require('Module:languages').getByCode(lang) or error("The language code \"" .. lang .. "\" is not valid.")
	
	return "[+ (" .. parse_form(pargs, 2, "object") .. ")" .. (means and (" = " .. means) or "") .. "]"
end

function export.show_prep(frame)
	local pargs = frame:getParent().args
	local lang = pargs[1] or (mw.title.getCurrentTitle().nsText == "Template" and "und") or error("Parameter 1 (language code) has not been specified.")
	local means = pargs["means"] or (mw.title.getCurrentTitle().nsText == "Template" and "meaning") or nil
	local term = pargs[2] or (mw.title.getCurrentTitle().nsText == "Template" and "preposition"); if term == "" then term = nil end
	local alt = pargs["alt"]; if alt == "" then alt = nil end
	local senseid = pargs["senseid"]; if senseid == "" then senseid = nil end
	lang = require('Module:languages').getByCode(lang) or error("The language code \"" .. lang .. "\" is not valid.")

	return "[+ <bdi>" .. require('Module:links').full_link(term, alt, lang, nil, "term", senseid, { tr = "-" }, false) .. " <bdi>(" .. parse_form(pargs, 3, "object") .. ")</bdi></bdi>" .. (means and (" = " .. means) or "") .. "]"
end

function export.show_postp(frame)
	local pargs = frame:getParent().args
	local lang = pargs[1] or (mw.title.getCurrentTitle().nsText == "Template" and "und") or error("Parameter 1 (language code) has not been specified.")
	local means = pargs["means"] or (mw.title.getCurrentTitle().nsText == "Template" and "meaning") or nil
	local term = pargs[2] or (mw.title.getCurrentTitle().nsText == "Template" and "postposition"); if term == "" then term = nil end
	local alt = pargs["alt"]; if alt == "" then alt = nil end
	local senseid = pargs["senseid"]; if senseid == "" then senseid = nil end
	lang = require('Module:languages').getByCode(lang) or error("The language code \"" .. lang .. "\" is not valid.")

	return "[+ <bdi><bdi>(" .. parse_form(pargs, 3, "object") .. ")</bdi> " .. require('Module:links').full_link(term, alt, lang, nil, "term", senseid, { tr = "-" }, false) .. "</bdi>" .. (means and (" = " .. means) or "") .. "]"
end

return export