<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.caricature.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ACountry_alias</id>
	<title>Module:Country alias - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.caricature.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ACountry_alias"/>
	<link rel="alternate" type="text/html" href="http://wiki.caricature.org/wiki/index.php?title=Module:Country_alias&amp;action=history"/>
	<updated>2026-05-18T19:04:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://wiki.caricature.org/wiki/index.php?title=Module:Country_alias&amp;diff=4544&amp;oldid=prev</id>
		<title>TheChairman: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://wiki.caricature.org/wiki/index.php?title=Module:Country_alias&amp;diff=4544&amp;oldid=prev"/>
		<updated>2020-06-05T01:39:25Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 01:39, 5 June 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>TheChairman</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.caricature.org/wiki/index.php?title=Module:Country_alias&amp;diff=4543&amp;oldid=prev</id>
		<title>en&gt;Primefac: sync with sandbox</title>
		<link rel="alternate" type="text/html" href="http://wiki.caricature.org/wiki/index.php?title=Module:Country_alias&amp;diff=4543&amp;oldid=prev"/>
		<updated>2019-12-04T00:55:17Z</updated>

		<summary type="html">&lt;p&gt;sync with sandbox&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module returns the country name or the flag name for a country,&lt;br /&gt;
-- based on the three-letter IOC/CGA/FINA alias.&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
The following country code is used for multiple countries:&lt;br /&gt;
    ANG (workaround: added ANG_CGF for use with Commonwealth Games)&lt;br /&gt;
&lt;br /&gt;
The following names have different names/flags based on sport/year&lt;br /&gt;
    Great Britain (and N.I.)         GBR, GBR_WCA (latter added to add text in parens)&lt;br /&gt;
    Hong Kong                        HKG, HKG_CGF (latter added to keep colonial flag)&lt;br /&gt;
    Individual Olympic Athletes      IOA, IOA_2000 (IOA changed to Independent Olympic Athletes in 2012)&lt;br /&gt;
    SWZ                              Swaziland became Eswatini after the 2018 Commonwealth Games&lt;br /&gt;
    MKD								 Macedonia became North Macedonia in 2019&lt;br /&gt;
    ART								 No &amp;quot;Athlete&amp;quot; before Refugee Team @ 2017 AIMAG&lt;br /&gt;
&lt;br /&gt;
The following names occur twice due to CGF/IOC/FINA/IAAF/etc differences&lt;br /&gt;
    Anguilla                         AIA, ANG_CGF&lt;br /&gt;
    Antigua and Barbuda              ANT, ATG&lt;br /&gt;
    Bahrain                          BHN, BHR, BRN&lt;br /&gt;
    Curaçao                          CUR, CUW&lt;br /&gt;
    Faroe Islands                    FAR, FRO&lt;br /&gt;
    Guernsey                         GGY, GUE&lt;br /&gt;
    Iran                             IRI, IRN&lt;br /&gt;
    Ireland                          IRE, IRL - IRE is *only* for CGF apps&lt;br /&gt;
    Jersey                           JER, JEY&lt;br /&gt;
    Lebanon                          LBN, LIB&lt;br /&gt;
    Montserrat                       MNT, MSR&lt;br /&gt;
    Nicaragua                        NCA, NIC&lt;br /&gt;
    Norfolk Island                   NFI, NFK&lt;br /&gt;
    Oman                             OMA, OMN&lt;br /&gt;
    Refugee Olympic Team             ROA, ROT&lt;br /&gt;
    Romania                          ROM, ROU&lt;br /&gt;
    Saint Helena                     SHE, SHN&lt;br /&gt;
    Saint Vincent and the Grenadines SVG, VIN&lt;br /&gt;
    Sarawak                          SAR, SWK&lt;br /&gt;
    Singapore                        SGP, SIN&lt;br /&gt;
    South Africa                     RSA, SAF&lt;br /&gt;
    Tonga                            TGA, TON&lt;br /&gt;
    Trinidad and Tobago              TRI, TTO&lt;br /&gt;
    Turks and Caicos Islands         TCA, TCI, TKS&lt;br /&gt;
