Module:Link with country/sandbox explained

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 fieldsend

local function to_ISO_3166(country) for i = 1, #country do local shortname = ISO_3166.name if shortname ~= "" then country[i] = shortname end end return countryend

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 cstringend

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 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 Commastringend

return p