Mô đun:Flagg/Altvar data

local p = {}

function p.alttable(age)

local alt_map = {
["af"]={altlink="national American football team";altvar="American football"};
["afu"]={altlink="national junior American football team";altvar="American football"};
["afw"]={altlink="women's national American football team";altvar="American football"};
["arf"]={altlink="national Australian rules football team";altvar="Australian rules football";mw="men's"};
["arfw"]={altlink="women's national Australian rules football team";altvar="Australian rules football";mw="women's"};
["bandy"]={altlink="national bandy team";altvar="bandy"};
["bandyw"]={altlink="women's national bandy team";altvar="bandy";template="bandyW"};
["bb"]={altlink="national baseball team";altvar="baseball"};
["bbstate"]={altlink="state baseball team";altvar="baseball";template="bb-state"};
["bbw"]={altlink="women's national baseball team";altvar="baseball"};
["bd"]={altlink="national badminton team";altvar="badminton"};
["bs"]={altlink="Đội tuyển bóng đá bãi biển quốc gia";altvar="beach soccer";template="beachsoccer"};
["bsw"]={altlink="Đội tuyển bóng đá bãi biển nữ quốc gia";altvar="women's beach soccer";template="beachsoccerwomen"};
["bh"]={altlink="Đội tuyển bóng ném bãi biển quốc gia";altvar="beach handball"};
["bhw"]={altlink="Đội tuyển bóng ném bãi biển nữ quốc gia";altvar="beach handball";mw="women's"};
["bk"]={altlink="national basketball team";altvar="basketball"};
["bku"]={altlink="men's national under-"..age.." basketball team";altvar="basketball";age="under-"..age};
["bkw"]={altlink="women's national basketball team";altvar="basketball";mw="women's"};
["bkwu"]={altlink="women's national under-"..age.." basketball team";altvar="basketball";mw="women's";age="under-"..age};
["cr"]={altlink="national cricket team";altvar="cricket"};
["cr19"]={altlink="national under-19 cricket team";altvar="cricket";age="Under-19"};
["crw"]={altlink="national women's cricket team";altvar="cricket";mw="women's"};
["davis"]={altlink="Davis Cup team";altvar="tennis";mw="Davis"};
["fb"]={altlink="Đội tuyển bóng đá quốc gia";altvar="football"};
["fbl"]={altlink="A' national football team";altvar="football";mw="A'"};
["fbm"]={altlink="military national football team";altvar="football"};
["fbo"]={altlink="Đội tuyển bóng đá Olympic";altvar="football";mw="Olympic"};
["fbu"]={altlink="national under-"..age.." football team";altvar="football";age="under-"..age};
["fbw"]={altlink="Đội tuyển bóng đá nữ quốc gia";altvar="football";mw="women's"};
["fbwm"]={altlink="women's military national football team";altvar="football";mw="women's"};
["fbwu"]={altlink="women's national under-"..age.." football team";altvar="football";mw="women's";age="under-"..age};
["fed"]={altlink="Fed Cup team";altvar="tennis";mw="Fed"};
["fhm"]={altlink="men's national field hockey team";altvar="field hockey";mw="men's"};
["fhw"]={altlink="women's national field hockey team";altvar="field hockey";mw="women's"};
["fl"]={altlink="men's national floorball team";altvar="floorball";mw="men's"};
["flu"]={altlink="men's national under-19 floorball team";altvar="floorball";mw="men's";age="under-19"};
["flw"]={altlink="women's national floorball team";altvar="floorball";mw="women's"};
["flwu"]={altlink="women's national under-19 floorball team";altvar="floorball";mw="women's";template="flw19"};
["fsw"]={altlink="Đội tuyển bóng đá trong nhà nữ quốc gia";altvar="futsal";mw="women's"};
["fs"]={altlink="Đội tuyển bóng đá trong nhà quốc gia";altvar="futsal";template="futsal"};
["gb"]={altlink="men's national goalball team";altvar="goalball";mw="men's"};
["gbw"]={altlink="women's national goalball team";altvar="goalball";mw="women's"};
["hb"]={altlink="Đội tuyển bóng ném quốc gia";altvar="handball"};
["hbj"]={altlink="national junior handball team";altvar="handball"};
["hbw"]={altlink="Đội tuyển bóng ném nữ quốc gia";altvar="handball";mw="women's"};
["hbwj"]={altlink="women's junior national handball team";altvar="handball"};
["hbwy"]={altlink="women's youth national handball team";altvar="handball";mw="women's"};
["hby"]={altlink="national youth handball team";altvar="handball"};
["hopman"]={altlink="tại Hopman Cup";altvar="tennis";mw="Hopman"};
["iflm"]={altlink="men's national lacrosse team";altvar="lacrosse";mw="men's"};
["iflw"]={altlink="women's national lacrosse team";altvar="lacrosse";mw="women's"};
["iflwu"]={altlink="women's national under-19 lacrosse team";altvar="lacrosse";mw="women's";template="iflwu19"};
["ih"]={altlink="men's national ice hockey team";altvar="ice hockey";mw="men's"};
["ih18"]={altlink="men's national under-18 ice hockey team";altvar="ice hockey";mw="men's";age="under-18"};
["ihj"]={altlink="men's national junior ice hockey team";altvar="ice hockey";mw="men's";age="junior"};
["ihw"]={altlink="women's national ice hockey team";altvar="ice hockey";mw="women's"};
["ihw18"]={altlink="women's national under-18 ice hockey team";altvar="ice hockey";mw="women's";age="U-18"};
["iih"]={altlink="men's national inline hockey team";altvar="inline hockey"};
["iihj"]={altlink="men's national junior inline hockey team";altvar="inline hockey";mw="junior"};
["iihw"]={altlink="women's national inline hockey team";altvar="inline hockey";mw="women's"};
["iil"]={altlink="national indoor lacrosse team";altvar="lacrosse";mw="men's"};
["ish"]={altlink="men's national ice sledge hockey team";altvar="sledge hockey"};
["kd"]={altlink="national kabaddi team";altvar="Kabaddi"};
["korf"]={altlink="national korfball team";altvar="korfball"};
["nb"]={altlink="national netball team";altvar="netball"};
["p&p"]={altlink="men's national pitch and putt team";altvar="pitch and putt"};
["rhm"]={altlink="national roller hockey team";altvar="roller hockey";mw="men's"};
["rhw"]={altlink="women's national roller hockey team";altvar="roller hockey";mw="women's"};
["rl"]={altlink="national rugby league team";altvar="rugby league"};
["rollerderby"]={altlink="national roller derby team";altvar="roller derby";template="RollerDerby"};
["ru"]={altlink="national rugby union team";altvar="rugby union"};
["ru7"]={altlink="national rugby union team (sevens)";altvar="rugby sevens"};
["ru7w"]={altlink="women's national rugby union team (sevens)";altvar="rugby sevens";mw="women's"};
["ruu"]={altlink="national under-"..age.." rugby union team";altvar="rugby union";age="under-"..age};
["ruw"]={altlink="women's national rugby union team";altvar="rugby union";mw="women's"};
["sb"]={altlink="men's national softball team";altvar="softball";mw="men's"};
["sbw"]={altlink="women's national softball team";altvar="softball";mw="women's"};
["speedway"]={altlink="national speedway team";altvar="speedway"};
["speedwaylt"]={altlink="national long track team";altvar="long track";template="speedwayLT"};
["svb"]={altlink="men's national sitting volleyball team";altvar="sitting volleyball";mw="men's"};
["svbw"]={altlink="women's sitting national volleyball team";altvar="sitting volleyball";mw="women's"};
["vb"]={altlink="men's national volleyball team";altvar="volleyball";mw="men's"};
["vbw"]={altlink="women's national volleyball team";altvar="volleyball";mw="women's"};
["wbk"]={altlink="men's national wheelchair basketball team";altvar="wheelchair basketball"};
["wbkw"]={altlink="women's national wheelchair basketball team";altvar="wheelchair basketball";mw="women's"};
["whr"]={altlink="national wheelchair rugby team";altvar="wheelchair rugby"};
["wightman"]={altlink="Wightman Cup team";altvar="tennis";mw="Wightman"};
["wpm"]={altlink="Đội tuyển bóng nước nam quốc gia";altvar="water polo"};
["wpw"]={altlink="Đội tuyển bóng nước nữ quốc gia";altvar="water polo";mw="women's"};
["airforce"]={altlink="Air Force";altvar="air force";template="air force"};
["army"]={altlink="Army";altvar="army"};
["navy"]={altlink="Navy";altvar="naval"}
}

