<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Module%3ACountry_alias</id>
	<title>Module:Country alias - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Module%3ACountry_alias"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:Country_alias&amp;action=history"/>
	<updated>2026-06-28T12:52:38Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Module:Country_alias&amp;diff=2863345&amp;oldid=prev</id>
		<title>imported&gt;A2569875：​同步已由Shizhao執行修訂，見Special:Diff/85842337</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:Country_alias&amp;diff=2863345&amp;oldid=prev"/>
		<updated>2025-01-28T06:34:12Z</updated>

		<summary type="html">&lt;p&gt;同步&lt;a href=&quot;/wiki/Special:%E5%B7%AE%E5%BC%82/85840831&quot; title=&quot;Special:差异/85840831&quot;&gt;已由&lt;/a&gt;Shizhao&lt;a href=&quot;/wiki/Special:%E5%B7%AE%E5%BC%82/85840827&quot; title=&quot;Special:差异/85840827&quot;&gt;執行修訂&lt;/a&gt;，見&lt;a href=&quot;/wiki/Special:%E5%B7%AE%E5%BC%82/85842337&quot; title=&quot;Special:差异/85842337&quot;&gt;Special:Diff/85842337&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- 该模块根据国家和地区代码、年份和赛事返回相应的国家名称或旗帜&lt;br /&gt;
-- 国家和地区代码基于国际奥委会、英联邦和国际游泳联合会的代码&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
以下国家和地区代码为一个代码根据赛事或年份的不同，可以代表两个或以上不同的国家/地区：&lt;br /&gt;
    ANG（ANG在其他赛事代表安哥拉，在英联邦运动会代表安圭拉，该情况通过加入ANG_CGF进行处理）&lt;br /&gt;
    COK（COK在1968年时代表刚果金沙萨，之后的年份代表库克群岛）&lt;br /&gt;
    ROC（1976年之前代表“中华民国”，在俄罗斯于2020年底被裁定两年内禁止以国家名义参赛后，国际奥委会宣布该国会以“俄罗斯奥林匹克委员会”的名义参加2020年东京奥运和2022年北京冬奥）&lt;br /&gt;
&lt;br /&gt;
以下国家和地区代码为同一个代码根据赛事或年份的不同，拥有不同的旗帜/名称：&lt;br /&gt;
	香港（Hong Kong）                        									 HKG、HKG_CGF（香港在1997年7月1日后以中国香港的名义参赛，同时不再参加英联邦运动会）&lt;br /&gt;
	澳门（Macau）																 MAC、MAC_1999（澳门在1999年12月回归（当时距离年底仅有数日，期间应无主要的综合性赛事），2000年开始以中国澳门名义参赛）&lt;br /&gt;
    个人/独立奥林匹克运动员（Individual/Independent Olympic Athlete）	         IOA、IOA_2000（IOA在2000年时为个人奥林匹克运动员，2012年起为独立奥林匹克运动员）&lt;br /&gt;
    个人/独立残奥/帕运运动员（Individual/Independent Paralympic Athlete）	     IPA、IPA_2000（IPA在2000年时为个人残奥/帕运运动员，2016年起为独立残奥/帕运运动员）&lt;br /&gt;
    斯威士兰（Swaziland/Eswatini）                      						 SWZ、SWZ_YO2018（斯威士兰在2018年英联邦运动会后国名改为“Eswatini”，台湾方面跟进将该国国名翻译为“史瓦帝尼”）&lt;br /&gt;
    马其顿（Macedonia/North Macedonia）											 MKD、MKD_2018（马其顿在2019年更改国名为北马其顿）&lt;br /&gt;
