Open main menu
Home
Random
Donate
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:ISO 3166/data
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local p = {} local data = mw.loadData("Module:ISO 3166/data/National") function p.list(frame) --Returns a list of subpages and associated countries local codes = {} for alpha2,cdata in pairs(data) do codes[#codes+1] = {alpha2,cdata.name} end table.sort(codes, function(t1,t2) return t1[1]<t2[1] end) local out = {"* [[Module:ISO 3166/data/National|National]]"} for _,cdata in ipairs(codes) do out[#out+1] = "* [[Module:ISO 3166/data/"..cdata[1].."|"..cdata[1].." ("..cdata[2]..")]]" end return table.concat(out,"\n") end function p.subpagetest(frame) --Returns a table row indicating the existence of data pages (see [[User:SiBr4/sandbox#Data subpage test]]) local function cell(code,d) local sdata if not data[code] then return "" --Unassigned or reserved 3166-1 code else local sname = "Module:ISO 3166/data/"..code if not (d or mw.title.new(sname).exists) then return "title=\""..data[code].name.."\" style=\"background:#fee;\"|[["..sname.."|-]]" --Data subpage doesn't exist else sdata = mw.loadData(sname) end end for _,_ in pairs(sdata) do return "title=\""..data[code].name.."\" style=\"background:#efe;\"|n" --Non-empty 3166-2 entry end return "title=\""..data[code].name.."\" style=\"background:#eef;\"|e" --Empty 3166-2 entry end local letter = frame.args[1] local out = "|-\n!"..letter.."*" for i = 65, 90 do out = out.."\n|"..cell(letter..string.char(i),frame.args[2]) end return out end function p.testall(frame) --Search across all subpages for problems with names local strip = require("Module:ISO 3166").strip local function subpage(p) return "[[Module:ISO 3166/data/"..p.."|/"..p.."]]" end local function testname(names,inames,dnames,page,code,name) if name then if type(name)~="string" then dnames[#dnames+1] = "*Unexpected non-string value in "..subpage(page).." ("..code..")" else local sname = strip(name) if not names[sname] then inames[sname] = name else dnames[#dnames+1] = "*Duplicate name: \""..name.."\" in "..subpage(page) ..(names[sname]==name and " (exact)" or " (non-exact)").." ("..code..")" end end end return names, inames, dnames end local function testnametable(names,inames,dnames,page,code,tab) if tab then if type(tab)~="table" then dnames[#dnames+1] = "*Unexpected non-table value in "..subpage(page).." ("..code..")" else for _,name in pairs(tab) do names, inames, dnames = testname(names,inames,dnames,page,code,name) end end end return names, inames, dnames end local fields = {name=1,isoname=1,isonames=1,displayname=1,isodisplayname=1,isodisplaynames=1,altnames=1,lang=1,defaultlang=1,alpha3=1,numeric=1,nocode=1} local function testentry(names,dnames,page,code,edata) for k,_ in pairs(edata) do if not fields[k] then dnames[#dnames+1] = "*Unknown field \""..k.."\" in "..subpage(page).." ("..code..")" end end local inames = {} names, inames, dnames = testname(names,inames,dnames,page,code,edata.name) names, inames, dnames = testname(names,inames,dnames,page,code,edata.isoname) names, inames, dnames = testnametable(names,inames,dnames,page,code,edata.isonames) names, inames, dnames = testnametable(names,inames,dnames,page,code,edata.altnames) if not edata.nocode then names, inames, dnames = testname(names,inames,dnames,page,code,code) end if page=="National" then names, inames, dnames = testname(names,inames,dnames,page,code,edata.alpha3) names, inames, dnames = testname(names,inames,dnames,page,code,edata.numeric) end for k,v in pairs(inames) do names[k]=v end return names, dnames end local dnames = {} --ISO 3166-1 local names = {} for code,cdata in pairs(data) do names, dnames = testentry(names,dnames,"National",code,cdata) end --ISO 3166-2 for code,_ in pairs(data) do names = {} local spage = "Module:ISO 3166/data/"..code if mw.title.new(spage).exists then local sdata = mw.loadData(spage) for scode,cdata in pairs(sdata) do if type(cdata)=="table" then names, dnames = testentry(names,dnames,code,scode,cdata) end end end end if #dnames>0 then return table.concat(dnames,"\n") else return "None" end end return p
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Div col
(
edit
)
Template:Div col end
(
edit
)
Module:Arguments
(
edit
)
Module:ISO 3166
(
edit
)
Module:ISO 3166/data
(
edit
)
Module:ISO 3166/data/AS
(
edit
)
Module:ISO 3166/data/BH
(
edit
)
Module:ISO 3166/data/BS
(
edit
)
Module:ISO 3166/data/CC
(
edit
)
Module:ISO 3166/data/CH
(
edit
)
Module:ISO 3166/data/CK
(
edit
)
Module:ISO 3166/data/CX
(
edit
)
Module:ISO 3166/data/DK
(
edit
)
Module:ISO 3166/data/EC
(
edit
)
Module:ISO 3166/data/EH
(
edit
)
Module:ISO 3166/data/ES
(
edit
)
Module:ISO 3166/data/FK
(
edit
)
Module:ISO 3166/data/GH
(
edit
)
Module:ISO 3166/data/GP
(
edit
)
Module:ISO 3166/data/GS
(
edit
)
Module:ISO 3166/data/HK
(
edit
)
Module:ISO 3166/data/IO
(
edit
)
Module:ISO 3166/data/IS
(
edit
)
Module:ISO 3166/data/JP
(
edit
)
Module:ISO 3166/data/KG
(
edit
)
Module:ISO 3166/data/KH
(
edit
)
Module:ISO 3166/data/KR
(
edit
)
Module:ISO 3166/data/LC
(
edit
)
Module:ISO 3166/data/LK
(
edit
)
Module:ISO 3166/data/LR
(
edit
)
Module:ISO 3166/data/MA
(
edit
)
Module:ISO 3166/data/MD
(
edit
)
Module:ISO 3166/data/ME
(
edit
)
Module:ISO 3166/data/MH
(
edit
)
Module:ISO 3166/data/MK
(
edit
)
Module:ISO 3166/data/MM
(
edit
)
Module:ISO 3166/data/MS
(
edit
)
Module:ISO 3166/data/MV
(
edit
)
Module:ISO 3166/data/MX
(
edit
)
Module:ISO 3166/data/MY
(
edit
)
Module:ISO 3166/data/NP
(
edit
)
Module:ISO 3166/data/National
(
edit
)
Module:ISO 3166/data/PH
(
edit
)
Module:ISO 3166/data/PK
(
edit
)
Module:ISO 3166/data/PS
(
edit
)
Module:ISO 3166/data/QA
(
edit
)
Module:ISO 3166/data/SC
(
edit
)
Module:ISO 3166/data/TC
(
edit
)
Module:ISO 3166/data/TK
(
edit
)
Module:ISO 3166/data/TZ
(
edit
)
Module:ISO 3166/data/UA
(
edit
)
Module:ISO 3166/data/UG
(
edit
)
Module:ISO 3166/data/US
(
edit
)
Module:ISO 3166/data/UY
(
edit
)
Module:ISO 3166/data/VA
(
edit
)
Module:ISO 3166/data/VC
(
edit
)
Module:ISO 3166/data/VG
(
edit
)
Module:ISO 3166/data/VI
(
edit
)
Module:ISO 3166/data/VN
(
edit
)
Module:ISO 3166/data/VU
(
edit
)
Module:ISO 3166/data/WF
(
edit
)
Module:ISO 3166/data/WS
(
edit
)
Module:ISO 3166/data/YE
(
edit
)
Module:ISO 3166/data/YT
(
edit
)
Module:ISO 3166/data/ZW
(
edit
)
Module:ISO 3166/data/doc
(
edit
)