<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
	<id>https://fa.wikinoor.ir/w/index.php?action=history&amp;feed=atom&amp;title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86%3AFind_demonym</id>
	<title>پودمان:Find demonym - تاریخچهٔ نسخه‌ها</title>
	<link rel="self" type="application/atom+xml" href="https://fa.wikinoor.ir/w/index.php?action=history&amp;feed=atom&amp;title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86%3AFind_demonym"/>
	<link rel="alternate" type="text/html" href="https://fa.wikinoor.ir/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Find_demonym&amp;action=history"/>
	<updated>2026-06-27T01:52:28Z</updated>
	<subtitle>تاریخچهٔ نسخه‌ها برای این صفحه در ویکی</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://fa.wikinoor.ir/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Find_demonym&amp;diff=629697&amp;oldid=prev</id>
		<title>Wikinoor.ir: ۱ نسخه واردشده</title>
		<link rel="alternate" type="text/html" href="https://fa.wikinoor.ir/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Find_demonym&amp;diff=629697&amp;oldid=prev"/>
		<updated>2023-01-03T19:45:07Z</updated>

		<summary type="html">&lt;p&gt;۱ نسخه واردشده&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fa&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;→ نسخهٔ قدیمی‌تر&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;نسخهٔ ‏۳ ژانویهٔ ۲۰۲۳، ساعت ۲۳:۱۵&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key fawiki:diff::1.12:old-629696:rev-629697 --&gt;