&lt;br /&gt;
以下国家和地区代码为同一国家和地区视乎年份或赛事的不同使用两个或多个不同的代码：&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;
    Netherlands                      HOL, NED&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;
    Saudi Arabia                     KSA, SAU&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 linksuffix = {&lt;br /&gt;
	[&amp;#039;zh&amp;#039;] = &amp;quot;代表团&amp;quot;,&lt;br /&gt;
	[&amp;#039;zh-hans&amp;#039;] = &amp;quot;代表团&amp;quot;,&lt;br /&gt;
	[&amp;#039;zh-cn&amp;#039;] = &amp;quot;代表团&amp;quot;,&lt;br /&gt;
	[&amp;#039;zh-sg&amp;#039;] = &amp;quot;代表团&amp;quot;,&lt;br /&gt;
	[&amp;#039;zh-my&amp;#039;] = &amp;quot;代表团&amp;quot;,&lt;br /&gt;
	[&amp;#039;zh-hant&amp;#039;] = &amp;quot;代表團&amp;quot;,&lt;br /&gt;
	[&amp;#039;zh-hk&amp;#039;] = &amp;quot;代表團&amp;quot;,&lt;br /&gt;
	[&amp;#039;zh-mo&amp;#039;] = &amp;quot;代表團&amp;quot;,&lt;br /&gt;
	[&amp;#039;zh-tw&amp;#039;] = &amp;quot;代表團&amp;quot;,&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;
		games = stripToNil(fullName:gsub(&amp;#039;^%d+年?&amp;#039;, &amp;#039;&amp;#039;))&lt;br /&gt;
	end&lt;br /&gt;
	if alias == &amp;#039;ANG&amp;#039; then&lt;br /&gt;
		if games == &amp;#039;英联邦运动会&amp;#039; or games == &amp;#039;英聯邦運動會&amp;#039; or games == &amp;#039;大英國協運動會&amp;#039; or games == &amp;#039;共和联邦运动会&amp;#039; 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;亚洲室内暨武艺运动会&amp;#039; or games == &amp;#039;亞洲室內暨武藝運動會&amp;#039; then&lt;br /&gt;
			alias = &amp;#039;ART_AIMAG&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == &amp;#039;HKG&amp;#039; then&lt;br /&gt;
		if games == &amp;#039;英联邦运动会&amp;#039; or games == &amp;#039;英聯邦運動會&amp;#039; or games == &amp;#039;大英國協運動會&amp;#039; or games == &amp;#039;共和联邦运动会&amp;#039; &lt;br /&gt;
		or games == &amp;#039;大英帝國運動會&amp;#039; or games == &amp;#039;大英帝国运动会&amp;#039; or games == &amp;#039;大英帝國和聯邦運動會&amp;#039; or games == &amp;#039;大英帝国和联邦运动会&amp;#039; &lt;br /&gt;
		or games == &amp;#039;不列顛聯邦運動會&amp;#039; or games == &amp;#039;不列颠联邦运动会&amp;#039; or games == &amp;#039;不列顛英聯邦運動會&amp;#039; or games == &amp;#039;不列颠英联邦运动会&amp;#039; then&lt;br /&gt;
			alias = &amp;#039;HKG_CGF&amp;#039;&lt;br /&gt;
		elseif (year == 1997 and (games == &amp;#039;东亚运动会&amp;#039; or games == &amp;#039;東亞運動會&amp;#039;)) or (fullName == &amp;#039;1997年东亚运动会&amp;#039; or fullName == &amp;#039;1997年東亞運動會&amp;#039;) then&lt;br /&gt;
			alias = &amp;#039;HKG_CGF&amp;#039;&lt;br /&gt;
		elseif year and year &amp;lt; 1997 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;
		elseif year == 2016 and (games == &amp;#039;亚洲沙滩运动会&amp;#039; or games == &amp;#039;亞洲沙灘運動會&amp;#039;) then&lt;br /&gt;
			alias = &amp;#039;IOA_ABG2016&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == &amp;#039;IPA&amp;#039; then&lt;br /&gt;
		if year == 2000 then&lt;br /&gt;
			alias = &amp;#039;IPA_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;MAC&amp;#039; then&lt;br /&gt;
		if year and year &amp;lt;= 1999 then&lt;br /&gt;
			alias = &amp;#039;MAC_1999&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 == nil or (year &amp;gt;= 2018 and (fullName ~= &amp;#039;2018年英联邦运动会&amp;#039; and fullName ~= &amp;#039;2018年英聯邦運動會&amp;#039; and fullName ~= &amp;#039;2018年大英國協運動會&amp;#039; and fullName ~= &amp;#039;2018年共和联邦运动会&amp;#039;)) then&lt;br /&gt;
				alias = &amp;#039;SWZ_YO2018&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		elseif year == 2018 and (games == &amp;#039;英联邦运动会&amp;#039; or games == &amp;#039;英聯邦運動會&amp;#039; or games == &amp;#039;大英國協運動會&amp;#039; or games == &amp;#039;共和联邦运动会&amp;#039;) then&lt;br /&gt;
			alias = &amp;#039;SWZ&amp;#039;&lt;br /&gt;
		elseif year == nil or year &amp;gt;= 2018 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;lt;= 2018 then&lt;br /&gt;
			alias = &amp;#039;MKD_2018&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == &amp;#039;SAM&amp;#039; then&lt;br /&gt;
		if year and year &amp;lt;= 1996 then&lt;br /&gt;
			alias = &amp;#039;WSM&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	-- 1992年中华台北残奥代表团使用五环版，1996年至2004年使用1994年至2004年版残奥旗帜，2008年开始使用现在的版本&lt;br /&gt;
	elseif alias == &amp;#039;TPE&amp;#039; then&lt;br /&gt;
		if games == &amp;#039;亚洲残疾人运动会&amp;#039; or games == &amp;#039;亞洲殘疾人運動會&amp;#039; or games == &amp;#039;亞洲帕拉運動會&amp;#039; &lt;br /&gt;
		or games == &amp;#039;亚洲青年残疾人运动会&amp;#039; or games == &amp;#039;亞洲青年殘疾人運動會&amp;#039; or games == &amp;#039;亞洲青年帕拉運動會&amp;#039; &lt;br /&gt;
		or games == &amp;#039;夏季残疾人奥林匹克运动会&amp;#039; or games == &amp;#039;夏季殘疾人奧林匹克運動會&amp;#039; or games == &amp;#039;夏季帕拉林匹克運動會&amp;#039;&lt;br /&gt;
		or games == &amp;#039;残疾人奥林匹克运动会&amp;#039; or games == &amp;#039;殘疾人奧林匹克運動會&amp;#039; or games == &amp;#039;帕拉林匹克運動會&amp;#039; then&lt;br /&gt;
			alias = &amp;#039;TPE_PAR&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == &amp;#039;COK&amp;#039; then&lt;br /&gt;
		if year and year &amp;lt;= 1973 then&lt;br /&gt;
			alias = &amp;#039;COK_1968&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == &amp;#039;GHA&amp;#039; then&lt;br /&gt;
		if year and year &amp;lt;= 1956 then&lt;br /&gt;
			alias = &amp;#039;GCO&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; then&lt;br /&gt;
		if year and year &amp;gt;= 2020 and year &amp;lt;= 2022 then&lt;br /&gt;
			alias = &amp;#039;ROC_RUS&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;
	local games = stripToNil(args.games)&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;
		games = stripToNil(fullName:gsub(&amp;#039;^%d+年?&amp;#039;, &amp;#039;&amp;#039;))&lt;br /&gt;
	end&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[1] then&lt;br /&gt;
				return gdata[1]&lt;br /&gt;
			end&lt;br /&gt;
			if gdata[year] then&lt;br /&gt;
				if type(gdata[year]) == &amp;#039;string&amp;#039; then&lt;br /&gt;
					return gdata[year]&lt;br /&gt;
				end&lt;br /&gt;
				return gdata[year][1]&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 function getName(args, country, frame)&lt;br /&gt;
	local lan = stripToNil(args.lan)&lt;br /&gt;
	if lan == nil then&lt;br /&gt;
		lan = frame:callParserFunction{ name = &amp;#039;int&amp;#039;, args = {&amp;#039;Conversionname&amp;#039;} }&lt;br /&gt;
	end&lt;br /&gt;
	if lan == &amp;#039;zh-my&amp;#039; then&lt;br /&gt;
		lan = &amp;#039;zh-sg&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local temp = linksuffix[lan]&lt;br /&gt;
	if temp == nil then&lt;br /&gt;
		lan = &amp;#039;zh&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if country[lan] == nil then&lt;br /&gt;
		if lan == &amp;#039;zh-hans&amp;#039; or lan == &amp;#039;zh-hant&amp;#039; then&lt;br /&gt;
			lan = &amp;#039;zh&amp;#039;&lt;br /&gt;
		elseif lan == &amp;#039;zh-cn&amp;#039; or lan == &amp;#039;zh-sg&amp;#039; then&lt;br /&gt;
			if country[&amp;#039;zh-hans&amp;#039;] ~= nil then&lt;br /&gt;
				lan = &amp;#039;zh-hans&amp;#039;&lt;br /&gt;
			else&lt;br /&gt;
				lan = &amp;#039;zh&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		elseif lan == &amp;#039;zh-tw&amp;#039; or lan == &amp;#039;zh-hk&amp;#039; or lan == &amp;#039;zh-mo&amp;#039; then&lt;br /&gt;
			if country[&amp;#039;zh-hant&amp;#039;] ~= nil then&lt;br /&gt;
				lan = &amp;#039;zh-hant&amp;#039;&lt;br /&gt;
			else&lt;br /&gt;
				lan = &amp;#039;zh&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return country[lan]&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 getGames(games, lan)&lt;br /&gt;
	if lan == nil or lan == &amp;#039;zh-hans&amp;#039; or lan == &amp;#039;zh-cn&amp;#039; then&lt;br /&gt;
		lan = &amp;#039;zh&amp;#039;&lt;br /&gt;
	elseif lan == &amp;#039;zh-mo&amp;#039; then&lt;br /&gt;
		lan = &amp;#039;zh-hk&amp;#039;&lt;br /&gt;
	elseif lan == &amp;#039;zh-my&amp;#039; then&lt;br /&gt;
		lan = &amp;#039;zh-sg&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if games == nil then&lt;br /&gt;
		return games&lt;br /&gt;
	end&lt;br /&gt;
	if data.event[lan][games] == nil then&lt;br /&gt;
		if lan == &amp;#039;zh&amp;#039; or lan == &amp;#039;zh-hant&amp;#039; then&lt;br /&gt;
			games = games&lt;br /&gt;
		elseif lan == &amp;#039;zh-cn&amp;#039; or lan == &amp;#039;zh-sg&amp;#039; then&lt;br /&gt;
			if data.event[&amp;#039;zh&amp;#039;][games] == nil then&lt;br /&gt;
				games = games&lt;br /&gt;
			else&lt;br /&gt;
				games = data.event[&amp;#039;zh&amp;#039;][games]&lt;br /&gt;
			end&lt;br /&gt;
		elseif lan == &amp;#039;zh-hk&amp;#039; or lan == &amp;#039;zh-tw&amp;#039; then&lt;br /&gt;
			if data.event[&amp;#039;zh-hant&amp;#039;][games] == nil then&lt;br /&gt;
				games = games&lt;br /&gt;
			else&lt;br /&gt;
				games = data.event[&amp;#039;zh-hant&amp;#039;][games]&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		games = data.event[lan][games]&lt;br /&gt;
	end&lt;br /&gt;
	return games&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function countryAlias(args, frame)&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 getName(args, country, frame) or quit(&amp;#039;No name defined for &amp;#039; .. alias)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- 调用该模板前必须先确保args.lan参数不为空&lt;br /&gt;
local function countryAlias2(args, frame)&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;
	-- 当country.single不为空的时候，需要临时改变args.lan的值，在调用完getName后需要把args.lan的值改回来，以免影响下一次调用&lt;br /&gt;
	local original_lan = args.lan&lt;br /&gt;
	local new_lan = country.single or args.lan&lt;br /&gt;
	args.lan = new_lan&lt;br /&gt;
	local name = getName(args, country, frame) or quit(&amp;#039;No name defined for &amp;#039; .. alias)&lt;br /&gt;
	args.lan = original_lan&lt;br /&gt;
	return {name, new_lan}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getSingle(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;
	if not country then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	return country.single&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getAllName(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;
	if not country then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local strZhhans = country[&amp;#039;zh&amp;#039;]&lt;br /&gt;
	if country[&amp;#039;zh-hans&amp;#039;] then&lt;br /&gt;
		strZhhans = country[&amp;#039;zh-hans&amp;#039;]&lt;br /&gt;
	end&lt;br /&gt;
	local strZhhant = country[&amp;#039;zh&amp;#039;]&lt;br /&gt;
	if country[&amp;#039;zh-hant&amp;#039;] then&lt;br /&gt;
		strZhhant = country[&amp;#039;zh-hant&amp;#039;]&lt;br /&gt;
	end&lt;br /&gt;
	local strStart = &amp;#039;-{zh-hans:&amp;#039; .. strZhhans .. &amp;#039;; zh-hant:&amp;#039; .. strZhhant .. &amp;#039;;&amp;#039;&lt;br /&gt;
	if country[&amp;#039;zh-cn&amp;#039;] then&lt;br /&gt;
		strStart = strStart .. &amp;#039; zh-cn:&amp;#039; .. country[&amp;#039;zh-cn&amp;#039;] .. &amp;#039;;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if country[&amp;#039;zh-sg&amp;#039;] then&lt;br /&gt;
		strStart = strStart .. &amp;#039; zh-sg:&amp;#039; .. country[&amp;#039;zh-sg&amp;#039;] .. &amp;#039;; zh-my:&amp;#039; .. country[&amp;#039;zh-sg&amp;#039;] .. &amp;#039;;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if country[&amp;#039;zh-hk&amp;#039;] then&lt;br /&gt;
		strStart = strStart .. &amp;#039; zh-hk:&amp;#039; .. country[&amp;#039;zh-hk&amp;#039;] .. &amp;#039;;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if country[&amp;#039;zh-mo&amp;#039;] then&lt;br /&gt;
		strStart = strStart .. &amp;#039; zh-mo:&amp;#039; .. country[&amp;#039;zh-mo&amp;#039;] .. &amp;#039;;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if country[&amp;#039;zh-tw&amp;#039;] then&lt;br /&gt;
		strStart = strStart .. &amp;#039; zh-tw:&amp;#039; .. country[&amp;#039;zh-tw&amp;#039;] .. &amp;#039;;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local strEnd = &amp;#039;}-&amp;#039;&lt;br /&gt;
	return strStart .. strEnd&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function flagIOC(frame)&lt;br /&gt;
	-- Implement {{flagIOC}} and {{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.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 athletes = stripToNil(args[3])&lt;br /&gt;
	local lan = stripToNil(args[4])&lt;br /&gt;
	local altname = stripToNil(args.name)&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;
	if lan == nil then&lt;br /&gt;
		lan = frame:callParserFunction{ name = &amp;#039;int&amp;#039;, args = {&amp;#039;Conversionname&amp;#039;} }&lt;br /&gt;
	end&lt;br /&gt;
	local temp = linksuffix[lan]&lt;br /&gt;
	if temp == nil then&lt;br /&gt;
		lan = &amp;#039;zh&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local single = getSingle(parms)&lt;br /&gt;
	local lang&lt;br /&gt;
	if single then&lt;br /&gt;
		lang = single&lt;br /&gt;
	else&lt;br /&gt;
		lang = lan&lt;br /&gt;
	end&lt;br /&gt;
	parms.lan = lang&lt;br /&gt;
	local fullName = countryAlias(parms, frame)&lt;br /&gt;
	if altname == nil or altname == &amp;#039;&amp;#039; then&lt;br /&gt;
		if single then&lt;br /&gt;
			altname = getAllName(parms)&lt;br /&gt;
		else&lt;br /&gt;
			altname = fullName&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local 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;
	games = getGames(games, lang)&lt;br /&gt;
	if year then&lt;br /&gt;
		games = year .. &amp;#039;年&amp;#039; .. games&lt;br /&gt;
	end&lt;br /&gt;
	parms.flag = true&lt;br /&gt;
	if yes(args.rt) then&lt;br /&gt;
		return ((&amp;#039;[[{games}{name}{suffix}|{altname}]]&amp;amp;nbsp;[[File:{flag}|22x20px|border|alt=|link=]]&amp;#039;)&lt;br /&gt;
			:gsub(&amp;#039;{(%w+)}&amp;#039;, {&lt;br /&gt;
				flag = countryAlias(parms, frame),&lt;br /&gt;
				games = games,&lt;br /&gt;
				name = fullName,&lt;br /&gt;
				suffix = linksuffix[lang],&lt;br /&gt;
				altname = altname&lt;br /&gt;
			}))&lt;br /&gt;
	else&lt;br /&gt;
		return ((&amp;#039;[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;[[{games}{name}{suffix}|{altname}]]{athletes}&amp;#039;)&lt;br /&gt;
			:gsub(&amp;#039;{(%w+)}&amp;#039;, {&lt;br /&gt;
				athletes = athletes and&lt;br /&gt;
					(&amp;#039;&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, frame),&lt;br /&gt;
				games = games,&lt;br /&gt;
				name = fullName,&lt;br /&gt;
				suffix = linksuffix[lang],&lt;br /&gt;
				altname = altname&lt;br /&gt;
			}))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function flagIOCathlete(frame)&lt;br /&gt;
	-- Implement {{flagIOCathlete}}, {{flagIOCmedalist}}, {{flagIOC2athlete}} and {{flagIOC2medalist}} which previously called this module three times.&lt;br /&gt;
	-- Returns &amp;lt;flag&amp;gt; &amp;lt;athlete/medalist&amp;gt; &amp;lt;country link&amp;gt;&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local athlete = stripToNil(args[1])&lt;br /&gt;
	if athlete == nil then&lt;br /&gt;
		athlete = &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local code = stripToNil(args[2]) or error(&amp;#039;flagIOCathlete/medalist parameter 2 should be a country code&amp;#039;)&lt;br /&gt;
	local games = stripToNil(args[3])&lt;br /&gt;
	local lan = stripToNil(args[4])&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;
	if lan == nil then&lt;br /&gt;
		lan = frame:callParserFunction{ name = &amp;#039;int&amp;#039;, args = {&amp;#039;Conversionname&amp;#039;} }&lt;br /&gt;
	end&lt;br /&gt;
	local temp = linksuffix[lan]&lt;br /&gt;
	if temp == nil then&lt;br /&gt;
		lan = &amp;#039;zh&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local single = getSingle(parms)&lt;br /&gt;
	local lang&lt;br /&gt;
	local altname&lt;br /&gt;
	if single then&lt;br /&gt;
		lang = single&lt;br /&gt;
	else&lt;br /&gt;
		lang = lan&lt;br /&gt;
	end&lt;br /&gt;
	parms.lan = lang&lt;br /&gt;
	local fullName = countryAlias(parms, frame)&lt;br /&gt;
	if single then&lt;br /&gt;
		altname = getAllName(parms)&lt;br /&gt;
	else&lt;br /&gt;
		altname = fullName&lt;br /&gt;
	end&lt;br /&gt;
	local 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;
	games = getGames(games, lang)&lt;br /&gt;
	if year then&lt;br /&gt;
		games = year .. &amp;#039;年&amp;#039; .. games&lt;br /&gt;
	end&lt;br /&gt;
	parms.flag = true&lt;br /&gt;
	if yes(args.medalist) then&lt;br /&gt;
		return ((&amp;#039;{athlete}&amp;lt;br/&amp;gt;[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;[[{games}{name}{suffix}|{altname}]]&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;（{code}）&amp;lt;/span&amp;gt;&amp;#039;)&lt;br /&gt;
			:gsub(&amp;#039;{(%w+)}&amp;#039;, {&lt;br /&gt;
				flag = countryAlias(parms, frame),&lt;br /&gt;
				athlete = athlete,&lt;br /&gt;
				code = code,&lt;br /&gt;
				games = games,&lt;br /&gt;
				name = fullName,&lt;br /&gt;
				suffix = linksuffix[lang],&lt;br /&gt;
				altname = altname&lt;br /&gt;
			}))&lt;br /&gt;
	else&lt;br /&gt;
		return ((&amp;#039;[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;{athlete}&amp;lt;small&amp;gt;（[[{games}{name}{suffix}|{altname}]]）&amp;lt;/small&amp;gt;&amp;#039;)&lt;br /&gt;
			:gsub(&amp;#039;{(%w+)}&amp;#039;, {&lt;br /&gt;
				flag = countryAlias(parms, frame),&lt;br /&gt;
				athlete = athlete,&lt;br /&gt;
				games = games,&lt;br /&gt;
				name = fullName,&lt;br /&gt;
				suffix = linksuffix[lang],&lt;br /&gt;
				altname = altname&lt;br /&gt;
			}))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function main(frame)&lt;br /&gt;
	return countryAlias(frame.args, frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function flagCaption(frame)&lt;br /&gt;
	local args = frame.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;
	-- Return name of flag selected from country data (nil if none defined).&lt;br /&gt;
	local captionsuffix = {&lt;br /&gt;
		[&amp;#039;zh&amp;#039;] = &amp;quot;国旗&amp;quot;,&lt;br /&gt;
		[&amp;#039;zh-hans&amp;#039;] = &amp;quot;国旗&amp;quot;,&lt;br /&gt;
		[&amp;#039;zh-cn&amp;#039;] = &amp;quot;国旗&amp;quot;,&lt;br /&gt;
		[&amp;#039;zh-sg&amp;#039;] = &amp;quot;国旗&amp;quot;,&lt;br /&gt;
		[&amp;#039;zh-my&amp;#039;] = &amp;quot;国旗&amp;quot;,&lt;br /&gt;
		[&amp;#039;zh-hant&amp;#039;] = &amp;quot;國旗&amp;quot;,&lt;br /&gt;
		[&amp;#039;zh-hk&amp;#039;] = &amp;quot;國旗&amp;quot;,&lt;br /&gt;
		[&amp;#039;zh-mo&amp;#039;] = &amp;quot;國旗&amp;quot;,&lt;br /&gt;
		[&amp;#039;zh-tw&amp;#039;] = &amp;quot;國旗&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
	local year = tonumber(args.year)&lt;br /&gt;
	local games = stripToNil(args.games)&lt;br /&gt;
	local fullName = stripToNil(args.fullName)&lt;br /&gt;
	local name = getName(args, country, frame)&lt;br /&gt;
	if fullName then&lt;br /&gt;
		year = tonumber(fullName:match(&amp;#039;^%d+&amp;#039;))  -- ignore args.year&lt;br /&gt;
		games = stripToNil(fullName:gsub(&amp;#039;^%d+年?&amp;#039;, &amp;#039;&amp;#039;))&lt;br /&gt;
	end&lt;br /&gt;
	if games then&lt;br /&gt;
		local gdata = country[games]&lt;br /&gt;
		if gdata then&lt;br /&gt;
			if gdata[2] then&lt;br /&gt;
				return gdata[2]&lt;br /&gt;
			end&lt;br /&gt;
			if gdata[year] then&lt;br /&gt;
				if gdata[year][2] then&lt;br /&gt;
					return gdata[year][2]&lt;br /&gt;
				end&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;table&amp;#039; and year and year &amp;lt;= item[1] then&lt;br /&gt;
			if item[3] then&lt;br /&gt;
				return item[3]&lt;br /&gt;
			else&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if country.flagname then&lt;br /&gt;
		return country.flagname	&lt;br /&gt;
	end&lt;br /&gt;
	if args.lan == nil then&lt;br /&gt;
		args.lan = frame:callParserFunction{ name = &amp;#039;int&amp;#039;, args = {&amp;#039;Conversionname&amp;#039;} }&lt;br /&gt;
	end&lt;br /&gt;
	local temp = linksuffix[args.lan]&lt;br /&gt;
	if temp == nil then&lt;br /&gt;
		args.lan = &amp;#039;zh&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;quot;[[&amp;quot; .. name .. captionsuffix[args.lan] .. &amp;quot;]]&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- 调用了Module:Ilh判断条目是否存在，注意Module:Ilh提到相关函数需要更好实现&lt;br /&gt;
local ilh = require(&amp;#039;Module:Ilh&amp;#039;)&lt;br /&gt;
local function overviewlink(frame)&lt;br /&gt;
	-- 以后这个可以定义一个linkleft，linkright&lt;br /&gt;
	-- Returns &amp;lt;country link&amp;gt; &lt;br /&gt;
	local args = frame.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;
	games = games:gsub(&amp;#039;^%d+年?&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	local parms = {&lt;br /&gt;
		alias = code,&lt;br /&gt;
		fullName = games,&lt;br /&gt;
	}&lt;br /&gt;
	local overview&lt;br /&gt;
	for key, value in pairs(linksuffix) do&lt;br /&gt;
		parms.lan = key&lt;br /&gt;
		local fullName = countryAlias(parms, frame)&lt;br /&gt;
		local gameName = getGames(games, key)&lt;br /&gt;
		local link = gameName .. fullName .. value&lt;br /&gt;
		-- 使用{{#ifexist}}而不是Lua的exists来兼容MediaWiki的自动简繁重定向&lt;br /&gt;
		--Module:Ilh.isExist已被刪除 见[[Special:PermaLink/85841862#不蓝不绿的绿链问题]]&lt;br /&gt;
		--local isExist = ilh.isExist(link)&lt;br /&gt;
		local isExist = (mw.getCurrentFrame():callParserFunction(&amp;#039;#ifexist&amp;#039;,{link,&amp;#039;true&amp;#039;,&amp;#039;false&amp;#039;})==&amp;#039;true&amp;#039;)&lt;br /&gt;
		if isExist == true then&lt;br /&gt;
			overview = link&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if overview then&lt;br /&gt;
		return &amp;quot;（[[&amp;quot; .. overview .. &amp;quot;|总结]]）&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	flagIOC = flagIOC,&lt;br /&gt;
	flagIOCathlete = flagIOCathlete,&lt;br /&gt;
	flagCaption = flagCaption,&lt;br /&gt;
	overviewlink = overviewlink,&lt;br /&gt;
	main = main,&lt;br /&gt;
	countryAlias2 = countryAlias2,&lt;br /&gt;
	getGames = getGames,&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>imported&gt;A2569875</name></author>
	</entry>
</feed>