Module:Sandbox/Ajuanca/Names: Difference between revisions

Content deleted Content added
Testing
Testing
 
(65 intermediate revisions by the same user not shown)
Line 232:
familyNames = {}
}
if(not(p.isOnlyName(fullNameTable))) then
table.remove(fullNameTable)
end
table.insert(name.givenNames, fullNameTable[1])
local connectors = {"de", "del", "el", "la", "los", "las", "y"}
table.remove(fullNameTable, 1)
local prepositions = {"de", "del", "y"}
function getPositionOfConecctors(fullNameTable)
local articles = {"el", "la", "los", "las"}
local firstSurnameconnectors = 0{"de", "del", "y"}
firstSurname = 0
local lastSurname = 0
lastSurname = 0
for d, actualName in ipairs(fullNameTable)do
if(for d==#, actualName in ipairs(fullNameTable) thendo
table.insert(name.familyNames, actualName)
else
for x, connector in ipairs(connectors) do
if(connector == actualName) then
firstSurname = d
for z, prepositionlastConnector in ipairs(prepositionsconnectors) do
if((fullNameTable[#fullNameTable-1] == lastConnector) and (firstSurname ~= #fullNameTable-1)) then
if (connector == actualName) then
lastSurname = #fullNameTable-1
-- This means the two surnames are compound.
return {firstSurname, lastSurname }
lastSurname = z
table.insert(name.familyNames, table.concat(fullNameTable, " ", d, z-1))
table.insert(name.familyNames, table.concat(fullNameTable, " ", z))
end
if(fullNameTable[#fullNameTable-2] == lastConnector and (firstSurname ~= #fullNameTable-2)) then
end
if( lastSurname ==0) then#fullNameTable-2
return {firstSurname, lastSurname}
-- This means only one is compound or just one is given.
for article in ipairs(articles)do
if(article==name and d+1 == #fullNameTable) then
table.insert(name.familyNames, table.concat(fullNameTable, " ", d))
else
table.insert(name.familyNames, table.concat(fullNameTable, " ", d, #fullNameTable-1))
end
end
end
end
end
table.insert(name.givenNames, actualName)
end
return { firstSurname, lastSurname }
end
local positions = getPositionOfConecctors(fullNameTable)
-- No doubt last names are family names
if (#fullNameTable >positions[1]= 4=0) then
table.insertif(name.givenNames, #fullNameTable[==1])then
table.insert(name.givenNamesfamilyNames, fullNameTable[21])
table.insertelseif(name.familyNames, #fullNameTable[3]==2)then
-- 1st maybe is a given name
table.insert(name.familyNames, fullNameTable[4])
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[1])
end
table.insert(name.familyNames, fullNameTable[2])
else
table.insert(name.givenNames, fullNameTable[1])
table.insert(name.familyNames, fullNameTable[2])
table.insert(name.familyNames, fullNameTable[3])
end
else
if(positions[2]==0)then
if(positions[1]==1) then
-- Maybe a second surname is behind
table.insert(name.familyNames, table.concat(fullNameTable, " ", positions[1]))
elseif(positions[1]==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[1])
end
table.insert(name.familyNames, table.concat(fullNameTable, " ", positions[1]))
end
else
if(positions[1]==2)then
table.insert(name.givenNames, fullNameTable[1])
end
table.insert(name.familyNames, table.concat(fullNameTable, " ", positions[1], positions[2]-1))
table.insert(name.familyNames, table.concat(fullNameTable, " ", positions[2]))
end
end
return name
Line 409 ⟶ 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