உள்ளடக்கத்துக்குச் செல்

Module:translations

கட்டற்ற பன்மொழி அகரமுதலியான விக்சனரியில் இருந்து.

Documentation for this module may be created at Module:translations/doc

local m_links = require("Module:links")
local m_data = mw.loadData("Module:translations/data")

local export = {}

-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
	local params = {
		[1] = {required = true, default = "und"},
		[2] = {},
		[3] = {list = true},
		["alt"] = {},
		["id"] = {},
		["sc"] = {},
		["tr"] = {},
		["ts"] = {},
		["lit"] = {},
	}
	
	local args = require("Module:parameters").process(frame:getParent().args, params)
	
	local terminfo = {
		lang = require("Module:languages").getByCode(args[1]) or require("Module:languages").err(args[1], 1),
		sc = (args["sc"] and (require("Module:scripts").getByCode(args["sc"]) or error("The script code \"" .. args["sc"] .. "\" is not valid.")) or nil),
		term = args[2] or (mw.title.getCurrentTitle().nsText == "Template" and "term") or nil,
		alt = args["alt"],
		id = args["id"],
		genders = args[3],
		tr = args["tr"],
		ts = args["ts"],
		lit = args["lit"],
		interwiki = frame.args["interwiki"],
		}
	
	return export.show_terminfo(terminfo)
end

function export.show_terminfo(terminfo, no_check_redundant_translit)
	-- Translations must be for mainspace languages
	if terminfo.lang:getType() ~= "regular" then
		error("Translations must be for attested and approved main-namespace languages.")
	end
	
	-- Don't show the interwiki link if there is nothing to link to.
	if terminfo.term then
		-- Track translations for particular languages
		if m_data.tracked[terminfo.lang:getCode()] then
			require("Module:debug/track")("translations/" .. terminfo.lang:getCode())
		end
		
		local wmlangs = {}
		
		if m_data.interwiki_langs[terminfo.lang:getCode()] then
			wmlangs = {require("Module:wikimedia languages").getByCode(m_data.interwiki_langs[terminfo.lang:getCode()])}
		else
			wmlangs = terminfo.lang:getWikimediaLanguages()
		end
		
		-- Don't show the interwiki link if the language is not recognised by Wikimedia
		-- or if the term contains links (for SOP translations)
		if terminfo.term:find("[[", nil, true) or #wmlangs == 0 then
			terminfo.interwiki = false
		end
		
		if wmlangs[1] and m_data.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
	else
		-- Track what entries currently don't provide a term
		require("Module:debug/track")("translations/no term")
		require("Module:debug/track")("translations/no term/" .. terminfo.lang:getCode())
	end
	
	if terminfo.lang and m_data.need_super[terminfo.lang:getCode()] and terminfo.tr then
		terminfo.tr = mw.ustring.gsub(terminfo.tr, '([1-9]%-?[1-9]?)','<sup>%1</sup>')
	end
	
	return m_links.full_link(terminfo, "translation", true, no_check_redundant_translit)
end

return export
"https://ta.wiktionary.org/w/index.php?title=Module:translations&oldid=1993393" இலிருந்து மீள்விக்கப்பட்டது