Module:ISO 3166: Difference between revisions

Jump to navigation Jump to search
Content added Content deleted
(Sharing "strip" function)
(Isonames option)
Line 20: Line 20:
then
then
return true
return true
end
for _,tname in pairs(cdata["isonames"] or {}) do
if sqry==p.strip(tname) then
return true
end
end
end
for _,tname in pairs(cdata["altnames"] or {}) do
for _,tname in pairs(cdata["altnames"] or {}) do
Line 27: Line 32:
end
end
return false
return false
end

local function isoname(data,code,lang)
if data[code]["isonames"] then
return data[code]["isonames"][lang or data[code]["defaultlang"] or data["defaultlang"] or "en"]
or data[code]["isonames"][data[code]["defaultlang"] or data["defaultlang"] or "en"]
or data[code]["isonames"]["en"]
or data[code]["isodisplayname"] or data[code]["isoname"]
else
return data[code]["isodisplayname"] or data[code]["isoname"]
end
end
end


Line 74: Line 90:
--3166-1 alpha-2 code
--3166-1 alpha-2 code
if data[code1] then
if data[code1] then
return args.isoname and (data[code1]["isodisplayname"] or data[code1]["isoname"])
return (args.isoname or args.lang)
or (data[code1]["displayname"] or data[code1]["name"])
and isoname(data,code1,args.lang)
or (data[code1]["displayname"] or data[code1]["name"])
else
else
return cerror(eot,"Unknown ISO 3166-1 code "..code1,code1)
return cerror(eot,"Unknown ISO 3166-1 code "..code1,code1)
Line 88: Line 105:
end
end
if sdata[code2] then
if sdata[code2] then
return args.isoname and (sdata[code2]["isodisplayname"] or sdata[code2]["isoname"])
return (args.isoname or args.lang)
or (sdata[code2]["displayname"] or sdata[code2]["name"])
and isoname(sdata,code2,args.lang)
or (sdata[code2]["displayname"] or sdata[code2]["name"])
else
else
for _,_ in pairs(sdata) do
for _,_ in pairs(sdata) do
Line 102: Line 120:
for alpha2,cdata in pairs(data) do
for alpha2,cdata in pairs(data) do
if cdata[codetype]==code1 then
if cdata[codetype]==code1 then
return args.isoname and (cdata["isodisplayname"] or cdata["isoname"])
return (args.isoname or args.lang)
or (cdata["displayname"] or cdata["name"])
and isoname(data,alpha2,args.lang)
or (cdata["displayname"] or cdata["name"])
end
end
end
end