Module:Coinage

local export = {} local m_utilities = require("Module:utilities") local m_languages = require("Module:languages")

function export.coinage(frame) local args = frame:getParent.args local params = { [1] = {required = true, default = "und"}, [2] = {required = true, default = "unknown"}, ["in"] = {},		-- date: "in" ["w"] = {default = nil}, 		-- Wikipedia link target ["nationality"] = {},		-- nationality ["occupation"] = {list = true, default = nil}, ["alt"] = {default = nil},		-- nationality ["nat"] = {}, ["occ"] = {list = true, default = nil},

["sort"] = {}, ["nobycat"] = {type = "boolean"}, ["nocat"] = {type = "boolean"}, ["nocap"] = {type = "boolean"}, ["notext"] = {type = "boolean"}, }	args = require("Module:parameters").process(args, params) local lang = m_languages.getByCode(args[1]) or m_languages.err(args[1], 1)

local coiner = args[2] local coiner_text = args["alt"] or args[2] local wikilink = args["w"] or coiner local date = args["in"] local result = "" if not args["notext"] then result = result .. "" .. (args["nocap"] and "c" or "C") .. "oined by " end

local categories = {}

if not args["nocat"] then if not args["nobycat"] then table.insert(categories, lang:getCanonicalName .. " terms coined by " .. coiner) end table.insert(categories, lang:getCanonicalName .. " coinages") end local link = coiner_text if wikilink and wikilink ~= "-" then -- create Wikipedia link -- default to title, or interpret as language code if a colon is present

if mw.ustring.match(wikilink, ":$") then -- just language code and a colon? wikilink = wikilink .. coiner end

link = "" .. coiner_text .. "" end local nationality = args["nationality"] or args["nat"] or nil local occupation = args["occupation"] if not occupation or #occupation < 1 then occupation = args["occ"] end local nat_occ = ""

if nationality then nat_occ = nat_occ .. nationality .. " "	end if occupation and #occupation > 0 then nat_occ = nat_occ .. mw.text.listToText(occupation) .. " "	end result = result .. nat_occ .. link if date then result = result .. " in " .. date end categories = m_utilities.format_categories(categories, lang, args["sort"]) result = result .. categories return result end

return export