Jump to content

Module:Link with country: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
No edit summary
Line 1: Line 1:
local p = {}
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 function split_with_comma(str)
Line 7: Line 13:
end
end
return fields
return fields
end

function ltrim(s)
return s:match'^%s*(.*)'
end
end


Line 23: Line 25:


-- put each array entry through Module:ISO 3166. If the result is null, keep original entry
-- put each array entry through Module:ISO 3166. If the result is null, keep original entry
local ISO_3166 = require('Module:ISO 3166')


for i = 1, #countryarray do
for i = 1, #countryarray do
shortname = ISO_3166.name({countryarray[i]})
shortname = ISO_3166.name({countryarray[i]})
if shortname ~= "" then countryarray[i] = shortname end
if shortname ~= "" then countryarray[i] = shortname end
end
end



Revision as of 14:46, 20 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


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

for i = 1, #countryarray do
  shortname = ISO_3166.name({countryarray[i]}) 
  if shortname ~= "" then countryarray[i] = shortname end
end

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

return commastring

end

return p