Jump to content

Module:Link with country/sandbox

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Hohum (talk | contribs) at 10:17, 21 May 2024. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
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)

    return commastring
end

return p