&lt;br /&gt;
Oddity that needs to be revisited&lt;br /&gt;
    French Polynesia                 PYF, TAH - TAH has been converted to Tahiti per SILENCE&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function stripToNil(text)&lt;br /&gt;
	-- If text is a string, return its trimmed content, or nil if empty.&lt;br /&gt;
	-- Otherwise return text (which may, for example, be nil).&lt;br /&gt;
	if type(text) == 'string' then&lt;br /&gt;
		text = text:match('(%S.-)%s*$')&lt;br /&gt;
	end&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function yes(parameter)&lt;br /&gt;
	-- Return true if parameter should be interpreted as &amp;quot;yes&amp;quot;.&lt;br /&gt;
	return ({ y = true, yes = true, on = true, [true] = true })[parameter]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getAlias(args)&lt;br /&gt;
	-- Return alias parameter, possibly modified for exceptional cases.&lt;br /&gt;
	local alias = stripToNil(args.alias)&lt;br /&gt;
	local games = stripToNil(args.games)&lt;br /&gt;
	local year = tonumber(args.year)&lt;br /&gt;
	local fullName = stripToNil(args.fullName)&lt;br /&gt;
	if fullName then&lt;br /&gt;
		year = tonumber(fullName:match('^%d+'))  -- ignore args.year&lt;br /&gt;
	end&lt;br /&gt;
	if alias == 'ANG' then&lt;br /&gt;
		if games == 'Commonwealth Games' then&lt;br /&gt;
			alias = 'ANG_CGF'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'ART' then&lt;br /&gt;
		if games == 'Asian Indoor and Martial Arts Games' then&lt;br /&gt;
			alias = 'ART_AIMAG'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'GBR' then&lt;br /&gt;
		if games == 'World Championships in Athletics' or games == 'European Athletics Championships' then&lt;br /&gt;
			alias = 'GBR_WCA'&lt;br /&gt;
		elseif games == 'European Championships' then&lt;br /&gt;
			if year == 2018 then&lt;br /&gt;
				alias = 'GBR_WCA'&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'HKG' then&lt;br /&gt;
		if games == 'Commonwealth Games' then&lt;br /&gt;
			alias = 'HKG_CGF'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'IOA' then&lt;br /&gt;
		if year == 2000 then&lt;br /&gt;
			alias = 'IOA_2000'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'SWZ' then&lt;br /&gt;
		if fullName then&lt;br /&gt;
			if year and year &amp;gt;= 2018 and fullName ~= '2018 Commonwealth Games' then&lt;br /&gt;
				alias = 'SWZ_YO2018'&lt;br /&gt;
			end&lt;br /&gt;
		elseif year and year &amp;gt;= 2018 and games ~= 'Commonwealth Games' then&lt;br /&gt;
			alias = 'SWZ_YO2018'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'MKD' then&lt;br /&gt;
		if year and year &amp;gt;= 2019 then&lt;br /&gt;
			alias = 'MKD_2019'&lt;br /&gt;
		end	&lt;br /&gt;
	end&lt;br /&gt;
	return alias&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getFlag(args, country)&lt;br /&gt;
	-- Return name of flag selected from country data (nil if none defined).&lt;br /&gt;
	local year = tonumber(args.year)&lt;br /&gt;
	local games = stripToNil(args.games)&lt;br /&gt;
	if games then&lt;br /&gt;
		local gdata = country[games]&lt;br /&gt;
		if gdata then&lt;br /&gt;
			if type(gdata) == 'string' then&lt;br /&gt;
				return gdata&lt;br /&gt;
			end&lt;br /&gt;
			if gdata[year] then&lt;br /&gt;
				return gdata[year]&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for _, item in ipairs(country) do&lt;br /&gt;
		if type(item) == 'string' then&lt;br /&gt;
			return item&lt;br /&gt;
		end&lt;br /&gt;
		if year and year &amp;lt;= item[1] then&lt;br /&gt;
			return item[2]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local data = mw.loadData('Module:Country alias/data')&lt;br /&gt;
