imported>Robingan7
No edit summary
 
(No difference)

Latest revision as of 02:43, 5 December 2018

Documentation for this module may be created at Module:Sandbox/Robingan7/Names/doc

local p={}

p.names = function(frame)
	local name = frame.args.name or ""
	
	local formatname = frame.args.formatname or ""
	

	strings = {}
	for stringss in string.gmatch(name, "%C%P%S*") do
    	strings[#strings + 1] = stringss
	end
	
	if(formatname=="zh") then return "Given = "..strings[2].."<br>Family = "..strings[1] end
	if(formatname=="en") then  
		suffix={" Jr"," Sr"," III"," II"," I"}
	judge=false
	for i=1,#strings do 
		for i2=1,#suffix do
			if(strings[i]==suffix[i2]) then judge=true end end end
	given=""
	
	if(judge==true) then 
		for i3=1,#strings-2 do given=given.." "..strings[i3] end
		return  "Given = "..given.."<br>Family = "..strings[#strings-1] 
	else 
		for i4=1,#strings-1 do given=given.." "..strings[i4] end
		return  "Given = "..given.."<br>Family = "..strings[#strings] 
		end
	end
	
	if(formatname=="es") then 
		given=""
		if(#strings>2) then 
		for i=1,#strings-2 do given=given.." "..strings[i] end
			return "Given = "..given.."<br>Family = "..strings[#strings-1].." "..strings[#strings] 
    else 
    	for i=1,#strings-1 do given=given.." "..strings[i] end
			return "Given = "..given.."<br>Family = ".." "..strings[#strings] end end 
	
	if(formatname=="nl") then 
		suffix={" van"," de","van","de"," von"}
		breakpoint=0
	judge=false
	for i=1,#strings do 
		for i2=1,#suffix do
			if(strings[i]==suffix[i2]) then judge=true breakpoint=i end end end
	given=""
	family=""
	
	if(judge==true) then 
		for i3=1,breakpoint-1 do given=given.." "..strings[i3] end
		for i5=breakpoint,#strings do family=family.." "..strings[i5] end
		return  "Given = "..given.."<br>Family = "..family
	else 
		for i4=1,#strings-1 do given=given.." "..strings[i4] end
		return
		"Given = "..given.."<br>Family = "..strings[#strings] 
		
		end
	end
	
	if(formatname=="de") then 
		suffix={" von"}
		breakpoint=0
	judge=false
	for i=1,#strings do 
		for i2=1,#suffix do
			if(strings[i]==suffix[i2]) then judge=true breakpoint=i end end end
	given=""
	family=""
	
	if(judge==true) then 
		for i3=1,breakpoint-1 do given=given.." "..strings[i3] end
		for i5=breakpoint,#strings do family=family.." "..strings[i5] end
		return  "Given = "..given.."<br>Family = "..family
	else 
		for i4=1,#strings-1 do given=given.." "..strings[i4] end
		return
		"Given = "..given.."<br>Family = "..strings[#strings] 
		
		end
	end
	
	if(formatname=="") then 
		if(#strings[1]==3 or strings[1]=="Zheng") then formatname="zh"  end
		 
		suffix={" van"," de","van","de"," von"}
		judge=false
		 for i=1,#strings do 
			for i2=1,#suffix do
				if(strings[i]==suffix[i2]) then judge=true end 
				if(formatname~="zh" or judge==true) then
				if(judge==true) then formatname="nl"  else formatname="en" end end end end end
		
		strings2 = {}
		for i5=1,#strings do 
			
			for stringss2 in string.gmatch(strings[i5], "%A%P+") do
    			strings2[#strings2 + 1] = stringss2
			end	end
		
		judge3=false
		if(#strings2-#strings>=0) then judge3=true end
		
		for i7=1,#strings2 do 
			if(string.sub(strings2[i7],1,1)=="-") then judge3=false end end
				
	
		if(judge3==true and judge==false and formatname~="zh" or #strings>4) then formatname="es"  end	
		
	if(formatname=="zh") then return "Given = "..strings[2].."<br>Family = "..strings[1] end
	if(formatname=="en") then  
		suffix={" Jr"," Sr"," III"," II"," I"}
	judge=false
	for i=1,#strings do 
		for i2=1,#suffix do
			if(strings[i]==suffix[i2]) then judge=true end end end
	given=""
	
	if(judge==true) then 
		for i3=1,#strings-2 do given=given.." "..strings[i3] end
		return  "Given = "..given.."<br>Family = "..strings[#strings-1] 
	else 
		for i4=1,#strings-1 do given=given.." "..strings[i4] end
		return  "Given = "..given.."<br>Family = "..strings[#strings] 
		end
	end
	
	if(formatname=="es") then 
		given=""
		if(#strings>2) then 
		for i=1,#strings-2 do given=given.." "..strings[i] end
			return "Given = "..given.."<br>Family = "..strings[#strings-1].." "..strings[#strings] 
    else 
    	for i=1,#strings-1 do given=given.." "..strings[i] end
			return "Given = "..given.."<br>Family = ".." "..strings[#strings] end end 
	
	if(formatname=="nl") then 
		suffix={" van"," de","van","de"," von"}
		breakpoint=0
	judge=false
	for i=1,#strings do 
		for i2=1,#suffix do
			if(strings[i]==suffix[i2]) then judge=true breakpoint=i end end end
	given=""
	family=""
	
	if(judge==true) then 
		for i3=1,breakpoint-1 do given=given.." "..strings[i3] end
		for i5=breakpoint,#strings do family=family.." "..strings[i5] end
		return  "Given = "..given.."<br>Family = "..family
	else 
		for i4=1,#strings-1 do given=given.." "..strings[i4] end
		return
		"Given = "..given.."<br>Family = "..strings[#strings] 
		
		end
	end    		
end	
return p