Module:Sandbox/Ajuanca/Names: Difference between revisions

Content deleted Content added
Testing
Testing
 
(34 intermediate revisions by the same user not shown)
Line 232:
familyNames = {}
}
if(not(p.isOnlyName(fullNameTable))) then
table.remove(fullNameTable)
end
local connectors = {"de", "del", "y"}
table.insert(name.givenNames, fullNameTable[1])
table.remove(fullNameTable, 1)
function getPositionOfConecctors(fullNameTable)
local connectors = {"de", "del", "y"}
local firstSurname = 0
local lastSurname = 0
for d, actualName in ipairs(fullNameTable)do
local firstSurname = 0
local lastSurname = 0
for x, connector in ipairs(connectors) do
if(connector == actualName) then
Line 255:
end
end
return { firstSurname, lastSurname }
end
end
Line 262 ⟶ 261:
end
local positions = getPositionOfConecctors(fullNameTable)
if(positions[1]~==0) then
if(positions[2]~#fullNameTable=0=1)then
table.insert(name.familyNames, table.concat(fullNameTable, " ", positions[1], positions[2]-1))
table.insert(name.familyNames, table.concatelseif(#fullNameTable, " ", positions[==2]))then
-- 1st maybe is a given name
local isGiven = true
local terminations = {"ez", "es", "is", "iz"}
for c, termination in ipairs(terminations) do
local finalLetters = string.sub(fullNameTable[1], -2, -1)
if (finalLetters == termination) then
isGiven = false
end
end
if(isGiven)then
-- table.insert(name.givenNames, fullNameTable[1])
}}else
table.insert(name.familyNames, fullNameTable[21])
end
table.insert(name.familyNames, fullNameTable[32])
else
table.insert(name.familyNamesgivenNames, table.concat(fullNameTable, " ", positions[1]))
-- table.insert(name.familyNames, fullNameTable[32])
-- table.insert(name.familyNames, fullNameTable[43])
end
else
if(#fullNameTablepositions[2]==20) then
if(surname positions[1]== name1) then
table.insert(name.familyNames, fullNameTable[2])
-- Maybe a second surname is behind
-- table.insert(name.givenNamesfamilyNames, table.concat(fullNameTable, " ", positions[21]))
elseif(positions[1]==2)then
-- 1st maybe is a given name
local commonSurnamesisGiven = {true
local terminations = {"ez", "es", "is", "iz"}
for dc, specificLanguageTabletermination in ipairs(commonSurnamesterminations) do
local finalLetters = string.sub(fullNameTable[1], -2, -1)
if (finalLetters == termination) then
isGiven = false
}},end
}end
if(isGiven)then
table.insert(name.givenNames, fullNameTable[1])
}},else
table.insert(name.familyNames, fullNameTable[1])
}},end
table.insert(name.familyNames, table.concat(fullNameTable, " ", positions[1]))
-- end
else
if(positions[1]==2)then
table.insert(name.givenNames, fullNameTable[21])
end
table.insert(name.familyNames, fullNameTable[3])
table.insert(name.familyNames, table.concat(fullNameTable, " ", positions[1], positions[2]-1))
table.insert(name.familyNames, table.concat(fullNameTable, " ", positions[2]))
end
end
-- No doubt last names are family names
--if (#fullNameTable >= 4) then
-- table.insert(name.givenNames, fullNameTable[1])
-- table.insert(name.givenNames, fullNameTable[2])
-- table.insert(name.familyNames, fullNameTable[3])
-- table.insert(name.familyNames, fullNameTable[4])
--end
return name
end
Line 416 ⟶ 447:
end
return isJustName
end
 
function p.test(frame)
name = tostring(frame.args.name)
local str = "no working"
-- First step is compare possible know surnames that exit the normal form or cause conflicts with other
-- indicators.
local commonSurnames = {
{ "es",
{ "Navarro", "Gil", "Serrano", "Sanz", "Ortega", "Iglesias", "Cruz", "Aguilar",
"Rivera", "Herrera", "Castro", "Luna", "Garza", "Soto", "Diaz"
}},
{ "de",
{ "Mies"
}},
{ "ru",
{ "Poda", "Petrenko", "Roschin", "Uspensky"
}},
-- No need to include Wang, Zhang or Chang (common termination -ang).
{ "zh",
{ "Wáng", "Wāng", "Li", "Lei", "Lie", "Lee", "Cheung", "Chen", "Zhou", "Zhao"
}}
}
-- Search for a common surname that scapes from previous rules.
for d, specificLanguageTable in ipairs(commonSurnames) do
for x, surname in ipairs(specificLanguageTable[2]) do
if(surname == name) then
return specificLanguageTable[1]
end
end
end
return str
end
return p