Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Usage  



1.1  Template:Country alias  





1.2  Template:FlagIOC  





1.3  Template:FlagIOC2 and variants  
















Module:Country alias/sandbox







Add links
 









Module
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Get shortened URL
Download QR code
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 

< Module:Country alias

This module implements {{country alias}} and the {{flagIOC2}} family of templates. Check there for usage documentation.

Usage[edit]

Template:Country alias[edit]

This module is used by {{country alias}} to return either the country name or the country's flag, based on a combination of the three-letter country code (required), the year (optional), and the competition being played (optional).

{{#invoke:Country alias|main|alias=|flag=|games=|year=}}

Template:FlagIOC[edit]

This module is used by {{flagIOC}} to return a formatted country flag, country name, and the number of athletes present (optional) at a given edition of the Olympic Games.

{{#invoke:Country alias|flagIOC|alias=|flag=|games=|year=|athletes=}}

Template:FlagIOC2 and variants[edit]

This module is used by the {{flagIOC2}} family of templates (except flagIOC, described above) to return various formatted combinations of country flag, country name, the number of athletes present and/or names of athletes present at a given Games.

{{#invoke:Country alias|flagXYZ|alias=|flag=|games=|year=|athletes=|type=}}

-- This module returns the country name or the flag name for a country,
-- based on the three-letter IOC/CGA/FINA alias.

--[[
The following country code is used for multiple countries:
    ANG (workaround: added ANG_CGF for use with Commonwealth Games)

The following names have different names/flags based on sport/year
    Great Britain (and N.I.)         GBR, GBR_WCA (latter added to add text in parens)
    Hong Kong                        HKG, HKG_CGF (latter added to keep colonial flag)
    Individual Olympic Athletes      IOA, IOA_2000 (IOA changed to Independent Olympic Athletes in 2012)
    Russian Athletes     OAR (2018), ROC_2020 (2020 Summer, 2022 Winter)
    SWZ                              Swaziland became Eswatini after the 2018 Commonwealth Games
    MKD         Macedonia became North Macedonia in 2019
    ART         No "Athlete" before Refugee Team @ 2017 AIMAG

The following countries have multiple aliases due to CGF/IOC/FINA/IAAF/etc differences, or deprecated uses
    Anguilla                         AIA, ANG_CGF
    Antigua and Barbuda              ANT, ATG
    Bahrain                          BHN, BHR, BRN
    Curaçao                          CUR, CUW
    East Timor       TLS, TMP
    Falkand Islands      FAI, FLK
    Faroe Islands                    FAR, FRO
    Guernsey                         GGY, GUE
    Iran                             IRI, IRN
    Ireland                          IRE, IRL - IRE is *only* for CGF apps
    Jersey                           JER, JEY
    Lebanon                          LBN, LIB
    Montserrat                       MNT, MSR
    Nicaragua                        NCA, NIC
    Norfolk Island                   NFI, NFK
    Oman                             OMA, OMN
    Refugee Olympic Team             ROA, ROT, EOR
    Romania                          ROM, ROU
    Saint Helena                     SHE, SHN
    Saint Vincent and the Grenadines SVG, VIN
    Sarawak                          SAR, SWK
    Singapore                        SGP, SIN
    South Africa                     RSA, SAF
    Tonga                            TGA, TON
    Trinidad and Tobago              TRI, TTO
    Turks and Caicos Islands         TCA, TCI, TKS

Oddity that needs to be revisited
    French Polynesia                 PYF, TAH - TAH has been converted to Tahiti per SILENCE
]]

local function stripToNil(text)
 -- If text is a string, return its trimmed content, or nil if empty.
 -- Otherwise return text (which may, for example, be nil).
 if type(text) == 'string' then
  text = text:match('(%S.-)%s*$')
 end
 return text
end

local function yes(parameter)
 -- Return true if parameter should be interpreted as "yes".
 return ({ y = true, yes = true, on = true, [true] = true })[parameter]
end

local function getAlias(args)
 -- Return alias parameter, possibly modified for exceptional cases.
 local alias = stripToNil(args.alias)
 local games = stripToNil(args.games)
 local year = tonumber(args.year)
 local fullName = stripToNil(args.fullName)
 if fullName then
  year = tonumber(fullName:match('^%d+'))  -- ignore args.year
 end
 if alias == 'ANG' then
  if games == 'Commonwealth Games' then
   alias = 'ANG_CGF'
  end
 elseif alias == 'ART' then
  if games == 'Asian Indoor and Martial Arts Games' then
   alias = 'ART_AIMAG'
  end
 elseif alias == 'GBR' then
  if games == 'World Championships in Athletics' or games == 'World Athletics Championships' or games == 'European Athletics Championships' then
   alias = 'GBR_WCA'
  elseif games == 'European Championships' then
   if year == 2018 then
    alias = 'GBR_WCA'
   end
  end
 elseif alias == 'HKG' then
  if games == 'Commonwealth Games' then
   alias = 'HKG_CGF'
  end
 elseif alias == 'IOA' then
  if year == 2000 then
   alias = 'IOA_2000'
  end
 elseif alias == 'MAL' or alias == 'MAS' then
  if year and year < 1963 then
   alias = 'MAL'
  else
   alias = 'MAS'
  end
 elseif alias == 'SWZ' then
  if fullName then
   if year and year >= 2018 and fullName ~= '2018 Commonwealth Games' then
    alias = 'SWZ_YO2018'
   end
  elseif year and year >= 2018 and games ~= 'Commonwealth Games' then
   alias = 'SWZ_YO2018'
  else
   alias = 'SWZ_YO2018'
  end
 elseif alias == 'MKD' then
  if year and year < 2019 then
   alias = 'MKD'
  else
   alias = 'MKD_2019'
  end
 elseif alias == 'VNM' then
  if year and year <= 1954 then
   alias = 'VIE'
  end
 elseif alias == 'RUS' then
  if year and year==2020 then
   if games=='Summer Olympics' then
    alias = 'ROC_2020'
   elseif games=='Summer Paralympics' then
    alias = 'RPC'
   end
  elseif year and year==2022 and games=='Winter Olympics' then
   alias = 'ROC_2020'
  end
 elseif alias == 'ROC' then
  if year and year==1960 and games=='Summer Olympics' then
   alias = 'ROC_Formosa'
  elseif year and ( year==1964 or year==1968 ) and games=='Summer Olympics' then
   alias = 'ROC_Taiwan'
  elseif year and year==2020 and games=='Summer Olympics' then
   alias = 'ROC_2020'
  elseif year and year==2022 and games=='Winter Olympics' then
   alias = 'ROC_2020'
  elseif year and year==2020 and games=='Summer Paralympics' then
   alias = 'RPC'
  else
   local pageName = mw.title.getCurrentTitle().text
   if pageName == 'Russian Olympic Committee athletes at the Olympics' then
    alias = 'ROC_2020'
   end
  end
 elseif alias == 'YUG' or alias == 'SCG' then
  if year and year > 1992 and year < 2004 and games ~= 'Summer Paralympics' then
   alias = 'FR_YUG'
  end
 end
 return alias
end

local function getFlag(args, country)
 -- Return name of flag selected from country data (nil if none defined).
 local year = tonumber(args.year)
 local games = stripToNil(args.games)
 if games then
  local gdata = country[games]
  if gdata then
   if type(gdata) == 'string' then
    return gdata
   end
   if gdata[year] then
    return gdata[year]
   end
  end
 end
 for _, item in ipairs(country) do
  if type(item) == 'string' then
   return item
  end
  if year and year <= item[1] then
   return item[2]
  end
 end
end

local data = mw.loadData('Module:Country alias/data')
local function countryAlias(args)
 local alias = getAlias(args)
 local country = data.countries[alias] or data.countries[data.countryAliases[alias]]
 local function quit(message)
  return args.error or error(message)
 end
 if not country then
  return quit('Invalid country alias: ' .. tostring(alias))
 end
 if yes(args.flag) then
  return getFlag(args, country) or quit('No flag defined for ' .. alias)
 else
  return country.name or quit('No name defined for ' .. alias)
 end
end

local function flagIOC(frame)
 -- Implement {{flagIOC}} which previously called this module three times.
 -- Returns <flag> <country link> <athletes>, with the third value optional
 local args = frame:getParent().args
 local code = stripToNil(args[1]) or error('flagIOC parameter 1 should be a country code')
 local games = stripToNil(args[2])
 local athletes = stripToNil(args[3])
 games = games and (games .. ' Olympics') or 'Olympics'
 local parms = {
  alias = code,
  fullName = games,
  year = games:match('^%d+'),
  games = games:gsub('^%d+ ?', ''),
 }
 local fullName = countryAlias(parms)
 parms.flag = true
 local dispName = fullName
 if fullName == 'ROC' then
  fullName = 'Russian Olympic Committee athletes'
 end
 return (('[[File:{flag}|22x20px|border|alt=|link=]]&nbsp;[[{name} at the {games}|{dispName}]]{athletes}')
  :gsub('{(%w+)}', {
   athletes = athletes and
    ('&nbsp;<span style="font-size:90%;">(' .. athletes .. ')</span>') or
    '',
   flag = countryAlias(parms),
   games = games,
   name = fullName,
   dispName = dispName,
  }))
end

local function flagXYZ(frame)
 -- Implement {{flagIOC2}} and its variants which previously called this module three times.
 -- Returns one of four possible outputs:
 -- from flagIOC2:   <flag> <country link> <athletes>, with the third value optional
 -- from flagIOC2team:  <flag> <country link> <country alias>
 -- from flagIOC2athlete: <flag> <athlete(s)> <country alias/link>
 -- from flagIOC2medalist: <athlete(s)><br><flag> <country link>
 local args = frame:getParent().args
 local dispType = stripToNil(frame.args['type'])
 local code=''
 local games=''
 local athletes=''
 if dispType == 'athlete-O' then
  -- Implement [[Template:FlagIOCathlete]].
  dispType = 'athlete'
  args[3] = (args[3] or '') .. ' Olympics'
 end
 if dispType == 'name' or dispType == 'team' then
  code = stripToNil(args[1]) or error('Parameter 1 should be a country code')
  games = stripToNil(args[2]) or error('Parameter 2 should be a competition name')
  athletes = stripToNil(args[3])
 elseif dispType == 'athlete' or dispType == 'medalist' then
  athletes = stripToNil(args[1]) or error('Parameter 1 should be the name(s) of the athlete(s)')
  code = stripToNil(args[2]) or error('Parameter 2 should be a country code')
  games = stripToNil(args[3]) or error('Parameter 3 should be a competition name')
 end
 
 local parms = {
  alias = code,
  fullName = games,
  year = games:match('^%d+'),
  games = games:gsub('^%d+ ?', ''),
 }
 local fullName = countryAlias(parms)
 parms.flag = true
 local dispName = stripToNil(args.name)
 if fullName == 'ROC' then
  fullName = 'Russian Olympic Committee athletes'
  dispName = 'ROC'
  if dispType == 'team' then dispType = 'name' end
 end
 
 if dispType == 'name' then
  return (('[[File:{flag}|22x20px|border|alt=|link=]]&nbsp;[[{name} at the {games}|{dispName}]]{athletes}')
   :gsub('{(%w+)}', {
    athletes = athletes and
     ('&nbsp;<span style="font-size:90%;">(' .. athletes .. ')</span>') or
     '',
    flag = countryAlias(parms),
    games = games,
    name = fullName,
    dispName = dispName or fullName,
   }))
 elseif dispType == 'team' then
  return (('[[File:{flag}|22x20px|border|alt=|link=]]&nbsp;[[{name} at the {games}|{dispName}]]{alias}')
   :gsub('{(%w+)}', {
    alias = ('&nbsp;<span style="font-size:90%;">(' .. code .. ')</span>'),
    flag = countryAlias(parms),
    games = games,
    name = fullName,
    dispName = dispName or fullName,
   }))
 elseif dispType == 'athlete' then
  return (('[[File:{flag}|22x20px|border|alt=|link=]]&nbsp;{athletes}&nbsp;<span style="font-size:90%;">([[{name} at the {games}|{dispName}]])</span>')
   :gsub('{(%w+)}', {
    athletes = athletes,
    flag = countryAlias(parms),
    games = games,
    name = fullName,
    dispName = code,
   }))
 elseif dispType == 'medalist' then
  return (('{athletes}<br>[[File:{flag}|23x15px|border|alt=|link=]]&nbsp;[[{name} at the {games}|{dispName}]]')
   :gsub('{(%w+)}', {
    athletes = athletes,
    flag = countryAlias(parms),
    games = games,
    name = fullName,
    dispName = dispName or fullName,
   }))
 end
end
local function main(frame)
 return countryAlias(frame.args)
end

return {
 flagIOC = flagIOC,
 flagXYZ = flagXYZ,
 main = main,
}

Retrieved from "https://en.wikipedia.org/w/index.php?title=Module:Country_alias/sandbox&oldid=1137988843"

Category: 
Module sandboxes
 



This page was last edited on 7 February 2023, at 12:27 (UTC).

Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



Privacy policy

About Wikipedia

Disclaimers

Contact Wikipedia

Code of Conduct

Developers

Statistics

Cookie statement

Mobile view



Wikimedia Foundation
Powered by MediaWiki