Module:Link with country/sandbox

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