local alt_aliases = {
["a'football"]="fbl";
["americanfootball"]="af";
["australianrulesfootball"]="arf";
["badminton"]="bd";
["baseball"]="bb";
["baseballstate"]="bbstate";
["beachhandball"]="bh";
["beachsoccer"]="bs";
["beachsoccerwomen"]="bsw";
["basketball"]="bk";
["cricket"]="cr";
["daviscup"]="davis";
["fedcup"]="fed";
["football"]="fb";
["fh"]="fhm";
["fieldhockey"]="fhm";
["fl19"]="flu";
["floorball"]="fl";
["flw19"]="flwu";
["flwu19"]="flwu";
["futsal"]="fs";
["goalball"]="gb";
["handball"]="hb";
["hopmancup"]="hopman";
["icehockey"]="ih";
["icesledgehockey"]="ish";
["iflwu19"]="iflwu";
["indoorlacrosse"]="iil";
["inlinehockey"]="iih";
["junioramericanfootball"]="afu";
["juniorhandball"]="hbj";
["junioricehockey"]="ihj";
["juniorinlinehockey"]="iihj";
["kabaddi"]="kd";
["korfball"]="korf";
["lacrosse"]="iflm";
["men'sfieldhockey"]="fhm";
["men'slacrosse"]="iflm";
["militaryfootball"]="fbm";
["netball"]="nb";
["olympicfootball"]="fbo";
["pitchandputt"]="p&p";
["rollerhockey"]="rhm";
["rugbyleague"]="rl";
["rugbysevens"]="ru7";
["rugbyunion"]="ru";
["rugbyunionsevens"]="ru7";
["softball"]="sb";
["longtrack"]="speedwaylt";
["sittingvolleyvall"]="svb";
["under18icehockey"]="ih18";
["under19cricket"]="cr19";
["volleyball"]="vb";
["waterpolo"]="wp";
["wheelchairbasketball"]="wbk";
["wheelchairrugby"]="whr";
["wightmancup"]="wightman";
["women'samericanfootball"]="afw";
["women'saustralianrulesfootball"]="arfw";
["women'sbandy"]="bandyw";
["women'sbaseball"]="bbw";
["women'sbasketball"]="bkw";
["women'sbeachhandball"]="bhw";
["women'sbeachsoccer"]="bsw";
["women'scricket"]="crw";
["women'sfieldhockey"]="fhw";
["women'sfloorball"]="flw";
["women'sfootball"]="fbw";
["women'sfutsal"]="fsw";
["women'sgoalball"]="gbw";
["women'shandball"]="hbw";
["women'sicehockey"]="ihw";
["women'sinlinehockey"]="iihw";
["women'srollerhockey"]="rhw";
["women'sunder18icehockey"]="ihw18";
["women'sjuniorhandball"]="hbwj";
["women'slacrosse"]="iflw";
["women'smilitaryfootball"]="fbwm";
["women'srugbysevens"]="ru7w";
["women'srugbyunion"]="ruw";
["women'srugbyunionsevens"]="ru7w";
["women'ssittingvolleyvall"]="svbw";
["women'ssoftball"]="sbw";
["women'svolleyball"]="vbw";
["women'swaterpolo"]="wpw";
["women'swheelchairbasketball"]="wbkw";
["women'syouthbasketball"]="bkwu";
["women'syouthfootball"]="fbwu";
["women'syouthhandball"]="hbwy";
["youthbasketball"]="bku";
["youthcricket"]="cr19";
["youthfootball"]="fbu";
["youthhandball"]="hby";
["youthrugbyunion"]="ruu"
}