&lt;/table&gt;</summary>
		<author><name>Wikinoor.ir</name></author>
	</entry>
	<entry>
		<id>https://fa.wikinoor.ir/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Find_demonym&amp;diff=629696&amp;oldid=prev</id>
		<title>fa&gt;Le Deluge: Put the Guineans together, and eg recognise Papua New Guinean before Guinean</title>
		<link rel="alternate" type="text/html" href="https://fa.wikinoor.ir/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Find_demonym&amp;diff=629696&amp;oldid=prev"/>
		<updated>2021-03-09T18:30:09Z</updated>

		<summary type="html">&lt;p&gt;Put the Guineans together, and eg recognise Papua New Guinean before Guinean&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[ v1.00&lt;br /&gt;
     Test the string against the list of countries/continents.&lt;br /&gt;
     Return the first word which matches a country/continent name ...&lt;br /&gt;
     unless the &amp;quot;match=&amp;quot; parameter specifies a different match.&lt;br /&gt;
     If there is no match, then return an empty string ... unless&lt;br /&gt;
     the &amp;quot;nomatch&amp;quot; parameter specifies something different&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- config&lt;br /&gt;
local nomatch = &amp;quot;&amp;quot;&lt;br /&gt;
local matchnum = 1&lt;br /&gt;
&lt;br /&gt;
local countryList = {&lt;br /&gt;
	'South African',&lt;br /&gt;
	'African',&lt;br /&gt;
	'Antarctican',&lt;br /&gt;
	'Central Asian',&lt;br /&gt;
	'South Asian',&lt;br /&gt;
	'South East Asian',&lt;br /&gt;
	'Southeast Asian',&lt;br /&gt;
	'Asian',&lt;br /&gt;
	'Caribbean',&lt;br /&gt;
	'Eurasian',&lt;br /&gt;
	'European',&lt;br /&gt;
	'Middle Eastern',&lt;br /&gt;
	'Central American',&lt;br /&gt;
	'North American',&lt;br /&gt;
	'South American',&lt;br /&gt;
	'Afghan',&lt;br /&gt;
	'Albanian',&lt;br /&gt;
	'Algerian',&lt;br /&gt;
	'American Samoan',&lt;br /&gt;
	'American',&lt;br /&gt;
	'Andorran',&lt;br /&gt;
	'Angolan',&lt;br /&gt;
	'Anguillan',&lt;br /&gt;
	'Antarctican',&lt;br /&gt;
	'Antigua and Barbuda',&lt;br /&gt;
	'Argentine',&lt;br /&gt;
	'Armenian',&lt;br /&gt;
	'Aruban',&lt;br /&gt;
	'Australian',&lt;br /&gt;
	'Austrian',&lt;br /&gt;
	'Azerbaijani',&lt;br /&gt;
	'Bahamian',&lt;br /&gt;
	'Bahraini',&lt;br /&gt;
	'Bangladeshi',&lt;br /&gt;
	'Barbadian',&lt;br /&gt;
	'Belarusian',&lt;br /&gt;
	'Belgian',&lt;br /&gt;
	'Belizean',&lt;br /&gt;
	'Beninese',&lt;br /&gt;
	'Bermudian',&lt;br /&gt;
	'Bhutanese',&lt;br /&gt;
	'Bolivian',&lt;br /&gt;
	'Bosnia and Herzegovina',&lt;br /&gt;
	'Botswanan',&lt;br /&gt;
	'Bouvet Island',&lt;br /&gt;
	'Brazilian',&lt;br /&gt;
	'British Indian Ocean Territory',&lt;br /&gt;
	'British Virgin Islands',&lt;br /&gt;
	'British',&lt;br /&gt;
	'English',&lt;br /&gt;
	'Scottish',&lt;br /&gt;
	'Welsh',&lt;br /&gt;
	'Northern Irish',&lt;br /&gt;
	'Bruneian',&lt;br /&gt;
	'Bulgarian',&lt;br /&gt;
	'Burkinabé',&lt;br /&gt;
	'Burmese',&lt;br /&gt;
	'Burundian',&lt;br /&gt;
	'Cambodian',&lt;br /&gt;
	'Cameroonian',&lt;br /&gt;
	'Canadian',&lt;br /&gt;
	'Cape Verdean',&lt;br /&gt;
	'Caymanian Islands',&lt;br /&gt;
	'Caymanian',&lt;br /&gt;
	'Central African',&lt;br /&gt;
	'Chadian',&lt;br /&gt;
	'Chilean',&lt;br /&gt;
	'Chinese',&lt;br /&gt;
	'Christmas Island',&lt;br /&gt;
	'Cocos (Keeling) Islands',&lt;br /&gt;
	'Colombian',&lt;br /&gt;
	'Comorian',&lt;br /&gt;
	'Cook Islands',&lt;br /&gt;
	'Costa Rican',&lt;br /&gt;
	'Croatian',&lt;br /&gt;
	'Cuban',&lt;br /&gt;
	'Cypriot',&lt;br /&gt;
	'Czech',&lt;br /&gt;
	'Danish',&lt;br /&gt;
	'Democratic Republic of the Congo',&lt;br /&gt;
	'Djiboutian',&lt;br /&gt;
	'Dominica',&lt;br /&gt;
	'Dominican Republic',&lt;br /&gt;
	'Dutch',&lt;br /&gt;
	'East Timorese',&lt;br /&gt;
	'Ecuadorian',&lt;br /&gt;
	'Egyptian',&lt;br /&gt;
	'Emirati',&lt;br /&gt;
	'Eritrean',&lt;br /&gt;
	'Estonian',&lt;br /&gt;
	'Ethiopian',&lt;br /&gt;
	'Falkland Islands',&lt;br /&gt;
	'Faroese',&lt;br /&gt;
	'Federated States of Micronesia',&lt;br /&gt;
	'Fijian',&lt;br /&gt;
	'Filipino',&lt;br /&gt;
	'Philippine',&lt;br /&gt;
	'Finnish',&lt;br /&gt;
	'French Polynesian',&lt;br /&gt;
	'French Southern Territories',&lt;br /&gt;
	'French',&lt;br /&gt;
	'Gabonese',&lt;br /&gt;
	'Gambian',&lt;br /&gt;
	'Georgian',&lt;br /&gt;
	'German',&lt;br /&gt;
	'Ghanaian',&lt;br /&gt;
	'Gibraltarian',&lt;br /&gt;
	'Greek',&lt;br /&gt;
	'Greenlandic',&lt;br /&gt;
	'Grenadian',&lt;br /&gt;
	'Guadeloupean',&lt;br /&gt;
	'Guam',&lt;br /&gt;
	'Guatemalan',&lt;br /&gt;
	'Guernsey',&lt;br /&gt;
	'Guianese',&lt;br /&gt;
	'Bissau-Guinean',&lt;br /&gt;
	'Bissau-Guinean',&lt;br /&gt;
	'Papua New Guinean',	&lt;br /&gt;
	'Equatoguinean',	&lt;br /&gt;
	'Guinean',&lt;br /&gt;
	'Guyanese',&lt;br /&gt;
	'Haitian',&lt;br /&gt;
	'Heard Island and McDonald Islands',&lt;br /&gt;
	'Honduran',&lt;br /&gt;
	'Hong Kong',&lt;br /&gt;
	'Hungarian',&lt;br /&gt;
	'Icelandic',&lt;br /&gt;
	'Indian',&lt;br /&gt;
	'Indonesian',&lt;br /&gt;
	'Iranian',&lt;br /&gt;
	'Iraqi',&lt;br /&gt;
	'Irish',&lt;br /&gt;
	'Israeli',&lt;br /&gt;
	'Italian',&lt;br /&gt;
	'Ivorian',&lt;br /&gt;
	'Jamaican',&lt;br /&gt;
	'Japanese',&lt;br /&gt;
	'Jersey',&lt;br /&gt;
	'Jordanian',&lt;br /&gt;
	'Kazakh',&lt;br /&gt;
	'Kenyan',&lt;br /&gt;
	'Kiribati',&lt;br /&gt;
	'Kuwaiti',&lt;br /&gt;
	'Kosovan',&lt;br /&gt;
	'Kosovar',&lt;br /&gt;
	'Kyrgyz',&lt;br /&gt;
	'Lao',&lt;br /&gt;
	'Latvian',&lt;br /&gt;
	'Lebanese',&lt;br /&gt;
	'Lesothan',&lt;br /&gt;
	'Liberian',&lt;br /&gt;
	'Libyan',&lt;br /&gt;
	'Liechtensteiner',&lt;br /&gt;
	'Liechtenstein',&lt;br /&gt;
	'Lithuanian',&lt;br /&gt;
	'Luxembourg',&lt;br /&gt;
	'Macanese',&lt;br /&gt;
	'Macedonian',&lt;br /&gt;
	'Malagasy',&lt;br /&gt;
	'Malawian',&lt;br /&gt;
	'Malaysian',&lt;br /&gt;
	'Maldivian',&lt;br /&gt;
	'Malian',&lt;br /&gt;
	'Maltese',&lt;br /&gt;
	'Manx',&lt;br /&gt;
	'Marshallese',&lt;br /&gt;
	'Martiniquan',&lt;br /&gt;
	'Mauritanian',&lt;br /&gt;
	'Mauritian',&lt;br /&gt;
	'Mayotte',&lt;br /&gt;
	'Mexican',&lt;br /&gt;
	'Moldovan',&lt;br /&gt;
	'Mongolian',&lt;br /&gt;
	'Montenegrin',&lt;br /&gt;
	'Montserratian',&lt;br /&gt;
	'Monégasque',&lt;br /&gt;
	'Moroccan',&lt;br /&gt;
	'Mozambican',&lt;br /&gt;
	'Namibian',&lt;br /&gt;
	'Nauruan',&lt;br /&gt;
	'Nepalese',&lt;br /&gt;
	'Netherlands Antillean',&lt;br /&gt;
	'New Caledonian',&lt;br /&gt;
	'New Caledonia',&lt;br /&gt;
	'New Zealand',&lt;br /&gt;
	'Nicaraguan',&lt;br /&gt;
	'Nigerian',&lt;br /&gt;
	'Nigerien',&lt;br /&gt;
	'Niuean',&lt;br /&gt;
	'Norfolk Island',&lt;br /&gt;
	'North Korean',&lt;br /&gt;
	'Macedonian',&lt;br /&gt;
	'Northern Mariana Islands',&lt;br /&gt;
	'Norwegian',&lt;br /&gt;
	'Omani',&lt;br /&gt;
	'Pakistani',&lt;br /&gt;
	'Palauan',&lt;br /&gt;
	'Palestinian',&lt;br /&gt;
	'Panamanian',&lt;br /&gt;
	'Paraguayan',&lt;br /&gt;
	'Peruvian',&lt;br /&gt;
	'Pitcairn Islands',&lt;br /&gt;
	'Polish',&lt;br /&gt;
	'Portuguese',&lt;br /&gt;
	'Puerto Rican',&lt;br /&gt;
	'Qatari',&lt;br /&gt;
	'Republic of the Congo',&lt;br /&gt;
	'Romanian',&lt;br /&gt;
	'Russian',&lt;br /&gt;
	'Rwandan',&lt;br /&gt;
	'Réunionnais',&lt;br /&gt;
	'Sahrawi',&lt;br /&gt;
	'Saint Barthélemy',&lt;br /&gt;
	'Saint Helenian',&lt;br /&gt;
	'Saint Kitts and Nevis',&lt;br /&gt;
	'Saint Lucian',&lt;br /&gt;
	'Saint Martin',&lt;br /&gt;
	'Saint Pierre and Miquelon',&lt;br /&gt;
	'Saint Vincent and the Grenadines',&lt;br /&gt;
	'Salvadoran',&lt;br /&gt;
	'Sammarinese',&lt;br /&gt;
	'Samoan',&lt;br /&gt;
	'Saudi Arabian',&lt;br /&gt;
	'Senegalese',&lt;br /&gt;
	'Serbian',&lt;br /&gt;
	'Seychellois',&lt;br /&gt;
	'Sierra Leonean',&lt;br /&gt;
	'Singaporean',&lt;br /&gt;
	'Slovak',&lt;br /&gt;
	'Slovenian',&lt;br /&gt;
	'Solomon Islands',&lt;br /&gt;
	'Somalian',&lt;br /&gt;
	'South Georgia and the South Sandwich Islands',&lt;br /&gt;
	'South Korean',&lt;br /&gt;
	'Spanish',&lt;br /&gt;
	'Catalan',&lt;br /&gt;
	'Sri Lankan',&lt;br /&gt;
	'Sudanese',&lt;br /&gt;
	'Surinamese',&lt;br /&gt;
	'Svalbard and Jan Mayen',&lt;br /&gt;
	'Swazi',&lt;br /&gt;
	'Swedish',&lt;br /&gt;
	'Swiss',&lt;br /&gt;
	'Syrian',&lt;br /&gt;
	'São Tomé and Príncipe',&lt;br /&gt;
	'Taiwanese',&lt;br /&gt;
	'Tajik',&lt;br /&gt;
	'Tanzanian',&lt;br /&gt;
	'Thai',&lt;br /&gt;
	'Togolese',&lt;br /&gt;
	'Tokelauan',&lt;br /&gt;
	'Tongan',&lt;br /&gt;
	'Trinidad and Tobago',&lt;br /&gt;
	'Tunisian',&lt;br /&gt;
	'Turkish',&lt;br /&gt;
	'Turkmen',&lt;br /&gt;
	'Turks and Caicos Islands',&lt;br /&gt;
	'Tuvaluan',&lt;br /&gt;
	'Ugandan',&lt;br /&gt;
	'Ukrainian',&lt;br /&gt;
	'United States Minor Outlying Islands',&lt;br /&gt;
	'United States Virgin Islands',&lt;br /&gt;
	'Uruguayan',&lt;br /&gt;
	'Uzbek',&lt;br /&gt;
	'Vanuatuan',&lt;br /&gt;
	'Vatican City',&lt;br /&gt;
	'Venezuelan',&lt;br /&gt;
	'Vietnamese',&lt;br /&gt;
	'Wallis and Futuna',&lt;br /&gt;
	'Yemeni',&lt;br /&gt;
	'Zambian',&lt;br /&gt;
	'Zimbabwean',&lt;br /&gt;
	'Åland',&lt;br /&gt;
	'Find demonym/testcases'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- returns the name of a country demonym that is found in the string&lt;br /&gt;
-- ... or an empty string if there is no match&lt;br /&gt;
function findcountryinstring(str)&lt;br /&gt;
&lt;br /&gt;
	nMatches = 0&lt;br /&gt;
	myMatches ={}&lt;br /&gt;
	str=&amp;quot; &amp;quot; .. str:gsub(&amp;quot;^%s*(.-)%s*$&amp;quot;, &amp;quot;%1&amp;quot;) .. &amp;quot; &amp;quot;&lt;br /&gt;
&lt;br /&gt;
		-- check agaist each country&lt;br /&gt;
		-- if there is a match, then return that country&lt;br /&gt;
		for i, thiscountry in ipairs(countryList) do&lt;br /&gt;
			if mw.ustring.find(str, thiscountry) then&lt;br /&gt;
				nMatches = nMatches + 1&lt;br /&gt;
				myMatches[nMatches] = thiscountry&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	if (nMatches == 0) then&lt;br /&gt;
		-- none of the title words matches a whole country&lt;br /&gt;
		return nomatch&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if ((matchnum &amp;gt;= 1) and (matchnum &amp;lt;= nMatches)) then&lt;br /&gt;
		return myMatches[matchnum]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if (matchnum &amp;lt; 0) then&lt;br /&gt;
		matchnum = matchnum + 1 -- so that -1 is the last match etc&lt;br /&gt;
		if ((matchnum + nMatches) &amp;gt;= 1) then&lt;br /&gt;
			return myMatches[matchnum + nMatches]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- if we get here, we have not found a match at the position specified by &amp;quot;matchnum&amp;quot;&lt;br /&gt;
	return nomatch&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	if (args['nomatch'] ~= nil) then&lt;br /&gt;
		nomatch = args['nomatch']&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- by default, we return the first match&lt;br /&gt;
	-- but the optional &amp;quot;C&amp;quot; paarmeter sets the &amp;quot;matchnum&amp;quot; variable, which&lt;br /&gt;
	-- * for a positive matchnum &amp;quot;n&amp;quot;, returns the nth match if it exists&lt;br /&gt;
	-- * for a positive matchnum &amp;quot;n&amp;quot;, returns (if it exists) the nth match&lt;br /&gt;
	--   counting backwards from the end.&lt;br /&gt;
	--   So &amp;quot;match=-1&amp;quot; returns the last match&lt;br /&gt;
	--   and &amp;quot;match=-3&amp;quot; returns the 3rd-last match&lt;br /&gt;
	if (args['match'] ~= nil) then&lt;br /&gt;
		matchnum = tonumber(args['match'])&lt;br /&gt;
		if ((matchnum == nil) or (matchnum == 0)) then&lt;br /&gt;
			matchnum = 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- by default, we use the current page&lt;br /&gt;
	-- but if the &amp;quot;string=&amp;quot; parameters is supplied, we use that&lt;br /&gt;
	-- so we try the parameter first&lt;br /&gt;
	thispagename = nil&lt;br /&gt;
	if ((args['string'] ~= nil) and (args['string'] ~= &amp;quot;&amp;quot;)) then&lt;br /&gt;
		-- we have a non-empty &amp;quot;string&amp;quot; parameter, so we use it&lt;br /&gt;
		thisstring = args['string']&lt;br /&gt;
	else&lt;br /&gt;
		-- get the page title&lt;br /&gt;
		thispage = mw.title.getCurrentTitle()&lt;br /&gt;
		thisstring = thispage.text;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- now check the pagename to try to find a country&lt;br /&gt;
	result = findcountryinstring(thisstring)&lt;br /&gt;
	if (result == &amp;quot;&amp;quot;) then&lt;br /&gt;
		return nomatch&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>fa&gt;Le Deluge</name></author>
	</entry>
</feed>