local p = {}
local ISO_3166 = require('Module:ISO 3166')
local function ltrim(s)
return s:match '^%s*(.*)'
end
local function split_with_comma(str)
local fields = {}
for field in str:gmatch('([^,]+)') do
fields[#fields + 1] = ltrim(field)
end
return fields
end
local function to_ISO_3166(country)
for i = 1, #country do
local shortname = ISO_3166.name({ country[i] })
if shortname ~= "" then country[i] = shortname end
end
return country
end
local function to_str(arr)
local cstring = ""
for i = 1, #arr - 1 do
cstring = cstring .. ltrim(arr[i]) .. ", "
end
cstring = cstring .. ltrim(arr[#arr])
return cstring
end
function p.countrynames(frame)
-- local test = frame.args[1] .. ", " .. frame.args.property
-- return test
-- change comma list to array
Countryarray = split_with_comma(frame.args[1])
-- put each array entry {as a table} through Module:ISO 3166. If the result is null, keep original entry
to_ISO_3166(Countryarray)
-- change array back to comma string
Commastring = to_str(Countryarray)
return Commastring
end
return p