<?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%3ASandbox%2FSmsingh34%2FNames</id>
	<title>Module:Sandbox/Smsingh34/Names - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FSmsingh34%2FNames"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Smsingh34/Names&amp;action=history"/>
	<updated>2026-05-27T02:52:47Z</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:Sandbox/Smsingh34/Names&amp;diff=146204&amp;oldid=prev</id>
		<title>imported&gt;Smsingh34 at 18:13, 25 November 2018</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Smsingh34/Names&amp;diff=146204&amp;oldid=prev"/>
		<updated>2018-11-25T18:13:18Z</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;-- smsingh Lua Task 8, Names of People&lt;br /&gt;
local p = {}&lt;br /&gt;
p.formatname = function (frame)&lt;br /&gt;
	fullname = frame.args.fullname&lt;br /&gt;
	nameformat = frame.args.nameformat&lt;br /&gt;
	lastname = &amp;quot;&amp;quot;&lt;br /&gt;
	givenname = &amp;quot;&amp;quot;&lt;br /&gt;
-- Dutch names&lt;br /&gt;
	dutchnames = {&amp;quot;van den &amp;quot;, &amp;quot;van der &amp;quot;, &amp;quot;van de &amp;quot;, &amp;quot;de la &amp;quot;, &amp;quot;van &amp;quot;, &amp;quot;de &amp;quot;, &amp;quot;ter &amp;quot;, &amp;quot;tot &amp;quot;}&lt;br /&gt;
	function dutchlastname(name)&lt;br /&gt;
		for i = 1, #dutchnames do&lt;br /&gt;
			if string.match(name, dutchnames[i]) then&lt;br /&gt;
				lastnameindex = string.find(name, dutchnames[i])&lt;br /&gt;
				lastname = string.sub(name, lastnameindex)&lt;br /&gt;
				name = string.gsub(name, dutchnames[i], &amp;quot;&amp;quot;)&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return lastname&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
-- Spanish names&lt;br /&gt;
	function spanishlastname(name)&lt;br /&gt;
		if string.match(name, &amp;quot; y &amp;quot;) then&lt;br /&gt;
			lastname = string.gsub(name, &amp;quot; y &amp;quot;, &amp;quot; &amp;quot;)&lt;br /&gt;
		else&lt;br /&gt;
			lastname = fullname&lt;br /&gt;
		end&lt;br /&gt;
		if string.match(string.reverse(string.match(string.reverse(lastname), &amp;quot;[%S]+ [%S]+&amp;quot;)), &amp;quot;de &amp;quot;) then&lt;br /&gt;
			lastname = string.reverse(string.match(string.reverse(lastname), &amp;quot;[%S]+ [%S]+ [%S]+&amp;quot;))&lt;br /&gt;
		else&lt;br /&gt;
			lastname = string.reverse(string.match(string.reverse(lastname), &amp;quot;[%S]+ [%S]+&amp;quot;))&lt;br /&gt;
		end&lt;br /&gt;
		return lastname&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
-- Portugeuse names&lt;br /&gt;
	portuguesenames = {&amp;#039;das&amp;#039;, &amp;#039;dos&amp;#039;, &amp;#039;da&amp;#039;, &amp;#039;do&amp;#039;, &amp;#039;de&amp;#039;}&lt;br /&gt;
	function portugueselastname(name)&lt;br /&gt;
		for i = 1, #portuguesenames do&lt;br /&gt;
			if string.match(name, portuguesenames[i]) then&lt;br /&gt;
				lastnameindex = string.find(name, portuguesenames[i])&lt;br /&gt;
				lastname = string.sub(name, lastnameindex)&lt;br /&gt;
				name = string.gsub(name, portuguesenames[i], &amp;quot;&amp;quot;)&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return lastname&lt;br /&gt;
	end&lt;br /&gt;
	-- juniors, seniors, and roman numerals&lt;br /&gt;
	fullname = string.gsub(fullname, &amp;quot; Jr.&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	fullname = string.gsub(fullname, &amp;quot; Sr.&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	fullname = string.gsub(fullname, &amp;quot; Jr&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	fullname = string.gsub(fullname, &amp;quot; Sr&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	if not (string.match(fullname, &amp;quot; II&amp;quot;) == nil) then&lt;br /&gt;
		local numerals = string.reverse(string.match(string.reverse(fullname), &amp;quot;(%a+)&amp;quot;))&lt;br /&gt;
		fullname = string.gsub(fullname, numerals, &amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- most basic last name:&lt;br /&gt;
	if nameformat == &amp;quot;es&amp;quot; then&lt;br /&gt;
		spanishlastname(fullname)&lt;br /&gt;
	elseif nameformat == &amp;quot;zh&amp;quot; then&lt;br /&gt;
		if string.gsub(fullname, &amp;quot;(%a+)&amp;quot;, &amp;quot;&amp;quot;) == &amp;quot;&amp;quot; then&lt;br /&gt;
			lastname = &amp;quot;&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			lastname = string.match(fullname, &amp;quot;(%a+)&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	elseif (not (dutchlastname(fullname) == &amp;quot;&amp;quot;)) then&lt;br /&gt;
		dutchlastname(fullname)&lt;br /&gt;
	elseif not (portugueselastname(fullname)==&amp;quot;&amp;quot;) then&lt;br /&gt;
		portugueselastname(fullname)&lt;br /&gt;
	elseif fullname == nil or fullname == &amp;quot;&amp;quot; then&lt;br /&gt;
		return &amp;quot;No name given&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		lastname = string.reverse(string.match(string.reverse(fullname), &amp;quot;[%S-]+&amp;quot;))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if lastname == &amp;quot;&amp;quot; then&lt;br /&gt;
		lastname = &amp;quot;none&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	givenname = string.gsub(fullname, lastname, &amp;quot;&amp;quot;)&lt;br /&gt;
	return &amp;quot;given name: &amp;quot; .. givenname .. &amp;quot; last name: &amp;quot; .. lastname&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Smsingh34</name></author>
	</entry>
</feed>