Module:Labels/templates

local export = {}

--[=[	Modules used: Module:labels Module:parameters Module:utilities Module:languages Module:template_link ]=]

function export.show(frame) local parent_args = frame:getParent.args local compat = (frame.args["compat"] or "") ~= "" and parent_args["lang"] local term_mode = (frame.args["term"] or "") ~= "" local params = { [1] = {required = true}, [2] = {list = true}, ["nocat"] = {type = "boolean"}, ["script"] = {}, ["script2"] = {}, ["sort"] = {}, ["sort2"] = {}, }	if compat then params[1] = params[2] params[2] = nil params["lang"] = {required = true} end local args = require("Module:parameters").process(parent_args, params) -- Gather parameters local lang = args[compat and "lang" or 1] local labels = args[compat and 1 or 2] local nocat = args["nocat"] local script = args["script"] local script2 = args["script2"] local sort_key = args["sort"] local sort_key2 = args["sort2"]

if not lang then if mw.title.getCurrentTitle.nsText == "Template" then lang = "und" else error("Language code has not been specified. Please provide it to the template using the first parameter.") end end lang = require("Module:languages").getByCode(lang) or require("Module:languages").err(lang, compat and "lang" or 1) return require("Module:labels").show_labels(labels, lang, script, script2, sort_key, sort_key2, nocat, term_mode) end

--	temporary. intentionally undocumented.		this function is only to be used in		,		and similar templates function export.show_from(frame) local m_labeldata = require('Module:labels/data') local froms = {} local categories = {} local args = frame:getParent.args local nocat = args["nocat"] local lang = frame.args["lang"] or args["lang"] or args[1] or "en" local limit = frame.args.limit and tonumber(frame.args.limit) or 99999 local m_languages = require("Module:languages") lang = m_languages.getByCode(lang) or m_languages.err(lang, "lang")

local key, i = 'from', 1 while args[key] do		local k = args[key] k = m_labeldata.aliases[k] or k		local data = m_labeldata.labels[k] local label = data and data.display or k		local category1, category2 if not nocat and data then if data.regional_categories then for j, cat in ipairs(data.regional_categories) do category1 = cat .. ' ' .. lang:getCanonicalName end end if data.plain_categories then for j, cat in ipairs(data.plain_categories) do					category2 = cat end end end

table.insert(froms, label) table.insert(categories, category1) table.insert(categories, category2) i = i + 1 if i > limit then break end key = 'from' .. i	end categories = require("Module:utilities").format_categories(categories, lang) if #froms == 0 then return frame.args.default end if #froms == 2 then return froms[1] .. " and " .. froms[2] .. categories end local results = {} for i, item in ipairs(froms) do		if i == 1 then -- nothing elseif i == #froms then table.insert(results, ', and ') else table.insert(results, ', ') end table.insert(results, item) end return table.concat(results) .. categories end

return export