模組:ISO 3166/data
外观
本模块的子页面包含Module:ISO 3166使用的ISO 3166代码。该模块本身用于维护及内部使用,不应在条目中使用。
子页面
- National
- AD (安道尔)
- AE (阿拉伯联合酋长国)
- AF (阿富汗)
- AG (安提瓜和巴布达)
- AI (安圭拉)
- AL (阿尔巴尼亚)
- AM (亚美尼亚)
- AO (安哥拉)
- AQ (南极洲)
- AR (阿根廷)
- AS (美属萨摩亚)
- AT (奥地利)
- AU (澳大利亚)
- AW (阿鲁巴)
- AX (奥兰)
- AZ (阿塞拜疆)
- BA (波斯尼亚和黑塞哥维那)
- BB (巴巴多斯)
- BD (孟加拉国)
- BE (比利时)
- BF (布基纳法索)
- BG (保加利亚)
- BH (巴林)
- BI (布隆迪)
- BJ (贝宁)
- BL (圣巴泰勒米)
- BM (百慕大)
- BN (文莱)
- BO (玻利维亚)
- BQ (荷兰加勒比区)
- BR (巴西)
- BS (巴哈马)
- BT (不丹)
- BV (布韦岛)
- BW (博茨瓦纳)
- BY (白俄罗斯)
- BZ (伯利兹)
- CA (加拿大)
- CC (科科斯(基林)群岛)
- CD (刚果民主共和国)
- CF (中非共和国)
- CG (刚果共和国)
- CH (瑞士)
- CI (科特迪瓦)
- CK (库克群岛)
- CL (智利)
- CM (喀麦隆)
- CN (中国)
- CO (哥伦比亚)
- CR (哥斯达黎加)
- CU (古巴)
- CV (佛得角)
- CW (库拉索)
- CX (圣诞岛)
- CY (塞浦路斯)
- CZ (捷克)
- DE (德国)
- DJ (吉布提)
- DK (丹麦)
- DM (多米尼克)
- DO (多米尼加)
- DZ (阿尔及利亚)
- EC (厄瓜多尔)
- EE (爱沙尼亚)
- EG (埃及)
- EH (西撒哈拉)
- ER (厄立特里亚)
- ES (西班牙)
- ET (埃塞俄比亚)
- FI (芬兰)
- FJ (斐济)
- FK (福克兰群岛)
- FM (密克罗尼西亚联邦)
- FO (法罗群岛)
- FR (法国)
- GA (加蓬)
- GB (英国)
- GB-EAW (英格兰和威尔士)
- GB-ENG (英格兰)
- GB-NIR (北爱尔兰)
- GB-SCT (苏格兰)
- GB-WLS (威尔士)
- GD (格林纳达)
- GE (格鲁吉亚)
- GF (法属圭亚那)
- GG (根西)
- GH (加纳)
- GI (直布罗陀)
- GL (格陵兰)
- GM (冈比亚)
- GN (几内亚)
- GP (瓜德罗普)
- GQ (赤道几内亚)
- GR (希腊)
- GS (南乔治亚和南桑威奇群岛)
- GT (危地马拉)
- GU (关岛)
- GW (几内亚比绍)
- GY (圭亚那)
- HK (香港)
- HM (赫德岛和麦克唐纳群岛)
- HN (洪都拉斯)
- HR (克罗地亚)
- HT (海地)
- HU (匈牙利)
- ID (印度尼西亚)
- IE (爱尔兰)
- IL (以色列)
- IM (马恩岛)
- IN (印度)
- IO (英属印度洋领地)
- IQ (伊拉克)
- IR (伊朗)
- IS (冰岛)
- IT (意大利)
- JE (泽西)
- JM (牙买加)
- JO (约旦)
- JP (日本)
- KE (肯尼亚)
- KG (吉尔吉斯斯坦)
- KH (柬埔寨)
- KI (基里巴斯)
- KM (科摩罗)
- KN (圣基茨和尼维斯)
- KP (朝鲜)
- KR (韩国)
- KW (科威特)
- KY (开曼群岛)
- KZ (哈萨克斯坦)
- LA (老挝)
- LB (黎巴嫩)
- LC (圣卢西亚)
- LI (列支敦士登)
- LK (斯里兰卡)
- LR (利比里亚)
- LS (莱索托)
- LT (立陶宛)
- LU (卢森堡)
- LV (拉脱维亚)
- LY (利比亚)
- MA (摩洛哥)
- MC (摩纳哥)
- MD (摩尔多瓦)
- ME (黑山)
- MF (法属圣马丁)
- MG (马达加斯加)
- MH (马绍尔群岛)
- MK (北马其顿)
- ML (马里)
- MM (缅甸)
- MN (蒙古国)
- MO (澳门)
- MP (北马里亚纳群岛)
- MQ (马提尼克)
- MR (毛里塔尼亚)
- MS (蒙特塞拉特)
- MT (马耳他)
- MU (毛里求斯)
- MV (马尔代夫)
- MW (马拉维)
- MX (墨西哥)
- MY (马来西亚)
- MZ (莫桑比克)
- NA (纳米比亚)
- NC (新喀里多尼亚)
- NE (尼日尔)
- NF (诺福克岛)
- NG (尼日利亚)
- NI (尼加拉瓜)
- NL (荷兰)
- NO (挪威)
- NP (尼泊尔)
- NR (瑙鲁)
- NU (纽埃)
- NZ (新西兰)
- OM (阿曼)
- PA (巴拿马)
- PE (秘鲁)
- PF (法属波利尼西亚)
- PG (巴布亚新几内亚)
- PH (菲律宾)
- PK (巴基斯坦)
- PL (波兰)
- PM (圣皮埃尔和密克隆)
- PN (皮特凯恩群岛)
- PR (波多黎各)
- PS (巴勒斯坦)
- PT (葡萄牙)
- PW (帕劳)
- PY (巴拉圭)
- QA (卡塔尔)
- RE (留尼汪)
- RO (罗马尼亚)
- RS (塞尔维亚)
- RU (俄罗斯)
- RW (卢旺达)
- SA (沙特阿拉伯)
- SB (所罗门群岛)
- SC (塞舌尔)
- SD (苏丹)
- SE (瑞典)
- SG (新加坡)
- SH (圣赫勒拿、阿森松和特里斯坦-达库尼亚)
- SI (斯洛文尼亚)
- SJ (斯瓦尔巴和扬马延)
- SK (斯洛伐克)
- SL (塞拉利昂)
- SM (圣马力诺)
- SN (塞内加尔)
- SO (索马里)
- SR (苏里南)
- SS (南苏丹)
- ST (圣多美和普林西比)
- SV (萨尔瓦多)
- SX (荷属圣马丁)
- SY (叙利亚)
- SZ (斯威士兰)
- TC (特克斯和凯科斯群岛)
- TD (乍得)
- TF (法属南部和南极领地)
- TG (多哥)
- TH (泰国)
- TJ (塔吉克斯坦)
- TK (托克劳)
- TL (东帝汶)
- TM (土库曼斯坦)
- TN (突尼斯)
- TO (汤加)
- TR (土耳其)
- TT (特立尼达和多巴哥)
- TV (图瓦卢)
- TW (台湾)
- TZ (坦桑尼亚)
- UA (乌克兰)
- UG (乌干达)
- UM (美国本土外小岛屿)
- US (美国)
- UY (乌拉圭)
- UZ (乌兹别克斯坦)
- VA (梵蒂冈)
- VC (圣文森特和格林纳丁斯)
- VE (委内瑞拉)
- VG (英属维尔京群岛)
- VI (美属维尔京群岛)
- VN (越南)
- VU (瓦努阿图)
- WF (瓦利斯和富图纳)
- WS (萨摩亚)
- YE (也门)
- YT (马约特)
- ZA (南非)
- ZM (赞比亚)
- ZW (津巴布韦)
问题报告
- 未知字段"1"于/National(PS)
- 重复名称:"000"于/National(精确)(GB-SCT)
- 重复名称:"000"于/National(精确)(GB-NIR)
- 重复名称:"000"于/National(精确)(GB-EAW)
- 重复名称:"000"于/National(精确)(GB-WLS)
- 未知字段"1"于/National(CZ)
- 重复名称:"Province of Murcia"于/ES(非精确)(MU)
- 重复名称:"Province of Navarre"于/ES(非精确)(NA)
- 重复名称:"Illes Balears"于/ES(精确)(IB)
- 重复名称:"Province of Asturias"于/ES(非精确)(O)
- 重复名称:"Province of Cantabria"于/ES(非精确)(S)
- 重复名称:"La Rioja Province"于/ES(非精确)(LO)
- 重复名称:"Viangchan (prefecture)"于/LA(非精确)(VT)
- 重复名称:"Sofia (city)"于/BG(非精确)(22)
- 重复名称:"Sofia (stolitsa)"于/BG(非精确)(22)
- 重复名称:"Barisal"于/BD(非精确)(A)
- 重复名称:"Dhaka"于/BD(非精确)(C)
- 重复名称:"Khulna"于/BD(非精确)(D)
- 重复名称:"Rangpur"于/BD(非精确)(F)
- 重复名称:"Sylhet (district)"于/BD(非精确)(60)
- 重复名称:"Rajshahi (district)"于/BD(非精确)(54)
- 重复名称:"Chittagong (district)"于/BD(非精确)(10)
- 重复名称:"Papua (region)"于/ID(非精确)(PP)
- 重复名称:"Maluku (region)"于/ID(非精确)(ML)
- 重复名称:"Lima"于/PE(非精确)(LIM)
- 重复名称:"St. Peter"于/BB(非精确)(09)
- 重复名称:"St. Thomas"于/BB(非精确)(11)
- 重复名称:"St. Philip"于/BB(非精确)(10)
- 重复名称:"St. Lucy"于/BB(非精确)(07)
- 重复名称:"St. Joseph"于/BB(非精确)(06)
- 重复名称:"St. John"于/BB(非精确)(05)
- 重复名称:"St. James"于/BB(非精确)(04)
- 重复名称:"St. Andrew"于/BB(非精确)(02)
- 重复名称:"St. George"于/BB(非精确)(03)
- 重复名称:"Maputo Province"于/MZ(非精确)(L)
- 重复名称:"Liberec"于/CZ(非精确)(LI)
- 重复名称:"Karlovy Vary"于/CZ(非精确)(KA)
- 重复名称:"Zlín (district)"于/CZ(非精确)(724)
- 重复名称:"Olomouc (district)"于/CZ(非精确)(712)
- 重复名称:"Pardubice (district)"于/CZ(非精确)(532)
- 重复名称:"Ústí nad Labem (district)"于/CZ(非精确)(427)
- 重复名称:"Hradec Králové"于/CZ(非精确)(KR)
- 重复名称:"Lənkəran"于/AZ(非精确)(LA)
- 重复名称:"Nakhchivan (city)"于/AZ(非精确)(NV)
- 重复名称:"Naxçıvan (city)"于/AZ(非精确)(NV)
- 重复名称:"Yevlax"于/AZ(非精确)(YE)
- 重复名称:"Şəki (rayon)"于/AZ(非精确)(SAK)
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] = "*未知的非字符串值于"..subpage(page).."("..code..")"
else
sname = strip(name)
if not names[sname] then
inames[sname] = name
else
dnames[#dnames+1] = "*重复名称:\""..name.."\"于"..subpage(page)
..(names[sname]==name and "(精确)" or "(非精确)").."("..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] = "*未知的非表格值于"..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] = "*未知字段\""..k.."\"于"..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