return alt_map, alt_aliases

end

function p.list_all(frame)

--Load data
local alt_map, alt_aliases = p.alttable("age")

--Add aliases to map table
for k,v in pairs(alt_map) do
alt_map[k].aliases = {}
end
local wrong_aliases = {}
table.sort(alt_aliases)
for k,v in pairs(alt_aliases) do
if alt_map[v]
then table.insert(alt_map[v].aliases,k)
else table.insert(wrong_aliases,k)
end
end

--Create html table & header row
local list = mw.html.create("table")
list:addClass("wikitable sortable collapsible")
local head = list:tag("tr")
head:tag("th"):wikitext("Code")
head:tag("th"):wikitext("Aliases")
head:tag("th"):wikitext("Altlink (suffix)")
head:tag("th"):wikitext("Altvar")
head:tag("th"):wikitext("Template")

--Append rows to create table body
table.sort(alt_map)
for k,v in pairs(alt_map) do
local row = list:tag("tr")
local temp = alt_map[k].template or k
row:tag("td"):wikitext(""..k.."")
row:tag("td"):wikitext(""..table.concat(alt_map[k].aliases,"").."")
row:tag("td"):wikitext(alt_map[k].altlink)
row:tag("td"):wikitext(alt_map[k].altvar)
row:tag("td"):wikitext(""..temp.."")
end
if wrong_aliases > 0 then
local wrong_list = "These aliases point to non-existing data: "..table.concat(wrong_aliases," ")..""
list:tag("tr"):tag("td"):attr("colspan","4"):css("color","red"):wikitext(wrong_list)
end

return list

end

return p