Module:Link with country
Appearance
| This module is rated as beta. It is considered ready for widespread use, but as it is still relatively new, it should be applied with some caution to ensure results are as expected. |
| Editing of this module by new or unregistered users is currently disabled. See the protection policy and protection log for more details. If you cannot edit this module and you wish to make a change, you can submit an edit request, discuss changes on the talk page, request unprotection, log in, or create an account. |
| This module depends on the following other modules: |
This module is invoked by {{Link with country}}. |
Usage
{{#invoke:Link with country|countrynames}}
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