<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfobox_language</id>
	<title>Module:Infobox language - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfobox_language"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Infobox_language&amp;action=history"/>
	<updated>2026-08-02T20:38:31Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Infobox_language&amp;diff=136936&amp;oldid=prev</id>
		<title>imported&gt;Animal lover 666 at 21:25, 8 October 2022</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Infobox_language&amp;diff=136936&amp;oldid=prev"/>
		<updated>2022-10-08T21:25:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p;&lt;br /&gt;
&lt;br /&gt;
---Maximum number version of Ethnologue for which we have a {{Ethnologue##}} template&lt;br /&gt;
local maxEthnologueVersion=25&lt;br /&gt;
&lt;br /&gt;
function p.ref(frame)&lt;br /&gt;
	args=frame.args or frame:getParent().args&lt;br /&gt;
	return generateRef(frame,args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function generateRef(frame,args)&lt;br /&gt;
	local first=string.tolower(args[1])&lt;br /&gt;
	if first==&amp;quot;elp&amp;quot; then&lt;br /&gt;
		return frame:preprocess(&amp;quot;&amp;lt;ref name=ELP/&amp;gt;&amp;quot;)&lt;br /&gt;
	elseif first==&amp;quot;aiatsis&amp;quot; then&lt;br /&gt;
		return frame:preprocess(&amp;quot;&amp;lt;ref name=AIATSIS/&amp;gt;&amp;quot;)&lt;br /&gt;
	elseif first==&amp;quot;guthrie&amp;quot; then&lt;br /&gt;
		return frame:preprocess(&amp;quot;&amp;lt;ref name=Guthrie/&amp;gt;&amp;quot;)&lt;br /&gt;
	elseif first==&amp;quot;ne2007&amp;quot; then&lt;br /&gt;
		return frame:extensionTag(&amp;quot;ref&amp;quot;,&lt;br /&gt;
			&amp;quot;Mikael Parkvall, \&amp;quot;Världens 100 största språk 2007\&amp;quot; (The World&amp;#039;s 100 Largest Languages in 2007), in &amp;#039;&amp;#039;[[Nationalencyklopedin]]&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
    		{name=&amp;quot;NE100&amp;quot;})&lt;br /&gt;
    elseif first==&amp;quot;ne2010&amp;quot; then&lt;br /&gt;
		return frame:extensionTag(&amp;quot;ref&amp;quot;,&lt;br /&gt;
			&amp;quot;\&amp;quot;Världens 100 största språk 2010\&amp;quot; (The World&amp;#039;s 100 Largest Languages in 2010), in &amp;#039;&amp;#039;[[Nationalencyklopedin]]&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
    		{name=&amp;quot;NE100_2&amp;quot;})&lt;br /&gt;
    elseif first==&amp;quot;linglist&amp;quot; then&lt;br /&gt;
    	local refName=maskBlank(params[&amp;quot;refname&amp;quot;],nonil(params[&amp;quot;name&amp;quot;]))&lt;br /&gt;
    	local iso3=nonil(params[&amp;quot;iso3&amp;quot;])&lt;br /&gt;
    	return frame:extensionTag(&amp;quot;ref&amp;quot;,&lt;br /&gt;
    		&amp;quot;[http://multitree.org/codes/&amp;quot;..iso3..&amp;quot; &amp;quot;..refName..&amp;quot;] at &amp;#039;&amp;#039;[[MultiTree]]&amp;#039;&amp;#039; on [[the Linguist List]]&amp;quot;,&lt;br /&gt;
    		{name=&amp;quot;linglist&amp;quot;})&lt;br /&gt;
    elseif string.sub(first,1,1)==&amp;quot;e&amp;quot; and #first==3 then&lt;br /&gt;
    	ethnologueVer=tonumber(string.sub(first,2,-1))&lt;br /&gt;
    	if ethnologueVer then&lt;br /&gt;
    		if ethnologueVer&amp;gt;maxEthnologueVersion then&lt;br /&gt;
    			return &amp;quot;&amp;lt;span class=\&amp;quot;error\&amp;quot;&amp;gt;[[Template:Ethnologue&amp;quot;&lt;br /&gt;
    					..ethnologueVer..&amp;quot;]] does not exist&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
    		else&lt;br /&gt;
    			local iso3=nonil(params[&amp;quot;iso3&amp;quot;])&lt;br /&gt;
    			local refName=maskBlank(params[&amp;quot;refname&amp;quot;],nonil(params[&amp;quot;name&amp;quot;]))&lt;br /&gt;
    			local results={}&lt;br /&gt;
    			local ethnologueParams={iso3,refName}&lt;br /&gt;
    			&lt;br /&gt;
    			if(iso3~=&amp;quot;&amp;quot;) then&lt;br /&gt;
    				table.insert(frame:expandTemplate&lt;br /&gt;
    					{name=&amp;quot;Ethnologue&amp;quot;..ethnologueVer,args=ethnologueParams})&lt;br /&gt;
    			end&lt;br /&gt;
    		end&lt;br /&gt;
    	end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local familyColors=require(&amp;quot;Module:Infobox language/family color&amp;quot;)&lt;br /&gt;
local infoboxImage=require(&amp;quot;Module:InfoboxImage&amp;quot;).InfoboxImage&lt;br /&gt;
&lt;br /&gt;
local function nonil(data)&lt;br /&gt;
	if(data==nil) then&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return data&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function maskBlank(data,default)&lt;br /&gt;
	if (data==nil or data==&amp;quot;&amp;quot;) then&lt;br /&gt;
		return default&lt;br /&gt;
	else&lt;br /&gt;
		return data&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function nowrap(text)&lt;br /&gt;
	return &amp;quot;&amp;lt;span class=\&amp;quot;nowrap\&amp;quot;&amp;gt;&amp;quot;..text..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function image(params,name)&lt;br /&gt;
	image=nonil(params[name])&lt;br /&gt;
	size=nonil(params[name..&amp;quot;size&amp;quot;])&lt;br /&gt;
	alt=nonil(params[name..&amp;quot;alt&amp;quot;])&lt;br /&gt;
	return InfoboxImage({[&amp;quot;args&amp;quot;]=&lt;br /&gt;
		{&lt;br /&gt;
			[&amp;quot;image&amp;quot;]=image,&lt;br /&gt;
			[&amp;quot;size&amp;quot;]=size,&lt;br /&gt;
			[&amp;quot;sizedefault&amp;quot;]=&amp;quot;200px&amp;quot;,&lt;br /&gt;
			[&amp;quot;alt&amp;quot;]=alt&lt;br /&gt;
		}&lt;br /&gt;
	})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addParam(params, key, value)&lt;br /&gt;
	if value then&lt;br /&gt;
		index=params[1]&lt;br /&gt;
		params[&amp;quot;label&amp;quot;..index]=key&lt;br /&gt;
		params[&amp;quot;data&amp;quot;..index]=value&lt;br /&gt;
		params[1]=index+1&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---main function for Template:Infobox language&lt;br /&gt;
function p.individual(frame)&lt;br /&gt;
	return main(frame,galse)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--main function for Template:Infobox language family&lt;br /&gt;
function p.family(frame)&lt;br /&gt;
	return main(frame,true)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function main(frame,isFamily)&lt;br /&gt;
	local inParams = frame:getParent().args&lt;br /&gt;
	local outParams={1}&lt;br /&gt;
	local cats=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	local familyColor=nonil(inParams[&amp;quot;familycolor&amp;quot;])&lt;br /&gt;
	familyColor=nonil(familyColors[familyColor])&lt;br /&gt;
	local setting=nonil(inParams[&amp;quot;setting&amp;quot;])&lt;br /&gt;
	local creator=nonil(inParams[&amp;quot;creator&amp;quot;])&lt;br /&gt;
	local speakers=nonil(inParams[&amp;quot;speakers&amp;quot;])&lt;br /&gt;
	local isConlang=(setting~=&amp;quot;&amp;quot;) or (creator~=&amp;quot;&amp;quot;) or (familyColor==familyColors[&amp;quot;conlang&amp;quot;])&lt;br /&gt;
	local fontColor=maskBlank(inParams[&amp;quot;fontcolor&amp;quot;],&amp;quot;black&amp;quot;)&lt;br /&gt;
	local name=nonil(inParams[&amp;quot;name&amp;quot;])&lt;br /&gt;
	local date=nonil(inParams[&amp;quot;date&amp;quot;])&lt;br /&gt;
	local ref=nonil(inParams[&amp;quot;ref&amp;quot;])&lt;br /&gt;
	&lt;br /&gt;
	local acceptance=nonil(inParams[&amp;quot;acceptance&amp;quot;])&lt;br /&gt;
	if acceptance~=&amp;quot;&amp;quot; then&lt;br /&gt;
		acceptance=&amp;quot;(&amp;quot;..acceptance..&amp;quot;)&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if isFamily then&lt;br /&gt;
		outParams[&amp;quot;bodystyle&amp;quot;] = &amp;quot;width:&amp;quot;..maskBlank(inParams[&amp;quot;boxsize&amp;quot;],&amp;quot;22em&amp;quot;)&lt;br /&gt;
		local style=&amp;quot;backgroundcolor:&amp;quot;..familyColor&lt;br /&gt;
		outParams[&amp;quot;aboveStyle&amp;quot;]=style&lt;br /&gt;
		outParams[&amp;quot;subheaderstyle&amp;quot; ]=style&lt;br /&gt;
		&lt;br /&gt;
		outParams[&amp;quot;above&amp;quot;]=inParams[&amp;quot;name&amp;quot;]&lt;br /&gt;
		outParams[&amp;quot;subheader&amp;quot;]=nonil(inParams[&amp;quot;altname&amp;quot;])&lt;br /&gt;
		outParams[&amp;quot;subheader2&amp;quot;]=acceptance&lt;br /&gt;
	else&lt;br /&gt;
		outParams[&amp;quot;bodyclass&amp;quot;] = &amp;quot;vevent&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
		local width=inParams[&amp;quot;boxsize&amp;quot;]&lt;br /&gt;
		if width==nil then&lt;br /&gt;
			outParams[&amp;quot;bodystyle&amp;quot;]=&amp;quot;&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			outParams[&amp;quot;bodystyle&amp;quot;]=&amp;quot;width:&amp;quot;..width&lt;br /&gt;
		end&lt;br /&gt;
	&lt;br /&gt;
		local style=&amp;quot;color:&amp;quot;&lt;br /&gt;
		if(isConlang) then&lt;br /&gt;
			style=style..&amp;quot;white&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			style=style..fontColor&lt;br /&gt;
		end&lt;br /&gt;
		style=style..&amp;quot;; background-color: &amp;quot;&lt;br /&gt;
		if isConlang then&lt;br /&gt;
			style=style..&amp;quot;#114057&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			style=style..familyColor&lt;br /&gt;
		end&lt;br /&gt;
		style=style..&amp;quot;;&amp;quot;&lt;br /&gt;
		outParams[&amp;quot;aboveStyle&amp;quot;]=&amp;quot;font-size:125%;&amp;quot;..aboveStyle&lt;br /&gt;
	&lt;br /&gt;
		local above&lt;br /&gt;
		if name~=&amp;quot;&amp;quot; then&lt;br /&gt;
			above=name&lt;br /&gt;
		else&lt;br /&gt;
			above=mw.wikibase.getLabel()&lt;br /&gt;
			if above==&amp;quot;&amp;quot; then&lt;br /&gt;
				above=string.gsub(mw.title.getCurrentTitle().text,&amp;quot;%s+%b()$&amp;quot;,&amp;quot;&amp;quot;,1)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		outParams[&amp;quot;above&amp;quot;]=above&lt;br /&gt;
		outParams[&amp;quot;aboveclass&amp;quot;]=&amp;quot;above&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
		outParams[&amp;quot;subheaderstyle&amp;quot;]=&amp;quot;font-size:110%;&amp;quot;..style&lt;br /&gt;
		outParams[&amp;quot;subheader1&amp;quot;]=nonil(inParams[&amp;quot;altname&amp;quot;])&lt;br /&gt;
		outParams[&amp;quot;subheader2&amp;quot;]=nonil(inParams[&amp;quot;nativename&amp;quot;])&lt;br /&gt;
	&lt;br /&gt;
		outParams[&amp;quot;subheader3&amp;quot;]=acceptance&lt;br /&gt;
	&lt;br /&gt;
		outParams[&amp;quot;image&amp;quot;]=image(inParams,&amp;quot;image&amp;quot;)&lt;br /&gt;
		outParams[&amp;quot;captionstyle&amp;quot;] = &amp;quot;padding:0.35em 0.35em 0.25em;line-height:1.25em;&amp;quot;&lt;br /&gt;
		outParams[&amp;quot;caption&amp;quot;]=nonil(inParams[&amp;quot;imagecaption&amp;quot;])&lt;br /&gt;
	&lt;br /&gt;
		outParams[&amp;quot;headerstyle&amp;quot;]=style&lt;br /&gt;
	&lt;br /&gt;
		--to ensure gap between any long/nonwrapped label and subsequent data on same line&lt;br /&gt;
		outParams[&amp;quot;labelstyle&amp;quot;]=&amp;quot;white-space:nowrap;padding-right:0.65em&amp;quot;&lt;br /&gt;
		outParams[&amp;quot;datastyle&amp;quot;]=&amp;quot;line-height:1.3em;&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		addParam(outParams,&amp;quot;Pronunciation&amp;quot;,inParams[&amp;quot;pronunciation&amp;quot;])&lt;br /&gt;
		local label2,data2&lt;br /&gt;
		if isConlang then&lt;br /&gt;
			label2=&amp;quot;Created by&amp;quot;&lt;br /&gt;
			data2=maskBlank(inParams[&amp;quot;creator&amp;quot;],&amp;quot;-&amp;quot;)&lt;br /&gt;
		else&lt;br /&gt;
			label2=&amp;quot;Native to&amp;quot;&lt;br /&gt;
			data2=inParams[&amp;quot;state&amp;quot;] or nonil(inParams[&amp;quot;states&amp;quot;])&lt;br /&gt;
		end&lt;br /&gt;
		addParam(outParams,label2,data2)&lt;br /&gt;
		addParam(outParams,&amp;quot;Date&amp;quot;,inParams[&amp;quot;created&amp;quot;])&lt;br /&gt;
	&lt;br /&gt;
		if isConlang then&lt;br /&gt;
			addParam(outParams,&amp;quot;Setting and usage&amp;quot;,inParams[&amp;quot;setting&amp;quot;])&lt;br /&gt;
		else&lt;br /&gt;
			addParam(outParams,&amp;quot;Region&amp;quot;,inParams[&amp;quot;region&amp;quot;])&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	addParam(outParams,&amp;quot;Ethnicity&amp;quot;,inParams[&amp;quot;ethnicity&amp;quot;])&lt;br /&gt;
	if isFamily then&lt;br /&gt;
		addParam(outParams,&amp;quot;Geographic&amp;lt;br&amp;gt;distribution&amp;quot;,maskBlank(inParams[&amp;quot;region&amp;quot;],&amp;quot;-&amp;quot;))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local extinct=nonil(inParams[&amp;quot;extinct&amp;quot;])&lt;br /&gt;
	local era=nonil(inParams[&amp;quot;era&amp;quot;])&lt;br /&gt;
	local speakersData&lt;br /&gt;
	if extinct~=&amp;quot;&amp;quot; then&lt;br /&gt;
		outParams[&amp;quot;label&amp;quot;..counter]=&amp;quot;[[Extinct language|Extinct]]&amp;quot;&lt;br /&gt;
		if extinct==&amp;quot;?&amp;quot; then&lt;br /&gt;
			speakersData=&amp;quot;(date missing)[[Category:Language articles with unknown extinction date]]&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			speakersData=extinct&lt;br /&gt;
		end&lt;br /&gt;
	elseif era~=&amp;quot;&amp;quot; then&lt;br /&gt;
		outParams[&amp;quot;label&amp;quot;..counter]=&amp;quot;Era&amp;quot;&lt;br /&gt;
		speakersData=era&lt;br /&gt;
	else&lt;br /&gt;
		local speakersLabel=inParams[&amp;quot;speakers_label&amp;quot;]&lt;br /&gt;
		if speakersLabel then&lt;br /&gt;
			outParams[&amp;quot;label&amp;quot;..counter]=speakersLabel&lt;br /&gt;
		elseif creator~=&amp;quot;&amp;quot; then&lt;br /&gt;
			outParams[&amp;quot;label&amp;quot;..counter]=&amp;quot;Users&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			outParams=&amp;quot;&amp;lt;div style=\&amp;quot;display:inline-block;\&amp;quot;&amp;gt;Native speakers&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if speakers~=&amp;quot;&amp;quot; then&lt;br /&gt;
			if string.upper(date)==&amp;quot;NA&amp;quot; then&lt;br /&gt;
				speakersData=speakers&lt;br /&gt;
			else&lt;br /&gt;
				if speakers ==&amp;quot;none&amp;quot; then&lt;br /&gt;
					speakersData=&amp;quot;&amp;#039;&amp;#039;None&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
				elseif speakers~=&amp;quot;?&amp;quot; then&lt;br /&gt;
					if date~=&amp;quot;&amp;quot; then&lt;br /&gt;
						if isSign then&lt;br /&gt;
							speakersData=nowrap(speakers..&amp;quot; &amp;quot;..nonil(inParams[&amp;quot;dateprefix&amp;quot;])..date)&lt;br /&gt;
						else&lt;br /&gt;
							if date==&amp;quot;no date&amp;quot; then&lt;br /&gt;
								speakersData=&amp;quot;(undated figure of &amp;quot;..speakers..&amp;quot;)&amp;quot;&lt;br /&gt;
							else&lt;br /&gt;
								local dateNum=tonumber(string.sub(date,4))&lt;br /&gt;
								if dateNum~=nil then&lt;br /&gt;
			--[[The following changes the display depending on the age of the &lt;br /&gt;
				data. Limit set to 25 years, as a population can double in that &lt;br /&gt;
				time.]]&lt;br /&gt;
									if os.date(&amp;quot;%Y&amp;quot;)-dateNum&amp;lt;25 then&lt;br /&gt;
										speakersData=nowrap(speakers..&amp;quot; &amp;quot;..nonil(inParams[&amp;quot;dateprefix&amp;quot;])..date)&lt;br /&gt;
									else&lt;br /&gt;
										speakersData=speakers..&amp;quot; cited &amp;quot;..nonil(inParams[&amp;quot;dateprefix&amp;quot;])..date&lt;br /&gt;
										if ref==&amp;quot;e19&amp;quot; then&lt;br /&gt;
											cats=cats..&amp;quot;[[Category:Language articles with old Ethnologue 19 speaker data]]&amp;quot;&lt;br /&gt;
										elseif ref==&amp;quot;e18&amp;quot; then&lt;br /&gt;
											cats=cats..&amp;quot;[[Category:Language articles with old Ethnologue 18 speaker data]]&amp;quot;&lt;br /&gt;
										else&lt;br /&gt;
											cats=cats..&amp;quot;[[Category:Language articles with old speaker data]]&amp;quot;&lt;br /&gt;
										end&lt;br /&gt;
									end --os.date(&amp;quot;%Y&amp;quot;)-datenum&amp;lt;25&lt;br /&gt;
								end --datenum~=nil&lt;br /&gt;
							end --date==&amp;quot;no date&amp;quot;&lt;br /&gt;
						end --isSign&lt;br /&gt;
					else&lt;br /&gt;
						speakersData=speakers&lt;br /&gt;
						cats=cats..&amp;quot;[[Category:Language articles with speaker number undated]]&amp;quot;&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	---Categories should only be used in the mainspace; additionally, it should&lt;br /&gt;
	---be possible to exclude from a specific page using the |no_cat parameter&lt;br /&gt;
	if mw.title.getCurrentTitle().namespace~=0 or inParams[&amp;quot;no_cat&amp;quot;]==&amp;quot;1&amp;quot; then&lt;br /&gt;
		cats=&amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return frame:expandTemplate{ title = &amp;quot;infobox&amp;quot;, args = outParams }..cats&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>imported&gt;Animal lover 666</name></author>
	</entry>
</feed>