Senin, 21 September 2026
04:19 WIB
TERKINI
Cek Fakta Kiat Cerdas Deteksi Hoaks: Hindari Jebakan Berita Palsu di Media Sosial Cek Fakta Waspada! Penipuan Undian Berhadiah Catut Nama BNI Kembali Marak Climate BMKG Ungkap Potensi Hujan Lebat Landa Sejumlah Wilayah Indonesia Pekan Ini Moto Gp Veda Ega Peringkat 16 FP2 Moto3 Austria, Hakim Danish Tembus Empat Besar Moto Gp Drama Kualifikasi Moto3 Austria: Veda Ega ke-19, Uriarte Pecahkan Rekor Hukum Selebgram JP Terjerat Vape Narkoba: Stres Picu Konsumsi Etomidate Golongan II Arsip Mengenang Multatuli: Kisah 84 Hari yang Mengukir Sejarah Lebak Arsip Max Havelaar di Sekolah Belanda: Antara Pedoman dan Kebebasan Memilih Megapolitan Aroma Tak Sedap Ganggu Pejalan Kaki Dekat Halte IRTI Monas Tren Trump Larang CNN, MS NOW, Politico dari Gedung Putih: Konflik Media Memuncak Cek Fakta Kiat Cerdas Deteksi Hoaks: Hindari Jebakan Berita Palsu di Media Sosial Cek Fakta Waspada! Penipuan Undian Berhadiah Catut Nama BNI Kembali Marak Climate BMKG Ungkap Potensi Hujan Lebat Landa Sejumlah Wilayah Indonesia Pekan Ini Moto Gp Veda Ega Peringkat 16 FP2 Moto3 Austria, Hakim Danish Tembus Empat Besar Moto Gp Drama Kualifikasi Moto3 Austria: Veda Ega ke-19, Uriarte Pecahkan Rekor Hukum Selebgram JP Terjerat Vape Narkoba: Stres Picu Konsumsi Etomidate Golongan II Arsip Mengenang Multatuli: Kisah 84 Hari yang Mengukir Sejarah Lebak Arsip Max Havelaar di Sekolah Belanda: Antara Pedoman dan Kebebasan Memilih Megapolitan Aroma Tak Sedap Ganggu Pejalan Kaki Dekat Halte IRTI Monas Tren Trump Larang CNN, MS NOW, Politico dari Gedung Putih: Konflik Media Memuncak

Modul:ISO 3166

Wikimedia module

