Difference between revisions of "Module:Map credits"
(trust me, it's not badly written) |
m (Update qmark_langs) |
||
Line 7: | Line 7: | ||
local qmark_langs = { | local qmark_langs = { | ||
["/ar"] = { opening = " «", closing = "» " }, | ["/ar"] = { opening = " «", closing = "» " }, | ||
+ | ["/cs"] = { opening = " „", closing = "“ " }, | ||
["/es"] = { opening = " «", closing = "» " }, | ["/es"] = { opening = " «", closing = "» " }, | ||
− | ["/fr"] = { opening = " «", closing = "» " }, | + | ["/de"] = { opening = " „", closing = "“ " }, |
+ | ["/fr"] = { opening = " « ", closing = " » " }, | ||
["/ja"] = { opening = "「", closing = "」" }, | ["/ja"] = { opening = "「", closing = "」" }, | ||
["/pl"] = { opening = " „", closing = "” " }, | ["/pl"] = { opening = " „", closing = "” " }, | ||
− | ["/ro"] = { opening = " „", closing = ' | + | ["/ro"] = { opening = " „", closing = '” ' }, |
["/ru"] = { opening = " «", closing = "» " } | ["/ru"] = { opening = " «", closing = "» " } | ||
} | } |
Latest revision as of 11:01, 23 April 2024
Documentation for this module may be created at Module:Map credits/doc
local p = {} local creditsData = require("Module:Map credits/data") function format_credit(link, link_type, link_name) local if_lang = mw.getCurrentFrame():expandTemplate{title="If lang"} local qmark_langs = { ["/ar"] = { opening = " «", closing = "» " }, ["/cs"] = { opening = " „", closing = "“ " }, ["/es"] = { opening = " «", closing = "» " }, ["/de"] = { opening = " „", closing = "“ " }, ["/fr"] = { opening = " « ", closing = " » " }, ["/ja"] = { opening = "「", closing = "」" }, ["/pl"] = { opening = " „", closing = "” " }, ["/ro"] = { opening = " „", closing = '” ' }, ["/ru"] = { opening = " «", closing = "» " } } local qmark = qmark_langs[if_lang] if qmark then local openingMark = qmark.opening local closingMark = qmark.closing local openingIndex, closingIndex = link_name:find(' "'), link_name:find('" ', 2) if openingIndex and closingIndex then link_name = link_name:gsub(' "', openingMark, 1) link_name = link_name:gsub('" ', closingMark, 1) end end -- Link types local formats = { ["nolink"] = link_name, ["yeslink"] = link, ["wikitext"] = "[[%s" .. if_lang .. "|%s]]", ["steam"] = "[https://steamcommunity.com/profiles/%s %s]", ["external"] = "[%s %s]", ["wikipedia"] = "[[w:%s|%s]]" -- TODO: figure out how to make this thing translatable. Use dictionary? } local format = formats[link_type] or link_name return string.format(format, link, link_name) end function p.credits(f) local args = f.args local map = args[1] local separator = args.separator ~= "" and args.separator or "<br>" local options = args.options ~= "" and args.options or "" local override = args.override ~= "" and args.override or "" local credits = creditsData local map_credits = credits[map] or credits._default local num_credits = #map_credits local output = "" for i, credit in ipairs(map_credits) do local name = override ~= "" and override or credit[1] local link = credit[2] or "" local link_type = options == "nolink" and "nolink" or (credit[3] or "") output = output .. format_credit(link, link_type, name) output = output .. (i < num_credits and separator or "") end return output end return p