<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3ACountry_alias</id>
	<title>وحدة:Country alias - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3ACountry_alias"/>
	<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Country_alias&amp;action=history"/>
	<updated>2026-06-05T06:50:17Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Country_alias&amp;diff=1144&amp;oldid=prev</id>
		<title>عبد العزيز في 15:40، 10 أغسطس 2021</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Country_alias&amp;diff=1144&amp;oldid=prev"/>
		<updated>2021-08-10T15:40:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&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;
    Russian Athletes				 OAR (2018), ROC_2020 (2020 Summer, 2022 Winter)&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 countries have multiple aliases due to CGF/IOC/FINA/IAAF/etc differences, or deprecated uses&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;
    East Timor						 TLS, TMP&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, EOR&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) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		text = text:match(&amp;#039;(%S.-)%s*$&amp;#039;)&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(&amp;#039;^%d+&amp;#039;))  -- ignore args.year&lt;br /&gt;
	end&lt;br /&gt;
	if alias == &amp;#039;ANG&amp;#039; then&lt;br /&gt;
		if games == &amp;#039;Commonwealth Games&amp;#039; or games == &amp;quot;ألعاب الكومنولث&amp;quot; then&lt;br /&gt;
			alias = &amp;#039;ANG_CGF&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == &amp;#039;ART&amp;#039; then&lt;br /&gt;
		if games == &amp;#039;Asian Indoor and Martial Arts Games&amp;#039; or games == &amp;quot;الألعاب الآسيوية للرياضات الداخلية والألعاب القتالية&amp;quot; then&lt;br /&gt;
			alias = &amp;#039;ART_AIMAG&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == &amp;#039;GBR&amp;#039; then&lt;br /&gt;
		if games == &amp;#039;World Championships in Athletics&amp;#039; or games == &amp;quot;بطولة العالم لألعاب القوى&amp;quot;&lt;br /&gt;
		or games == &amp;#039;European Athletics Championships&amp;#039; or games == &amp;quot;بطولة أوروبا لألعاب القوى&amp;quot;&lt;br /&gt;
		then&lt;br /&gt;
			alias = &amp;#039;GBR_WCA&amp;#039;&lt;br /&gt;
		elseif games == &amp;#039;European Championships&amp;#039; then&lt;br /&gt;
			if year == 2018 then&lt;br /&gt;
				alias = &amp;#039;GBR_WCA&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == &amp;#039;HKG&amp;#039; then&lt;br /&gt;
		if games == &amp;#039;Commonwealth Games&amp;#039;  or games == &amp;quot;ألعاب الكومنولث&amp;quot; then&lt;br /&gt;
			alias = &amp;#039;HKG_CGF&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == &amp;#039;IOA&amp;#039; then&lt;br /&gt;
		if year == 2000 then&lt;br /&gt;
			alias = &amp;#039;IOA_2000&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == &amp;#039;MAL&amp;#039; then&lt;br /&gt;
		if year and year &amp;gt; 1963 then&lt;br /&gt;
			alias = &amp;#039;MAS&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == &amp;#039;SWZ&amp;#039; then&lt;br /&gt;
		if fullName then&lt;br /&gt;
			if year and year &amp;gt;= 2018 and (fullName ~= &amp;#039;2018 Commonwealth Games&amp;#039; or fullName ~= &amp;#039;ألعاب الكومنولث 2018&amp;#039;)&lt;br /&gt;
			then&lt;br /&gt;
				alias = &amp;#039;SWZ_YO2018&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		elseif year and year &amp;gt;= 2018 and (games ~= &amp;#039;Commonwealth Games&amp;#039;  or games == &amp;quot;ألعاب الكومنولث&amp;quot; ) then&lt;br /&gt;
			alias = &amp;#039;SWZ_YO2018&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == &amp;#039;MKD&amp;#039; then&lt;br /&gt;
		if year and year &amp;gt;= 2019 then&lt;br /&gt;
			alias = &amp;#039;MKD_2019&amp;#039;&lt;br /&gt;
		end	&lt;br /&gt;
	elseif alias == &amp;#039;VNM&amp;#039; then&lt;br /&gt;
		if year and year &amp;lt;= 1954 then&lt;br /&gt;
			alias = &amp;#039;VIE&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
			elseif alias == &amp;#039;ROC&amp;#039; or alias == &amp;#039;RUS&amp;#039; then&lt;br /&gt;
if year and year==2020 and games==&amp;#039;الألعاب الأولمبية الصيفية&amp;#039; or games==&amp;#039;Summer Olympics&amp;#039;&lt;br /&gt;
&lt;br /&gt;
then&lt;br /&gt;
&lt;br /&gt;
alias = &amp;#039;ROC_2020&amp;#039;&lt;br /&gt;
		elseif year and year==2022 and games==&amp;#039;Winter Olympics&amp;#039; then&lt;br /&gt;
			alias = &amp;#039;ROC_2020&amp;#039;&lt;br /&gt;
		elseif year and year==2020 and games==&amp;#039;Summer Paralympics&amp;#039; then&lt;br /&gt;
			alias = &amp;#039;RPC&amp;#039;&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;
	--year = mw.ustring.gsub(year, &amp;quot;الصيفية &amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	--year = mw.ustring.gsub(year, &amp;quot;الشتوية &amp;quot;, &amp;quot;&amp;quot;)&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) == &amp;#039;string&amp;#039; 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) == &amp;#039;string&amp;#039; 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(&amp;#039;Module:Country alias/data&amp;#039;)&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(&amp;#039;Invalid country alias: &amp;#039; .. tostring(alias))&lt;br /&gt;
	end&lt;br /&gt;
	if yes(args.flag) then&lt;br /&gt;
		return getFlag(args, country) or quit(&amp;#039;No flag defined for &amp;#039; .. alias)&lt;br /&gt;
	else&lt;br /&gt;
		return country.name or quit(&amp;#039;No name defined for &amp;#039; .. alias)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
local trans = {}&lt;br /&gt;
trans[&amp;quot;Winter&amp;quot;] = &amp;quot;الشتوية&amp;quot;&lt;br /&gt;
trans[&amp;quot;Summer&amp;quot;] = &amp;quot;الصيفية&amp;quot;&lt;br /&gt;
trans[&amp;quot;Asian Games&amp;quot;] = &amp;quot;الألعاب الآسيوية&amp;quot;&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(&amp;#039;flagIOC parameter 1 should be a country code&amp;#039;)&lt;br /&gt;
	local games = stripToNil(args[2])&lt;br /&gt;
	local games2 = trans[games] or games&lt;br /&gt;
	local athletes = stripToNil(args[3])&lt;br /&gt;
	games = games2 and (&amp;quot;الألعاب الأولمبية &amp;quot; .. &lt;br /&gt;
		games2 .. &amp;#039;&amp;#039;) or &amp;#039;الألعاب الأولمبية&amp;#039;&lt;br /&gt;
	local parms = {&lt;br /&gt;
		alias = code,&lt;br /&gt;
		fullName = games,&lt;br /&gt;
		year = games:match(&amp;#039;^%d+&amp;#039;),&lt;br /&gt;
		games = games:gsub(&amp;#039;^%d+ ?&amp;#039;, &amp;#039;&amp;#039;),&lt;br /&gt;
	}&lt;br /&gt;
	local fullName = countryAlias(parms)&lt;br /&gt;
	parms.flag = true&lt;br /&gt;
	return ((&amp;#039;[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;[[{name} في {games}|{name}]]{athletes}&amp;#039;)&lt;br /&gt;
		:gsub(&amp;#039;{(%w+)}&amp;#039;, {&lt;br /&gt;
			athletes = athletes and&lt;br /&gt;
				(&amp;#039;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;(&amp;#039; .. athletes .. &amp;#039;)&amp;lt;/span&amp;gt;&amp;#039;) or&lt;br /&gt;
				&amp;#039;&amp;#039;,&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 flagXYZ(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 dispType = stripToNil(frame.args[&amp;#039;type&amp;#039;])&lt;br /&gt;
	local code=&amp;#039;&amp;#039;&lt;br /&gt;
	local games=&amp;#039;&amp;#039;&lt;br /&gt;
	local athletes=&amp;#039;&amp;#039;&lt;br /&gt;
	if dispType == &amp;#039;name&amp;#039; or dispType == &amp;#039;team&amp;#039; then&lt;br /&gt;
		code = stripToNil(args[1]) or error(&amp;#039;Parameter 1 should be a country code&amp;#039;)&lt;br /&gt;
		games = stripToNil(args[2]) or error(&amp;#039;Parameter 2 should be a competition name&amp;#039;)&lt;br /&gt;
		athletes = stripToNil(args[3])&lt;br /&gt;
	elseif dispType == &amp;#039;athlete&amp;#039; or dispType == &amp;#039;medalist&amp;#039; then&lt;br /&gt;
		athletes = stripToNil(args[1]) or error(&amp;#039;Parameter 1 should be the name(s) of the athlete(s)&amp;#039;)&lt;br /&gt;
		code = stripToNil(args[2]) or error(&amp;#039;Parameter 2 should be a country code&amp;#039;)&lt;br /&gt;
		games = stripToNil(args[3]) or error(&amp;#039;Parameter 3 should be a competition name&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	local dispName = stripToNil(args.name)&lt;br /&gt;
	&lt;br /&gt;
	local parms = {&lt;br /&gt;
		alias = code,&lt;br /&gt;
		fullName = games,&lt;br /&gt;
		year = games:match(&amp;#039;^%d+&amp;#039;),&lt;br /&gt;
		games = games:gsub(&amp;#039;^%d+ ?&amp;#039;, &amp;#039;&amp;#039;),&lt;br /&gt;
	}&lt;br /&gt;
	local fullName = countryAlias(parms)&lt;br /&gt;
	parms.flag = true&lt;br /&gt;
	&lt;br /&gt;
	if dispType == &amp;#039;name&amp;#039; then&lt;br /&gt;
		return ((&amp;#039;[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;[[{name} at the {games}|{dispName}]]{athletes}&amp;#039;)&lt;br /&gt;
			:gsub(&amp;#039;{(%w+)}&amp;#039;, {&lt;br /&gt;
				athletes = athletes and&lt;br /&gt;
					(&amp;#039;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;(&amp;#039; .. athletes .. &amp;#039;)&amp;lt;/span&amp;gt;&amp;#039;) or&lt;br /&gt;
					&amp;#039;&amp;#039;,&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;
	elseif dispType == &amp;#039;team&amp;#039; then&lt;br /&gt;
		return ((&amp;#039;[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;[[{name} at the {games}|{dispName}]]{alias}&amp;#039;)&lt;br /&gt;
			:gsub(&amp;#039;{(%w+)}&amp;#039;, {&lt;br /&gt;
				alias = (&amp;#039;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;(&amp;#039; .. code .. &amp;#039;)&amp;lt;/span&amp;gt;&amp;#039;),&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;
	elseif dispType == &amp;#039;athlete&amp;#039; then&lt;br /&gt;
		return ((&amp;#039;[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;{athletes}&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;([[{name} at the {games}|{dispName}]])&amp;lt;/span&amp;gt;&amp;#039;)&lt;br /&gt;
			:gsub(&amp;#039;{(%w+)}&amp;#039;, {&lt;br /&gt;
				athletes = athletes,&lt;br /&gt;
				flag = countryAlias(parms),&lt;br /&gt;
				games = games,&lt;br /&gt;
				name = fullName,&lt;br /&gt;
				dispName = code,&lt;br /&gt;
			}))&lt;br /&gt;
	elseif dispType == &amp;#039;medalist&amp;#039; then&lt;br /&gt;
		return ((&amp;#039;{athletes}&amp;lt;br&amp;gt;[[File:{flag}|23x15px|border|alt=|link=]]&amp;amp;nbsp;[[{name} at the {games}|{dispName}]]&amp;#039;)&lt;br /&gt;
			:gsub(&amp;#039;{(%w+)}&amp;#039;, {&lt;br /&gt;
				athletes = athletes,&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;
end&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;
	flagIOC = flagIOC,&lt;br /&gt;
	flagXYZ = flagXYZ,&lt;br /&gt;
	main = main,&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
</feed>