Module:salin

Mula Wiktionary

Ang dokumentasyon ng ng modyul na ito ay maaaring likhain sa Module:salin/doc

local m_links = require("Module:links")

local export = {}

local interwiki_langs = {
	["nds-de"] = "nds",
	["nds-nl"] = "nds",
	["pdt"] = "nds",
}

local ignore_caps = {
	["ko"] = true,
}

-- Dito ang pangunahing tala.
-- Ito lang ang tungkuling pwedeng tawagin (ma-invoke) sa padron.
function export.show(frame)
    local params = {
		[1] = {required = true, default = "und"},
		[2] = {},
		[3] = {list = true},
		["alt"] = {},
		["sc"] = {},
		["tr"] = {},
	}
    
    local args = require("Module:parameters").process(frame:getParent().args, params)
    
    local terminfo = {
    	lang = require("Module:languages").getByCode(args[1]) or error("Ang language code \"" .. args[1] .. "\" ay inbalido."),
    	sc = (args["sc"] and (require("Module:scripts").getByCode(args["sc"]) or error("Ang sulatsay na code na \"" .. args["sc"] .. "\" ay inbalido.")) or nil),
    	term = args[2] or (mw.title.getCurrentTitle().nsText == "Padron" and "tawag") or nil,
    	alt = args["alt"],
    	genders = args[3],
    	tr = args["tr"],
    	interwiki = frame.args["interwiki"],
    	}
	
	-- Ang mga pagsasalin ay dapat para sa ngalan-espasyong wika
	if terminfo.lang:getType() == "reconstructed" or terminfo.lang:getType() == "appendix-constructed" then
		error("Ang mga pagsasalin ay dapat para sa pinatunayan at pinagtibayang mga main-namespace na wika.")
	end
	
    -- Huwag ipakita ang kawingang lipat-wiki kung walang ikakawing nito.
    if terminfo.term then
    	local wmlangs = {}
    	
    	if interwiki_langs[terminfo.lang:getCode()] then
    		wmlangs = {require("Module:wikimedia languages").getByCode(interwiki_langs[terminfo.lang:getCode()])}
    	else
    		wmlangs = terminfo.lang:getWikimediaLanguages()
    	end
    	
    	-- Huwag mong ipakita ang kawingang interwiki kung ang wika ay hindi kilala ng Wikimedia
    	-- o kung may kawing ang katawagan (para sa SOP na pagsasalin)
    	if terminfo.term:find("[[", nil, true) or #wmlangs == 0 then
        	terminfo.interwiki = false
    	end
    	
    	if wmlangs[1] and ignore_caps[wmlangs[1]:getCode()] then
    		terminfo.term2 = mw.ustring.gsub(terminfo.term, "^%^", "")
    	end
    	
    	if terminfo.interwiki then
        	terminfo.interwiki =
        		"<span class=\"" .. terminfo.interwiki .. "\">&nbsp;[[:" ..
        		wmlangs[1]:getCode() .. ":" ..
        		terminfo.lang:makeEntryName(terminfo.term2 or terminfo.term) ..
        		"|(" .. wmlangs[1]:getCode() .. ")]]</span>"
    	end
	end
	
	if terminfo.lang and terminfo.lang:getCode() == 'yue' and terminfo.tr then
		terminfo.tr = mw.ustring.gsub(terminfo.tr, '([1-9])','<sup>%1</sup>')
		terminfo.tr = mw.ustring.gsub(terminfo.tr, '[-*]','⁻')
	end
	
    return m_links.full_link(terminfo, nil, true)
end

return export