Modul:translations
Erscheinungsbild
This module is used for the translation templates {{t}}, {{t+}} {{t-}}, {{tø}}. It contains a single function which is invoked by these templates. See their documentation for more information.
local m_links = require("Modul:links")
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" }
-- 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["interwiki"]
NAMESPACE = mw.title.getCurrentTitle().nsText
local categories = {}
local lang = args[1] or (NAMESPACE == "Vörlaag" and "und") or error("Language code has not been specified. Please pass parameter 1 to the template.")
local sc = args["sc"] or ""; if sc == "" then sc = nil end
lang = require("Modul:languages").getByCode(lang) or error("The language code \"" .. lang .. "\" is not valid.")
sc = (sc and (require("Modul:scripts").getByCode(sc) or error("The script code \"" .. sc .. "\" is not valid.")) or nil)
local term = args[2] or (NAMESPACE == "Vörlaag" and "term" or ""); if term == "" then term = nil end
local alt = args["alt"]; if alt == "" then alt = nil end
local tr = args["tr"]; 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
local wmlangs = {}
if interwiki_langs[lang:getCode()] then
wmlangs = {require("Module:wikimedia languages").getByCode(interwiki_langs[lang:getCode()])}
else
wmlangs = lang:getWikimediaLanguages()
end
-- 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 #wmlangs == 0 then
interwiki = false
end
if interwiki then
interwiki = "<span class=\"" .. interwiki .. "\"> [[:"
.. (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