local function countryAlias(args)&lt;br /&gt;
	local alias = getAlias(args)&lt;br /&gt;
	local country = data.countries[alias] or data.countries[data.countryAliases[alias]]&lt;br /&gt;
	local function quit(message)&lt;br /&gt;
		return args.error or error(message)&lt;br /&gt;
	end&lt;br /&gt;
	if not country then&lt;br /&gt;
		return quit('Invalid country alias: ' .. tostring(alias))&lt;br /&gt;
	end&lt;br /&gt;
	if yes(args.flag) then&lt;br /&gt;
		return getFlag(args, country) or quit('No flag defined for ' .. alias)&lt;br /&gt;
	else&lt;br /&gt;
		return country.name or quit('No name defined for ' .. alias)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function flagIOC(frame)&lt;br /&gt;
	-- Implement {{flagIOC}} which previously called this module three times.&lt;br /&gt;
	-- Returns &amp;lt;flag&amp;gt; &amp;lt;country link&amp;gt; &amp;lt;athletes&amp;gt;, with the third value optional&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local code = stripToNil(args[1]) or error('flagIOC parameter 1 should be a country code')&lt;br /&gt;
	local games = stripToNil(args[2])&lt;br /&gt;
	local athletes = stripToNil(args[3])&lt;br /&gt;
	games = games and (games .. ' Olympics') or 'Olympics'&lt;br /&gt;
	local parms = {&lt;br /&gt;
		alias = code,&lt;br /&gt;
		fullName = games,&lt;br /&gt;
		year = games:match('^%d+'),&lt;br /&gt;
		games = games:gsub('^%d+ ?', ''),&lt;br /&gt;
	}&lt;br /&gt;
	local fullName = countryAlias(parms)&lt;br /&gt;
	parms.flag = true&lt;br /&gt;
	return (('[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;[[{name} at the {games}|{name}]]{athletes}')&lt;br /&gt;
		:gsub('{(%w+)}', {&lt;br /&gt;
			athletes = athletes and&lt;br /&gt;
				('&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;(' .. athletes .. ')&amp;lt;/span&amp;gt;') or&lt;br /&gt;
				'',&lt;br /&gt;
			flag = countryAlias(parms),&lt;br /&gt;
			games = games,&lt;br /&gt;
			name = fullName,&lt;br /&gt;
		}))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function flagIOC2(frame)&lt;br /&gt;
	-- Implement {{flagIOC2}} which previously called this module three times.&lt;br /&gt;
	-- Returns &amp;lt;flag&amp;gt; &amp;lt;country link&amp;gt; &amp;lt;athletes&amp;gt;, with the third value optional&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local code = stripToNil(args[1]) or error('Parameter 1 should be a country code')&lt;br /&gt;
	local games = stripToNil(args[2]) or error('Parameter 2 should be a competition name')&lt;br /&gt;
	local athletes = stripToNil(args[3])&lt;br /&gt;
	local dispName = stripToNil(args.name)&lt;br /&gt;
	local parms = {&lt;br /&gt;
		alias = code,&lt;br /&gt;
		fullName = games,&lt;br /&gt;
		year = games:match('^%d+'),&lt;br /&gt;
		games = games:gsub('^%d+ ?', ''),&lt;br /&gt;
	}&lt;br /&gt;
	local fullName = countryAlias(parms)&lt;br /&gt;
	parms.flag = true&lt;br /&gt;
	return (('[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;[[{name} at the {games}|{dispName}]]{athletes}')&lt;br /&gt;
		:gsub('{(%w+)}', {&lt;br /&gt;
			athletes = athletes and&lt;br /&gt;
				('&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;(' .. athletes .. ')&amp;lt;/span&amp;gt;') or&lt;br /&gt;
				'',&lt;br /&gt;
			flag = countryAlias(parms),&lt;br /&gt;
			games = games,&lt;br /&gt;
			name = fullName,&lt;br /&gt;
			dispName = dispName or fullName,&lt;br /&gt;
		}))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function main(frame)&lt;br /&gt;
	return countryAlias(frame.args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	flagIOC2 = flagIOC2,&lt;br /&gt;
	flagIOC = flagIOC,&lt;br /&gt;
	main = main,&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>en&gt;Primefac</name></author>
		
	</entry>
</feed>