Jump to content

Module:Link with country/sandbox: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
No edit summary
Line 22: Line 22:
return country
return country
end
end

local function to_str(arr)
commastring = ""
for i = 1, #arr-1 do
commastring = commastring .. ltrim(arr[i]) .. ", "
end
commastring = commastring .. ltrim(arr[#countryarray])
return commastring
end




function p.countrynames( frame )
function p.countrynames( frame )
Line 34: Line 45:


-- change array back to comma string
-- change array back to comma string
commastring = ""
commastring = to_str(countryarray)
for i = 1, #countryarray-1 do
commastring = commastring .. ltrim(countryarray[i]) .. ", "
end
commastring = commastring .. ltrim(countryarray[#countryarray])


return commastring
--commastring = ""
--for i = 1, #countryarray-1 do
-- commastring = commastring .. ltrim(countryarray[i]) .. ", "
--end
--commastring = commastring .. ltrim(countryarray[#countryarray])
--
--return commastring


end
end

Revision as of 00:35, 21 May 2024

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
    shortname = ISO_3166.name({country[i]})
    if shortname ~= "" then country[i] = shortname end
  end
  return country
end

local function to_str(arr)
  commastring = ""
  for i = 1, #arr-1 do
    commastring = commastring .. ltrim(arr[i]) .. ", "
  end
  commastring = commastring .. ltrim(arr[#countryarray]) 
  return commastring
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)

--commastring = ""
--for i = 1, #countryarray-1 do
--  commastring = commastring .. ltrim(countryarray[i]) .. ", "
--end
--commastring = commastring .. ltrim(countryarray[#countryarray]) 
--
--return commastring

end

return p