Dokumentasi modulbuatsegarkan
Anda dapat membuat halaman dokumentasi untuk buat pada modul Scribunto ini.
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
-- to enable us to replicate the current functioning of Country extract, we need to deal with:
-- 2 {{<name>}} DONE!
-- 3 [[<name>]] DONE!
-- 4 [[<name>|<junk>]] DONE!
-- 5 [[image:flag of <country>.[svg|gif|png|jpg]|\d+px]] DONE!
localp={}
localgetArgs=require("Module:Arguments").getArgs
localdata=mw.loadData("Module:ISO 3166/data/National")
--[[----------F I N D N A M E----------]]--										-- Finds the name in the database
localfunctionfindname(code,cdata,qry)
localsqry=p.strip(qry)
ifcdata["name"]andsqry==p.strip(cdata["name"])
orcdata["isoname"]andsqry==p.strip(cdata["isoname"])
ornotcdata["nocode"]andsqry==code
orsqry==cdata["alpha3"]orsqry==cdata["numeric"]
then
returntrue
end
for_,tnameinpairs(cdata["isonames"]or{})do
ifsqry==p.strip(tname)then
returntrue
end
end
for_,tnameinpairs(cdata["altnames"]or{})do
ifsqry==p.strip(tname)then
returntrue
end
end
returnfalse
end
--[[----------I S O N A M E----------]]--										-- Find the ISO name of a country/region
localfunctionisoname(data,code,lang)
ifdata[code]["isonames"]then
localname=data[code]["isodisplaynames"]anddata[code]["isodisplaynames"][lang]
ordata[code]["isonames"][lang]
ordata[code]["isodisplaynames"]anddata[code]["isodisplaynames"][data[code]["defaultlang"]ordata["defaultlang"]]
ordata[code]["isonames"][data[code]["defaultlang"]ordata["defaultlang"]]
ordata[code]["isodisplaynames"]anddata[code]["isodisplaynames"]["en"]
ordata[code]["isonames"]["en"]
ifnamethenreturnnameend
for_,inameinpairs(data[code]["isonames"])doreturninameend
returndata[code]["isodisplayname"]ordata[code]["isoname"]
else
returndata[code]["isodisplayname"]ordata[code]["isoname"]
end
end
--[[----------S T R I P----------]]--											-- Removes junk from the input
functionp.strip(text)
localaccents={["À"]="A",["Á"]="A",["Â"]="A",["Ã"]="A",-- accent list
["Ä"]="A",["Å"]="A",["Ç"]="C",["È"]="E",["É"]="E",
["Ê"]="E",["Ë"]="E",["Ì"]="I",["Í"]="I",["Î"]="I",
["Ï"]="I",["Ñ"]="N",["Ò"]="O",["Ó"]="O",["Ô"]="O",
["Õ"]="O",["Ö"]="O",["Ø"]="O",["Ù"]="U",["Ú"]="U",
["Û"]="U",["Ü"]="U",["Ý"]="Y"
}
localremove={"NATION OF","COUNTRY OF","TERRITORY OF",-- text to be removed list
"FLAG OF","FLAG","KINGDOM OF","STATE OF"," STATE ",
"PROVINCE OF","PROVINCE","TERRITORY"
}
localpatterns={[".+:"]="",["|.+"]="",["%(.-%)"]="",-- patterns to follow (order may matter)
["%..*"]="",["^THE "]="",["%_"]=" ",["%-"]=" ",
["%d%d?%d?PX"]="",
}
text=mw.ustring.upper(text)-- Case insensitivity
text=mw.ustring.gsub(text,"[À-Ý]",accents)-- Deaccent
forpattern,valueinpairs(patterns)do-- Follow patterns
text=mw.ustring.gsub(text,pattern,value)
end
for_,wordsinpairs(remove)do-- Remove unneeded words
text=mw.ustring.gsub(text,words,"")
end
text=mw.ustring.gsub(text,"%W","")-- Remove non alpha-numeric
returntext
end
--[[----------P . C A L L S T R I P ---------]]--								-- Calls P.strip but using Module:Arguments
functionp.callstrip(frame)
localargs=getArgs(frame)
returnp.strip(args[1])or""
end
--[[----------P . L U A C O D E---------]]--									-- Makes the ISO code of a country
functionp.luacode(args)
ifstring.find(args[1]or'',"%-")then
args[1],args[2]=string.match(args[1]or'',"^([^%-]*)%-(.*)$")
end
ifargs[1]thenargs[1]=p.strip(args[1])end
ifargs[2]thenargs[2]=p.strip(args[2])end
ifargs["codetype"]=="3"then
args["codetype"]="alpha3"
end
localeot=args.erroror""
localcatnocountry=(args.nocatandargs.nocat=='true')and''
or'[[Category:Wikipedia page with obscure country]]'
localcatnosubdivision=(args.nocatandargs.nocat=='true')and''
or'[[Category:Wikipedia page with obscure subdivision]]'
ifnotargs[1]then
returncatnocountry,'<span style="font-size:100%" class="error">"No parameter for the country given"</span>'
end
ifnotargs[2]then--3166-1 code
foralpha2,cdatainpairs(data)do
iffindname(alpha2,cdata,args[1])then
ifargs["codetype"]=="numeric"orargs["codetype"]=="alpha3"then
returncdata[args["codetype"]]
else
returnalpha2
end
end
end
returncatnocountry
else--3166-2 code
foralpha2,cdatainpairs(data)do
iffindname(alpha2,cdata,args[1])then
ifmw.ustring.match(alpha2,"GB")then-- For England, Wales etc.
alpha2="GB"
end
localsdata=mw.loadData("Module:ISO 3166/data/"..alpha2)
localempty=true
forscode,scdatainpairs(sdata)do
iftype(scdata)=="table"then
empty=false
iffindname(scode,scdata,args[2])then
returnalpha2.."-"..scode
end
end
end
ifemptythen
returncatnosubdivision
else
returncatnosubdivision
end
end
end
returncatnocountry
end
end
--[[----------P . C O D E---------]]--											-- Calls P.Luacode but using Module:Arguments
functionp.code(frame)
returnp.luacode(getArgs(frame))or""
end
--[[----------P . N U M E R I C---------]]--									-- Calls P.Luacode but using Module:Arguments and setting it to output a numeric value
functionp.numeric(frame)
localargs=getArgs(frame)
args["codetype"]="numeric"
returnp.luacode(args)or""
end
--[[----------P . L U A N A M E---------]]--									-- Makes the ISO/common name of a country
functionp.luaname(args)
localcode1=p.luacode(args)
localcode2=''
ifstring.find(code1,"%-")then
code1,code2=string.match(code1,"^([^%-]*)%-(.*)$")
end
ifstring.find(code1,"^%u%u$")then
ifcode2==""then--3166-1 alpha-2 code
ifdata[code1]then
return(args.isonameorargs.lang)andisoname(data,code1,args.lang)
or(data[code1]["displayname"]ordata[code1]["name"])
else
return'[[Category:Wikipedia page with obscure country]]'
end
else--3166-2 code
localsdata
ifdata[code1]then
sdata=mw.loadData("Module:ISO 3166/data/"..code1)
else
return'[[Category:Wikipedia page with obscure country]]'
end
ifsdata[code2]then
return(args.isonameorargs.lang)andisoname(sdata,code2,args.lang)
or(sdata[code2]["displayname"]orsdata[code2]["name"])
else
return'[[Category:Wikipedia page with obscure country]]'
end
end
end
end
--[[----------P . N A M E---------]]--											-- Calls P.Luaname but using Module:Arguments
functionp.name(frame)
returnp.luaname(getArgs(frame))or""
end
--[[----------P . G E O C O O R D I N S E R T---------]]--						-- Wrapper for Module:Coordinates.coordinsert
functionp.geocoordinsert(frame)
-- {{#invoke:ISO 3166|geocoordinsert|{{coord|...}}
-- |country=..|subdivision1=...|subdivision2=...
-- |type=...|scale=...|dim=...|source=...|globe=...
-- }}
localargs=frame.args
localsubdivisionqueried=false
localcatnocountry=(args.nocatandargs.nocat=='true')and''
or'[[Category:Wikipedia page with obscure country]]'
localcatnosubdivision=(args.nocatandargs.nocat=='true')and''
or'[[Category:Wikipedia page with obscure subdivision]]'or''
localtracking=''
localtargs={}
targs[1]=args[1]or''
fori,vinpairs(args)do
ifi=='country'andnotmw.ustring.find(targs[1],'region:')then
localcountry=v
localk,region=1,''
-- look for a valid subdivision
whileregion==''andk<3do
localsubdivision=args['subdivision'..k]or''
ifsubdivision~=''then
region=p.luacode({country,subdivision,nocat='true'})
subdivisionqueried=true
end
k=k+1
end
-- subdivision lookup failed or never attempted, try country only
ifregion==''then
region=p.luacode({country,nocat='true'})
ifregion==''then
tracking=tracking..catnocountry
elseifsubdivisionqueried==truethen
tracking=tracking..catnosubdivision
end
end
-- something worked, add it to the targs
ifregion~=''then
targs[#targs+1]='region:'..region
end
elseifi=='type'ori=='scale'ori=='dim'
ori=='source'ori=='globe'then
targs[#targs+1]=i..':'..v
end
end
-- call Module:Coordinates.coordinsert if there is something to insert
if#targs>1then
localcoordinsert=require('Module:Coordinates').coordinsert
returncoordinsert({args=targs})..tracking
end
-- otherwise, just return the coordinates
returntargs[1]..tracking
end
returnp
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan