વિભાગ:અનુવાદ

વિકિકોશમાંથી

This module is used for the translation templates {{અનુ}} and {{અનુ+}}. It contains a single function which is invoked by these templates. See their documentation for more information.


local m_links = require("Module:કડીઓ")

local export = {}

local interwiki_langs = {
    ["nan"] = "zh-min-nan",
    ["yue"] = "zh-yue",
    ["cmn"] = "zh",
    ["nb"] = "no",
    ["rup"] = "roa-rup",
    ["kmr"] = "ku",
    ["nds-de"] = "nds",
    ["nds-nl"] = "nds",
    ["pdt"] = "nds" }

-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
    local args = frame:getParent().args
    local interwiki = frame.args["આંતરવિકિ"]
    
    NAMESPACE = mw.title.getCurrentTitle().nsText
    local categories = {}
    
    local lang = args[1] or (NAMESPACE == "ઢાંચો" and "und") or error("Language code has not been specified. Please pass parameter 1 to the template.")
    lang = require("Module:ભાષાઓ").getLanguageByCode(lang) or error("The language code \"" .. lang .. "\" is not valid.")
    local sc = args["લિપિ"] or ""; if sc == "" then sc = nil end
    
    local term = args[2] or (NAMESPACE == "ઢાંચો" and "શબ્દ" or ""); if term == "" then term = nil end
    local alt = args["બીજું"] or ""; if alt == "" then alt = nil end
    
    local tr = args["લિપ્ય"] or ""; if tr == "" then tr = nil end
    
    -- Gender and number
    -- Iterate over all numbered parameters starting from 3, until one is empty.
    local genders = {}
    local i = 3
    local g = args[i] or ""
    
    while g ~= "" do
        table.insert(genders, g)
        i = i + 1
        g = args[i] or ""
    end
    
    -- Don't show the interwiki link if there is nothing to link to.
    if term then
    	-- Don't show the interwiki link if the language is not recognised by MediaWiki
    	-- or if the term contains links (for SOP translations)
    	if term:find("[[", nil, true) or not mw.language.isKnownLanguageTag(interwiki_langs[lang:getCode()] or lang:getCode()) then
        	interwiki = false
    	end
    	
    	if interwiki then
        	interwiki = "<span class=\"" .. interwiki .. "\">&nbsp;[[:"
        	.. (interwiki_langs[lang:getCode()] or lang:getCode()) .. ":"
        	.. lang:makeEntryName(term)
        	.. "|(" .. (interwiki_langs[lang:getCode()] or lang:getCode()) .. ")]]</span>"
    	end
    end
    
    return m_links.full_link(term, alt, lang, sc, nil, nil, {interwiki = interwiki, tr = tr, genders = genders})
end

return export