Modül:ISO 3166
| Bu modül şu Lua modüllerini kullanıyor: |
Bu modül çeşitli girişler ile (alpha-2, alpha-3, sayısal, ad, ISO-adı, diğer adlar) bir ülke ya da idari birimin kodunu (alpha-2, alpha-3, sayısal) ya da adını otomatik olarak çağırma işlevi görmektedir.
Örnekler
[kaynağı değiştir]Ülkeler (ISO 3166-1)
[kaynağı değiştir]All three types of ISO 3166-1 codes (alpha-2, alpha-3 and numeric) work as inputs to name, as well as to code (which can therefore also be used to convert between different code types). Use |codetype= to output alpha-3 or numeric codes in code instead of the default alpha-2 codes.
Ad
[kaynağı değiştir]To get the common name use the name function
{{#invoke:ISO 3166|name|GB}}→ Birleşik Krallık{{#invoke:ISO 3166|name|GBR}}→ Birleşik Krallık{{#invoke:ISO 3166|name|826}}→ Birleşik Krallık
ISO adı
[kaynağı değiştir]To get the common name use the name function with isoname = yes
{{#invoke:ISO 3166|name|GB|isoname=yes}}→ Büyük Britanya ve Kuzey İrlanda Birleşik Krallığı{{#invoke:ISO 3166|name|GBR|isoname=yes}}→ Büyük Britanya ve Kuzey İrlanda Birleşik Krallığı{{#invoke:ISO 3166|name|826|isoname=yes}}→ Büyük Britanya ve Kuzey İrlanda Birleşik Krallığı
Alpha-2
[kaynağı değiştir]To get the alpha 2 code use the code function
{{#invoke:ISO 3166|code|826}}→ GB{{#invoke:ISO 3166|code|Birleşik Krallık}}→ GB{{#invoke:ISO 3166|code|BK}}→ GB
Alpha-3
[kaynağı değiştir]To get the alpha 3 code use the code function with codetype = 3
{{#invoke:ISO 3166|code|Birleşik Krallık|codetype=alpha3}}→ GBR{{#invoke:ISO 3166|name|GB}}→ Birleşik Krallık{{#invoke:ISO 3166|name|GBR}}→ Birleşik Krallık{{#invoke:ISO 3166|name|826}}→ Birleşik Krallık{{#invoke:ISO 3166|code|BK|codetype=alpha3}}→ GBR
Sayısal
[kaynağı değiştir]To get the numeric code use the code function with codetype = numeric or use the numeric function
{{#invoke:ISO 3166|numeric|GB}}→ 826{{#invoke:ISO 3166|code|GB|codetype=numeric}}→ 826
İdari birimler (ISO 3166-2)
[kaynağı değiştir]Inputs to name must be valid ISO 3166-2 codes, i.e. the country's alpha-2 code for the first part, and up to three alphanumeric characters for the second part. They may be given normally (with a hyphen between the parts), or split between two unnamed parameters. For code, the first parameter is the country name (or any of its three codes, like above), and the second the subdivision name.
Kod (alpha-2)
[kaynağı değiştir]To get the alpha-2 code of a subdivision use the code function with parameter 1 being the country and parameter 2 being the subdivision
{{#invoke:ISO 3166|code|Birleşik Krallık|İngiltere}}→ GB-ENG{{#invoke:ISO 3166|code|GBR|İngiltere}}→ GB-ENG{{#invoke:ISO 3166|code|GB|İngiltere}}→ GB-ENG
Ad
[kaynağı değiştir]To get the name of a subdivision use the name function with parameter 1 being the country and parameter 2 being the subdivsion or parameter 1 being the subdivsion code
{{#invoke:ISO 3166|name|GB-ENG}}→ İngiltere{{#invoke:ISO 3166|name|GB|ENG}}→ İngiltere
|isoname= works for subnational entities as well; keep in mind that ISO 3166-2 uses (transliterations of) local names that may differ from English ones. Set |lang= to a language code to switch between different languages for entities that have multiple ISO names. The default language for multilingual entities can be set on the country's data page.
{{#invoke:ISO 3166|name|BE|BRU}}→ Brüksel{{#invoke:ISO 3166|name|BE|BRU|isoname=yes}}→ Bruxelles-Capitale, Région de{{#invoke:ISO 3166|name|BE|BRU|lang=fr}}→ Bruxelles-Capitale, Région de{{#invoke:ISO 3166|name|BE|BRU|lang=nl}}→ Brussels Hoofdstedelijk Gewest
İzleme kategorileri
[kaynağı değiştir]- Kategori:Tanımlanamayan ülke bilgisi içeren Vikipedi sayfaları (0)
- Kategori:Tanımlanamayan ülke ya da idari birim bilgisi içeren Vikipedi sayfaları (2)
- Kategori:Tanımlanamayan idari birim bilgisi içeren Vikipedi sayfaları (1)
Ayrıca bakınız
[kaynağı değiştir]- {{ISO 3166 adı}} – (ISO adı)
- {{ülke adı}} – (Standart adı)
- {{ISO 3166 kodu}} – (Kod)
- {{ISO 3166 code-3}} – (3 haneli kod)
- {{ISO 3166 sayısal}} – (sayısal kod)
- Module:ISO 3166/veri – Bu modülün kullandığı alt sayfalar
Alt sayfalar
[kaynağı değiştir]- ISO 3166/belge
- ISO 3166/veri
- ISO 3166/veri/AD
- ISO 3166/veri/AE
- ISO 3166/veri/AF
- ISO 3166/veri/AG
- ISO 3166/veri/AI
- ISO 3166/veri/AL
- ISO 3166/veri/AM
- ISO 3166/veri/AO
- ISO 3166/veri/AQ
- ISO 3166/veri/AR
- ISO 3166/veri/AS
- ISO 3166/veri/AT
- ISO 3166/veri/AU
- ISO 3166/veri/AW
- ISO 3166/veri/AX
- ISO 3166/veri/AZ
- ISO 3166/veri/BA
- ISO 3166/veri/BB
- ISO 3166/veri/BD
- ISO 3166/veri/BE
- ISO 3166/veri/BF
- ISO 3166/veri/BG
- ISO 3166/veri/BH
- ISO 3166/veri/BI
- ISO 3166/veri/BJ
- ISO 3166/veri/BL
- ISO 3166/veri/BM
- ISO 3166/veri/BN
- ISO 3166/veri/BO
- ISO 3166/veri/BQ
- ISO 3166/veri/BR
- ISO 3166/veri/BS
- ISO 3166/veri/BT
- ISO 3166/veri/BV
- ISO 3166/veri/BW
- ISO 3166/veri/BY
- ISO 3166/veri/BZ
- ISO 3166/veri/CA
- ISO 3166/veri/CC
- ISO 3166/veri/CD
- ISO 3166/veri/CF
- ISO 3166/veri/CG
- ISO 3166/veri/CH
- ISO 3166/veri/CI
- ISO 3166/veri/CK
- ISO 3166/veri/CL
- ISO 3166/veri/CM
- ISO 3166/veri/CN
- ISO 3166/veri/CO
- ISO 3166/veri/CR
- ISO 3166/veri/CU
- ISO 3166/veri/CV
- ISO 3166/veri/CW
- ISO 3166/veri/CX
- ISO 3166/veri/CY
- ISO 3166/veri/CZ
- ISO 3166/veri/DE
- ISO 3166/veri/DJ
- ISO 3166/veri/DK
- ISO 3166/veri/DM
- ISO 3166/veri/DO
- ISO 3166/veri/DZ
- ISO 3166/veri/EC
- ISO 3166/veri/EE
- ISO 3166/veri/EG
- ISO 3166/veri/EH
- ISO 3166/veri/ER
- ISO 3166/veri/ES
- ISO 3166/veri/ET
- ISO 3166/veri/FI
- ISO 3166/veri/FJ
- ISO 3166/veri/FK
- ISO 3166/veri/FM
- ISO 3166/veri/FO
- ISO 3166/veri/FR
- ISO 3166/veri/GA
- ISO 3166/veri/GB
- ISO 3166/veri/GB-EAW
- ISO 3166/veri/GB-ENG
- ISO 3166/veri/GB-NIR
- ISO 3166/veri/GB-SCT
- ISO 3166/veri/GB-WLS
- ISO 3166/veri/GD
- ISO 3166/veri/GE
- ISO 3166/veri/GF
- ISO 3166/veri/GG
- ISO 3166/veri/GH
- ISO 3166/veri/GI
- ISO 3166/veri/GL
- ISO 3166/veri/GM
- ISO 3166/veri/GN
- ISO 3166/veri/GP
- ISO 3166/veri/GQ
- ISO 3166/veri/GR
- ISO 3166/veri/GS
- ISO 3166/veri/GT
- ISO 3166/veri/GU
- ISO 3166/veri/GW
- ISO 3166/veri/GY
- ISO 3166/veri/HK
- ISO 3166/veri/HM
- ISO 3166/veri/HN
- ISO 3166/veri/HR
- ISO 3166/veri/HT
- ISO 3166/veri/HU
- ISO 3166/veri/ID
- ISO 3166/veri/IE
- ISO 3166/veri/IL
- ISO 3166/veri/IM
- ISO 3166/veri/IN
- ISO 3166/veri/IO
- ISO 3166/veri/IQ
- ISO 3166/veri/IR
- ISO 3166/veri/IS
- ISO 3166/veri/IT
- ISO 3166/veri/JE
- ISO 3166/veri/JM
- ISO 3166/veri/JO
- ISO 3166/veri/JP
- ISO 3166/veri/KE
- ISO 3166/veri/KG
- ISO 3166/veri/KH
- ISO 3166/veri/KI
- ISO 3166/veri/KM
- ISO 3166/veri/KN
- ISO 3166/veri/KP
- ISO 3166/veri/KR
- ISO 3166/veri/KW
- ISO 3166/veri/KY
- ISO 3166/veri/KZ
- ISO 3166/veri/LA
- ISO 3166/veri/LB
- ISO 3166/veri/LC
- ISO 3166/veri/LI
- ISO 3166/veri/LK
- ISO 3166/veri/LR
- ISO 3166/veri/LS
- ISO 3166/veri/LT
- ISO 3166/veri/LU
- ISO 3166/veri/LV
- ISO 3166/veri/LY
- ISO 3166/veri/MA
- ISO 3166/veri/MC
- ISO 3166/veri/MD
- ISO 3166/veri/ME
- ISO 3166/veri/MF
- ISO 3166/veri/MG
- ISO 3166/veri/MH
- ISO 3166/veri/MK
- ISO 3166/veri/ML
- ISO 3166/veri/MM
- ISO 3166/veri/MN
- ISO 3166/veri/MO
- ISO 3166/veri/MP
- ISO 3166/veri/MQ
- ISO 3166/veri/MR
- ISO 3166/veri/MS
- ISO 3166/veri/MT
- ISO 3166/veri/MU
- ISO 3166/veri/MV
- ISO 3166/veri/MW
- ISO 3166/veri/MX
- ISO 3166/veri/MY
- ISO 3166/veri/MZ
- ISO 3166/veri/NA
- ISO 3166/veri/NC
- ISO 3166/veri/NE
- ISO 3166/veri/NF
- ISO 3166/veri/NG
- ISO 3166/veri/NI
- ISO 3166/veri/NL
- ISO 3166/veri/NO
-- 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!
local p = {}
local getArgs = require("Modül:Arguments").getArgs
local data = mw.loadData("Modül:ISO 3166/veri/Ülkeler")
--[[----------F I N D N A M E----------]]-- -- Finds the name in the database
local function findname(code,cdata,qry)
local sqry = p.strip(qry)
if cdata["name"] and sqry==p.strip(cdata["name"])
or cdata["isoname"] and sqry==p.strip(cdata["isoname"])
or not cdata["nocode"] and sqry==code
or sqry==cdata["alpha3"] or sqry==cdata["numeric"]
then
return true
end
for _,tname in pairs(cdata["isonames"] or {}) do
if sqry==p.strip(tname) then
return true
end
end
for _,tname in pairs(cdata["altnames"] or {}) do
if sqry==p.strip(tname) then
return true
end
end
return false
end
--[[----------I S O N A M E----------]]-- -- Find the ISO name of a country/region
local function isoname(data,code,lang)
if data[code]["isonames"] then
local name = data[code]["isodisplaynames"] and data[code]["isodisplaynames"][lang]
or data[code]["isonames"][lang]
or data[code]["isodisplaynames"] and data[code]["isodisplaynames"][data[code]["defaultlang"] or data["defaultlang"]]
or data[code]["isonames"][data[code]["defaultlang"] or data["defaultlang"]]
or data[code]["isodisplaynames"] and data[code]["isodisplaynames"]["en"]
or data[code]["isonames"]["en"]
if name then return name end
for _,iname in pairs(data[code]["isonames"]) do return iname end
return data[code]["isodisplayname"] or data[code]["isoname"]
else
return data[code]["isodisplayname"] or data[code]["isoname"]
end
end
--[[----------S T R I P----------]]-- -- Removes junk from the input
function p.strip(text)
local accents = {["À"]="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"
}
local remove = {"NATION OF","COUNTRY OF","TERRITORY OF", -- text to be removed list
"FLAG OF","FLAG","KINGDOM OF","STATE OF"," STATE ",
"PROVINCE OF","PROVINCE","TERRITORY"
}
local patterns = {[".+:"]="",["|.+"]="",["%(.-%)"]="", -- 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
for pattern,value in pairs(patterns) do -- Follow patterns
text = mw.ustring.gsub(text,pattern,value)
end
for _,words in pairs(remove) do -- Remove unneeded words
text = mw.ustring.gsub(text,words,"")
end
text = mw.ustring.gsub(text,"%W","") -- Remove non alpha-numeric
return text
end
--[[----------P . C A L L S T R I P ---------]]-- -- Calls P.strip but using Modül:Arguments
function p.callstrip(frame)
local args = getArgs(frame)
return p.strip(args[1]) or ""
end
--[[----------P . L U A C O D E---------]]-- -- Makes the ISO code of a country
function p.luacode(args)
if string.find(args[1] or '',"%-") then
args[1], args[2] = string.match(args[1] or '',"^([^%-]*)%-(.*)$")
end
if args[1] then args[1] = p.strip(args[1]) end
if args[2] then args[2] = p.strip(args[2]) end
if args["codetype"]=="3" then
args["codetype"]="alpha3"
end
local eot = args.error or ""
local catnocountry = (args.nocat and args.nocat == 'true') and ''
or '[[Kategori:Tanımlanamayan ülke bilgisi içeren Vikipedi sayfaları]]'
local catnosubdivision = (args.nocat and args.nocat == 'true') and ''
or '[[Kategori:Tanımlanamayan idari birim bilgisi içeren Vikipedi sayfaları]]'
if not args[1] then
if mw.title.getCurrentTitle().namespace ~= 0 then catnocountry = '' end
return catnocountry, '<span style="font-size:100%" class="error">"No parameter for the country given"</span>'
end
if not args[2] then --3166-1 code
for alpha2,cdata in pairs(data) do
if findname(alpha2,cdata,args[1]) then
if args["codetype"]=="numeric" or args["codetype"]=="alpha3" then
return cdata[args["codetype"]]
else
return alpha2
end
end
end
if mw.title.getCurrentTitle().namespace ~= 0 then catnocountry = '' end
return catnocountry
else --3166-2 code
for alpha2,cdata in pairs(data) do
if findname(alpha2,cdata,args[1]) then
if mw.ustring.match(alpha2,"GB") then -- For England, Wales etc.
alpha2 = "GB"
end
local sdata = mw.loadData("Modül:ISO 3166/veri/"..alpha2)
local empty = true
for scode,scdata in pairs(sdata) do
if type(scdata)=="table" then
empty = false
if findname(scode,scdata,args[2]) then
return alpha2.."-"..scode
end
end
end
if mw.title.getCurrentTitle().namespace ~= 0 then catnosubdivision = '' end
return catnosubdivision
end
end
if mw.title.getCurrentTitle().namespace ~= 0 then catnocountry = '' end
return catnocountry
end
end
--[[----------P . C O D E---------]]-- -- Calls P.Luacode but using Modül:Arguments
function p.code(frame)
return p.luacode(getArgs(frame)) or ""
end
--[[----------P . N U M E R I C---------]]-- -- Calls P.Luacode but using Modül:Arguments and setting it to output a numeric value
function p.numeric(frame)
local args = getArgs(frame)
args["codetype"]="numeric"
return p.luacode(args) or ""
end
--[[----------P . L U A N A M E---------]]-- -- Makes the ISO/common name of a country
function p.luaname(args)
local code1 = p.luacode(args)
local code2 = ''
if string.find(code1,"%-") then
code1, code2 = string.match(code1,"^([^%-]*)%-(.*)$")
end
if string.find(code1,"^%u%u$") then
if code2=="" then --3166-1 alpha-2 code
if data[code1] then
return (args.isoname or args.lang) and isoname(data,code1,args.lang)
or (data[code1]["displayname"] or data[code1]["name"])
else
return '[[Kategori:Tanımlanamayan ülke bilgisi içeren Vikipedi sayfaları]]'
end
else --3166-2 code
local sdata
if data[code1] then
sdata = mw.loadData("Modül:ISO 3166/veri/"..code1)
else
return '[[Kategori:Tanımlanamayan ülke bilgisi içeren Vikipedi sayfaları]]'
end
if sdata[code2] then
return (args.isoname or args.lang) and isoname(sdata,code2,args.lang)
or (sdata[code2]["displayname"] or sdata[code2]["name"])
else
return '[[Kategori:Tanımlanamayan ülke bilgisi içeren Vikipedi sayfaları]]'
end
end
end
end
--[[----------P . N A M E---------]]-- -- Calls P.Luaname but using Modül:Arguments
function p.name(frame)
return p.luaname(getArgs(frame)) or ""
end
--[[----------P . G E O C O O R D I N S E R T---------]]-- -- Wrapper for Modül:Coordinates.coordinsert
function p.geocoordinsert(frame)
-- {{#invoke:ISO 3166|geocoordinsert|{{coord|...}}
-- |country=..|subdivision1=...|subdivision2=...
-- |type=...|scale=...|dim=...|source=...|globe=...
-- }}
local args = frame.args
local subdivisionqueried = false
local catnocountry = (args.nocat and args.nocat == 'true') and ''
or '[[Kategori:Tanımlanamayan ülke bilgisi içeren Vikipedi sayfaları]]'
local catnosubdivision = (args.nocat and args.nocat == 'true') and ''
or '[[Kategori:Tanımlanamayan idari birim bilgisi içeren Vikipedi sayfaları]]' or ''
local tracking = ''
local targs = {}
targs[1] = args[1] or ''
for i, v in pairs(args) do
if i == 'country' and not mw.ustring.find(targs[1], 'region:') then
local country = v
local k, region = 1, ''
-- look for a valid subdivision
while region == '' and k < 3 do
local subdivision = args['subdivision' .. k] or ''
if subdivision ~= '' then
region = p.luacode({country, subdivision, nocat = 'true'})
subdivisionqueried = true
end
k = k + 1
end
-- subdivision lookup failed or never attempted, try country only
if region == '' then
region = p.luacode({country, nocat = 'true'})
if mw.title.getCurrentTitle().namespace ~= 0 then catnocountry, catnosubdivision = '', '' end
if region == '' then
tracking = tracking .. catnocountry
elseif subdivisionqueried == true then
tracking = tracking .. catnosubdivision
end
end
-- something worked, add it to the targs
if region ~= '' then
targs[#targs + 1] = 'region:' .. region
end
elseif i == 'type' or i == 'scale' or i == 'dim'
or i == 'source' or i == 'globe' then
targs[#targs + 1] = i .. ':' .. v
end
end
-- call Modül:Coordinates.coordinsert if there is something to insert
if #targs > 1 then
local coordinsert = require('Modül:Koordinatlar').coordinsert
return coordinsert({args = targs}) .. tracking
end
-- otherwise, just return the coordinates
return targs[1] .. tracking
end
return p