<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://techshareroom.com/techshareroom_wiki/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3ANF</id>
	<title>Módulo:NF - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://techshareroom.com/techshareroom_wiki/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3ANF"/>
	<link rel="alternate" type="text/html" href="https://techshareroom.com/techshareroom_wiki/index.php?title=M%C3%B3dulo:NF&amp;action=history"/>
	<updated>2026-04-27T06:26:47Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.0-alpha</generator>
	<entry>
		<id>https://techshareroom.com/techshareroom_wiki/index.php?title=M%C3%B3dulo:NF&amp;diff=538&amp;oldid=prev</id>
		<title>Adgellida: 1 revisión importada</title>
		<link rel="alternate" type="text/html" href="https://techshareroom.com/techshareroom_wiki/index.php?title=M%C3%B3dulo:NF&amp;diff=538&amp;oldid=prev"/>
		<updated>2021-08-25T20:59:40Z</updated>

		<summary type="html">&lt;p&gt;1 revisión importada&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revisión del 22:59 25 ago 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;es&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Sin diferencias)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Adgellida</name></author>
	</entry>
	<entry>
		<id>https://techshareroom.com/techshareroom_wiki/index.php?title=M%C3%B3dulo:NF&amp;diff=537&amp;oldid=prev</id>
		<title>Plantilla&gt;Leoncastro en 12:08 1 ago 2021</title>
		<link rel="alternate" type="text/html" href="https://techshareroom.com/techshareroom_wiki/index.php?title=M%C3%B3dulo:NF&amp;diff=537&amp;oldid=prev"/>
		<updated>2021-08-01T12:08:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function error ( msg )&lt;br /&gt;
	return &amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Error: &amp;#039; .. msg .. &amp;#039;&amp;lt;/strong&amp;gt;&amp;#039;&lt;br /&gt;
		.. &amp;#039;[[Categoría:Wikipedia:Artículos con problema en la plantilla NF]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function safereadtable ( ... )&lt;br /&gt;
	local arg = {...}&lt;br /&gt;
	local key = arg and arg[1]&lt;br /&gt;
	for i = 2, #arg do&lt;br /&gt;
		local val = arg[i]&lt;br /&gt;
		if key == nil or val == nil then&lt;br /&gt;
			key = nil&lt;br /&gt;
			break&lt;br /&gt;
		else&lt;br /&gt;
			key = key[val]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return key&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	@name	catSexGenderIdentity&lt;br /&gt;
	@global	none&lt;br /&gt;
	@param	none&lt;br /&gt;
	@return	wikitext (categories)&lt;br /&gt;
	@descr	Genera las categorías relacionadas con el sexo o género de una&lt;br /&gt;
			persona en función de los datos obtenidos de Wikidata según su&lt;br /&gt;
			propiedad P21.&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
function p.catSexGenderIdentity()&lt;br /&gt;
	local wd = mw.wikibase.getEntityObject()&lt;br /&gt;
	if wd and&lt;br /&gt;
		-- wd:formatPropertyValues( &amp;#039;P31&amp;#039; ).value == &amp;#039;ser humano&amp;#039;&lt;br /&gt;
		-- wd.claims.P31[1].mainsnak.datavalue.value.id == &amp;#039;Q5&amp;#039;&lt;br /&gt;
		safereadtable(wd, &amp;#039;claims&amp;#039;, &amp;#039;P31&amp;#039;, 1, &amp;#039;mainsnak&amp;#039;, &amp;#039;datavalue&amp;#039;, &amp;#039;value&amp;#039;, &amp;#039;id&amp;#039;) == &amp;#039;Q5&amp;#039;&lt;br /&gt;
	then&lt;br /&gt;
		--[==[ Main categories are:&lt;br /&gt;
				[[Categoría:Hombres]]&lt;br /&gt;
				[[Categoría:Mujeres]]&lt;br /&gt;
				[[Categoría:Intersexuales]]&lt;br /&gt;
				[[Categoría:Mujeres transgénero]]&lt;br /&gt;
				[[Categoría:Hombres transgénero]]&lt;br /&gt;
				[[Categoría:Personas no binarias]]&lt;br /&gt;
				[[Categoría:Personas no categorizadas por sexo]]&lt;br /&gt;
		--]==]&lt;br /&gt;
		--[==[ valid sex/genders located in Wikidata: ]==]--&lt;br /&gt;
		local validsexgenders = {&lt;br /&gt;
		--	-- see https://www.wikidata.org/wiki/Property:P21#P2302&lt;br /&gt;
		--	[&amp;#039;IDENTIFIER&amp;#039;]	--[[ [&amp;#039;TEXT LABEL&amp;#039;] --]]			= &amp;#039;CATEGORY&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q6581097&amp;#039;]	--[[ [&amp;#039;masculino&amp;#039;] --]]				= &amp;#039;Hombres&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q6581072&amp;#039;]	--[[ [&amp;#039;femenino&amp;#039;] --]]				= &amp;#039;Mujeres&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q1097630&amp;#039;]	--[[ [&amp;#039;intersexual&amp;#039;] --]]			= &amp;#039;Intersexuales&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q189125&amp;#039;]		--[[ [&amp;#039;transgénero&amp;#039;] --]]			= nil,&lt;br /&gt;
			[&amp;#039;Q1052281&amp;#039;]	--[[ [&amp;#039;mujer transgénero&amp;#039;] --]]		= &amp;#039;Mujeres transgénero&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q2449503&amp;#039;]	--[[ [&amp;#039;hombre transgénero&amp;#039;] --]]	= &amp;#039;Hombres transgénero&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q48270&amp;#039;]		--[[ [&amp;#039;género no-binario&amp;#039;] --]]		= &amp;#039;Personas no binarias&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q1399232&amp;#039;]	--[[ [&amp;#039;fa&amp;#039;afafine&amp;#039;] --]]			= &amp;#039;Personas no binarias&amp;#039;, -- third gender in Samoan culture&lt;br /&gt;
			[&amp;#039;Q3277905&amp;#039;]	--[[ [&amp;#039;māhū&amp;#039;] --]]					= &amp;#039;Personas no binarias&amp;#039;, -- third gender in traditional Hawaiian, Kanaka and Maohi cultures&lt;br /&gt;
			[&amp;#039;Q746411&amp;#039;]		--[[ [&amp;#039;kathoey&amp;#039;] --]]				= &amp;#039;Personas no binarias&amp;#039;, -- third gender in Thai culture&lt;br /&gt;
			[&amp;#039;Q350374&amp;#039;]		--[[ [&amp;#039;fakaleiti&amp;#039;] --]]				= &amp;#039;Personas no binarias&amp;#039;, -- third gender in Tongan culture&lt;br /&gt;
			[&amp;#039;Q660882&amp;#039;]		--[[ [&amp;#039;hijra&amp;#039;] --]]					= &amp;#039;Personas no binarias&amp;#039;, -- third gender of South Asian cultures&lt;br /&gt;
			[&amp;#039;Q44148&amp;#039;]		--[[ [&amp;#039;macho&amp;#039;] --]]					= nil, -- non-human&lt;br /&gt;
			[&amp;#039;Q43445&amp;#039;]		--[[ [&amp;#039;hembra&amp;#039;] --]]				= nil, -- non-human&lt;br /&gt;
			-- &amp;#039;unknown value&amp;#039; or &amp;#039;valor desconocido&amp;#039;&lt;br /&gt;
			-- &amp;#039;no value&amp;#039; or &amp;#039;sin valor&amp;#039;&lt;br /&gt;
			[&amp;#039;Q207959&amp;#039;]		--[[ [&amp;#039;androginia&amp;#039;] --]]			= nil,&lt;br /&gt;
			[&amp;#039;Q301702&amp;#039;]		--[[ [&amp;#039;dos espíritus&amp;#039;] --]]			= &amp;#039;Personas no binarias&amp;#039;, -- third gender in the indigenous North American cultures&lt;br /&gt;
			[&amp;#039;Q27679766&amp;#039;]	--[[ [&amp;#039;transmasculino&amp;#039;] --]]		= &amp;#039;Hombres transgénero&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q27679684&amp;#039;]	--[[ [&amp;#039;transfemenino&amp;#039;] --]]			= &amp;#039;Mujeres transgénero&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q3177577&amp;#039;]	--[[ [&amp;#039;muxe&amp;#039;] --]]					= &amp;#039;Mujeres transgénero&amp;#039;, -- third gender in Zapotec culture&lt;br /&gt;
			[&amp;#039;Q28873047&amp;#039;]	--[[ [&amp;#039;organismo intersexual&amp;#039;] --]]	= nil, -- non-human&lt;br /&gt;
			[&amp;#039;Q505371&amp;#039;]		--[[ [&amp;#039;agénero&amp;#039;] --]]				= &amp;#039;Personas no binarias&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q12964198&amp;#039;]	--[[ [&amp;#039;genderqueer&amp;#039;] --]]			= &amp;#039;Personas no binarias&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q18116794&amp;#039;]	--[[ [&amp;#039;género fluido&amp;#039;] --]]			= &amp;#039;Personas no binarias&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q1289754&amp;#039;]	--[[ [&amp;#039;neutro&amp;#039;] --]]				= &amp;#039;Personas no binarias&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q179294&amp;#039;]		--[[ [&amp;#039;eunuco&amp;#039;] --]]				= &amp;#039;Hombres&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q7130936&amp;#039;]	--[[ [&amp;#039;pangénero&amp;#039;] --]]				= &amp;#039;Personas no binarias&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q64017034&amp;#039;]	--[[ [&amp;#039;cogenitor&amp;#039;] --]]				= nil, -- fictional, non-human&lt;br /&gt;
			[&amp;#039;Q52261234&amp;#039;]	--[[ [&amp;#039;sexo neutro&amp;#039;] --]]			= &amp;#039;Personas no binarias&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q16674976&amp;#039;]	--[[ [&amp;#039;hermafroditismo&amp;#039;] --]]		= nil, -- non-human&lt;br /&gt;
			[&amp;#039;Q15145779&amp;#039;]	--[[ [&amp;#039;mujer cisgénero&amp;#039;] --]]		= &amp;#039;Mujeres&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q15145778&amp;#039;]	--[[ [&amp;#039;hombre cisgénero&amp;#039;] --]]		= &amp;#039;Hombres&amp;#039;,&lt;br /&gt;
			[&amp;#039;Q96000630&amp;#039;]   --[[ [&amp;#039;X-gender&amp;#039;] --]]				= &amp;#039;Personas no binarias&amp;#039;,&lt;br /&gt;
		}&lt;br /&gt;
	--	local sexgenderval = wd.claims.P21[1].mainsnak.datavalue.value.id -- wd:formatPropertyValues( &amp;#039;P21&amp;#039; ).value&lt;br /&gt;
		local sexgenderval = safereadtable( wd, &amp;#039;claims&amp;#039;, &amp;#039;P21&amp;#039;, 1, &amp;#039;mainsnak&amp;#039;, &amp;#039;datavalue&amp;#039;, &amp;#039;value&amp;#039;, &amp;#039;id&amp;#039;)&lt;br /&gt;
		local sexgendercat = validsexgenders[ sexgenderval ] or &amp;#039;Personas no categorizadas por sexo&amp;#039;&lt;br /&gt;
		return &amp;#039;[[Categoría:&amp;#039; .. sexgendercat .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;  -- non-human&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	@name	catLivingStatus&lt;br /&gt;
	@global	require(&amp;#039;Módulo:Roman&amp;#039;)&lt;br /&gt;
	@param	birthdate, deathdate, no errors&lt;br /&gt;
	@return	wikitext (categories and [optionally] errors)&lt;br /&gt;
	@descr	Genera las categorías relacionadas con el nacimiento y fallecimiento&lt;br /&gt;
			de una persona, así como identifica si está viva, en función de los&lt;br /&gt;
			datos proporcionados como parámetro o los obtenidos automáticamente&lt;br /&gt;
			de Wikidata según sus propiedades P569 y P570.&lt;br /&gt;
	@aux	filterBirthDate, filterLiveState, filterDeathDate, getDateStruct&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
local function filterBirthDate( value )&lt;br /&gt;
	return mw.ustring.match( mw.ustring.upper( value ), &amp;quot;MISSING&amp;quot; )&lt;br /&gt;
		or mw.ustring.match( mw.ustring.upper( value ), &amp;quot;UNKNOWN&amp;quot; )&lt;br /&gt;
		or mw.ustring.match( value, &amp;quot;%?&amp;quot; )&lt;br /&gt;
		or mw.ustring.match( value, &amp;quot;año desconocido&amp;quot; )&lt;br /&gt;
		or mw.ustring.match( value, &amp;quot;valor desconocido&amp;quot; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function filterLiveState( value )&lt;br /&gt;
	return mw.ustring.match( mw.ustring.upper( value ), &amp;quot;LIVING&amp;quot; )&lt;br /&gt;
		or mw.ustring.match( mw.ustring.upper( value ), &amp;quot;VIVA&amp;quot; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function filterDeathDate( value )&lt;br /&gt;
	return filterLiveState( value )&lt;br /&gt;
		or filterBirthDate( value )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getDateStruct( wd, arg, prop, filter )&lt;br /&gt;
	local result, number, margin -- string, integer, precision-like value&lt;br /&gt;
	local value&lt;br /&gt;
	local ModuloRoman = require(&amp;#039;Módulo:Roman&amp;#039;)&lt;br /&gt;
	local convertArabicToRoman = ModuloRoman._Numeral -- convertArabicToRoman&lt;br /&gt;
	local convertRomanToArabic = ModuloRoman.toArabic -- convertRomanToArabic&lt;br /&gt;
	if arg and arg ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		value = mw.text.trim( arg )&lt;br /&gt;
	elseif wd and&lt;br /&gt;
		-- wd:formatPropertyValues( &amp;#039;P31&amp;#039; ).value == &amp;#039;ser humano&amp;#039;&lt;br /&gt;
		-- wd.claims.P31[1].mainsnak.datavalue.value.id == &amp;#039;Q5&amp;#039;&lt;br /&gt;
		safereadtable(wd, &amp;#039;claims&amp;#039;, &amp;#039;P31&amp;#039;, 1, &amp;#039;mainsnak&amp;#039;, &amp;#039;datavalue&amp;#039;, &amp;#039;value&amp;#039;, &amp;#039;id&amp;#039;) == &amp;#039;Q5&amp;#039;&lt;br /&gt;
	then&lt;br /&gt;
		value = wd:formatPropertyValues( prop ).value&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if value and value ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		local err, val&lt;br /&gt;
		if filter and type(filter) == &amp;#039;function&amp;#039; then&lt;br /&gt;
			err, val = pcall( filter, value )&lt;br /&gt;
		end&lt;br /&gt;
		if err and val then&lt;br /&gt;
			margin = value -- &lt;br /&gt;
			number = 0&lt;br /&gt;
			result = &amp;#039;&amp;#039; -- not nil, it is valid but filtered&lt;br /&gt;
		elseif mw.ustring.match( value, &amp;quot;milenio&amp;quot; ) then&lt;br /&gt;
			local m = mw.ustring.match( value, &amp;quot;(%a+) milenio&amp;quot; ) -- &amp;#039;el MM milenio&amp;#039;, roman&lt;br /&gt;
			if m then&lt;br /&gt;
				margin = 1000&lt;br /&gt;
				number = ( convertRomanToArabic( m ) - 1 ) * margin&lt;br /&gt;
				result = &amp;#039;el &amp;#039; .. m .. &amp;#039; milenio&amp;#039;&lt;br /&gt;
			else&lt;br /&gt;
				m = mw.ustring.match( value, &amp;quot;(%d+). milenio&amp;quot; ) -- WD:&amp;#039;mm. milenio AED&amp;#039;&lt;br /&gt;
				if m then&lt;br /&gt;
					margin = 1000&lt;br /&gt;
					number = ( tonumber( m ) - 1 ) * margin&lt;br /&gt;
					result = &amp;#039;el &amp;#039; .. convertArabicToRoman( m ) .. &amp;#039; milenio&amp;#039;&lt;br /&gt;
				else&lt;br /&gt;
					result = nil -- error&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		elseif mw.ustring.match( value, &amp;quot;siglo&amp;quot; ) then&lt;br /&gt;
			local c = mw.ustring.match( value, &amp;quot;(%d+)%. siglo&amp;quot; ) -- WD:&amp;#039;cc. siglo AED&amp;#039;&lt;br /&gt;
			if c then&lt;br /&gt;
				margin = 100&lt;br /&gt;
				number = ( tonumber( c ) - 1 ) * margin&lt;br /&gt;
				result = &amp;#039;el siglo &amp;#039; .. convertArabicToRoman( c )&lt;br /&gt;
			else&lt;br /&gt;
				c = mw.ustring.match( value, &amp;quot;siglo (%a+)&amp;quot; ) -- &amp;#039;el siglo CC&amp;#039;, roman&lt;br /&gt;
				if c then&lt;br /&gt;
					margin = 100&lt;br /&gt;
					number = ( convertRomanToArabic( c ) - 1 ) * margin&lt;br /&gt;
					result = &amp;#039;el siglo &amp;#039; .. c&lt;br /&gt;
				else&lt;br /&gt;
					result = nil -- error&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		elseif mw.ustring.match( value, &amp;quot;años&amp;quot; )&lt;br /&gt;
			or mw.ustring.match( value, &amp;quot;%d+s&amp;quot; ) then&lt;br /&gt;
			local d = mw.ustring.match( value, &amp;quot;años (%d+)&amp;quot; ) -- &amp;#039;años yyyy&amp;#039;&lt;br /&gt;
					or mw.ustring.match( value, &amp;quot;(%d+)s&amp;quot; ) -- WD:&amp;#039;2020s AED&amp;#039;&lt;br /&gt;
			if d then&lt;br /&gt;
				margin = 10&lt;br /&gt;
				number = tonumber( d )&lt;br /&gt;
				result = &amp;#039;los años &amp;#039; .. number&lt;br /&gt;
			else&lt;br /&gt;
				result = nil -- error&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			local y = mw.ustring.match( value, &amp;quot;^%d+ %a+ (%d+)&amp;quot; ) -- &amp;#039;dd mmm aaaa&amp;#039;&lt;br /&gt;
				   or mw.ustring.match( value, &amp;quot;^%a+ (%d+)&amp;quot; ) -- &amp;#039;mmm aaaa&amp;#039;&lt;br /&gt;
				   or mw.ustring.match( value, &amp;quot;^(%d+)&amp;quot; ) -- &amp;#039;aaaa&amp;#039;&lt;br /&gt;
			if y then&lt;br /&gt;
				margin = 1&lt;br /&gt;
				number = tonumber( y )&lt;br /&gt;
				result = number&lt;br /&gt;
			else&lt;br /&gt;
				result = nil -- error&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if result&lt;br /&gt;
		and (  mw.ustring.match( value, &amp;quot;a%. C%.&amp;quot; )&lt;br /&gt;
			or mw.ustring.match( value, &amp;quot;a%.%se%.%sc%.&amp;quot; )&lt;br /&gt;
			or mw.ustring.match( value, &amp;quot;^%-&amp;quot; )&lt;br /&gt;
			or mw.ustring.match( value, &amp;quot;AEC&amp;quot; )&lt;br /&gt;
			or mw.ustring.match( value, &amp;quot;BCE?$&amp;quot; ) ) then&lt;br /&gt;
			number = -number&lt;br /&gt;
			result = result .. &amp;#039; a. C.&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		result = false -- empty value&lt;br /&gt;
	end&lt;br /&gt;
	return result, number, margin&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.catLivingStatus( birthdate, deathdate, noerrors )&lt;br /&gt;
	local wd = mw.wikibase.getEntityObject()&lt;br /&gt;
	local categories, errors = &amp;#039;&amp;#039;, &amp;#039;&amp;#039;&lt;br /&gt;
	-- Birth date&lt;br /&gt;
	local result1, number1, margin1 = getDateStruct(wd, birthdate, &amp;#039;P569&amp;#039;, filterBirthDate)&lt;br /&gt;
	-- Death date&lt;br /&gt;
	local result2, number2, margin2 = getDateStruct(wd, deathdate, &amp;#039;P570&amp;#039;, filterDeathDate)&lt;br /&gt;
	-- Living status&lt;br /&gt;
	local living&lt;br /&gt;
	if	( result2 == &amp;#039;&amp;#039; and not filterLiveState( margin2 ) )&lt;br /&gt;
	or	( result2 ~= &amp;#039;&amp;#039; and result2 )&lt;br /&gt;
	then&lt;br /&gt;
		living = false -- sure&lt;br /&gt;
	elseif result1 and result1 ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		if number1 &amp;lt; 0 then&lt;br /&gt;
			living = false -- sure&lt;br /&gt;
		elseif number1 then&lt;br /&gt;
			living = true -- maybe&lt;br /&gt;
			local curYear = tonumber(os.date( &amp;quot;%Y&amp;quot; ))&lt;br /&gt;
			local maxLive = (number1 + margin1 + 130)&lt;br /&gt;
			if curYear &amp;gt; maxLive then&lt;br /&gt;
				living = false&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Categories&lt;br /&gt;
	if result1 == nil then&lt;br /&gt;
		errors = error(&amp;#039;fecha de nacimiento no válida&amp;#039;)&lt;br /&gt;
		categories = categories .. &amp;#039;[[Categoría:Nacidos en año desconocido]]&amp;#039; -- unknow because not valid&lt;br /&gt;
	elseif result1 == false then&lt;br /&gt;
		errors = errors .. &amp;#039;[[Categoría:Wikipedia:Artículos con plantilla NF sin fechas]]&amp;#039;&lt;br /&gt;
		categories = categories .. &amp;#039;[[Categoría:Nacidos en año desconocido]]&amp;#039; -- unknow because not set&lt;br /&gt;
	elseif result1 == &amp;#039;&amp;#039; then&lt;br /&gt;
		categories = categories .. &amp;#039;[[Categoría:Nacidos en año desconocido]]&amp;#039; -- known to be unknown&lt;br /&gt;
	else -- valid value&lt;br /&gt;
		categories = categories .. &amp;#039;[[Categoría:Nacidos en &amp;#039; .. result1 .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if result2 == nil then&lt;br /&gt;
		errors = error(&amp;#039;fecha de fallecimiento no válida&amp;#039;)&lt;br /&gt;
		-- categories = categories .. &amp;#039;[[Categoría:Fallecidos en año desconocido]]&amp;#039; -- unknow because not valid&lt;br /&gt;
	elseif result2 == false then&lt;br /&gt;
		if living then&lt;br /&gt;
			categories = categories .. &amp;#039;[[Categoría:Personas vivas]]&amp;#039;&lt;br /&gt;
		elseif living == false then -- can be unknown&lt;br /&gt;
			errors = errors .. &amp;#039;[[Categoría:Wikipedia:Artículos con plantilla NF sin fechas]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif result2 == &amp;#039;&amp;#039; then&lt;br /&gt;
		if filterLiveState( margin2 ) then&lt;br /&gt;
			if living == false then&lt;br /&gt;
				categories = categories .. &amp;#039;[[Categoría:Fallecidos en año desconocido]]&amp;#039; -- unknow because not set&lt;br /&gt;
				errors = errors .. &amp;#039;[[Categoría:Wikipedia:Artículos con plantilla NF sin fechas]]&amp;#039;&lt;br /&gt;
				errors = errors .. &amp;#039;[[Categoría:Wikipedia:Artículos con problema en la plantilla NF]]&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			categories = categories .. &amp;#039;[[Categoría:Fallecidos en año desconocido]]&amp;#039; -- known to be unknown&lt;br /&gt;
		end&lt;br /&gt;
	else -- valid value&lt;br /&gt;
		categories = categories .. &amp;#039;[[Categoría:Fallecidos en &amp;#039; .. result2 .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if noerrors then&lt;br /&gt;
		return categories&lt;br /&gt;
	end&lt;br /&gt;
	return categories .. errors&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	@name	sortKey&lt;br /&gt;
	@global	none&lt;br /&gt;
	@param	value&lt;br /&gt;
	@return	string&lt;br /&gt;
	@descr	Genera la clave de ordenación del nombre de una persona, a través de&lt;br /&gt;
			los datos obtenidos automáticamente de Wikidata según sus diferentes&lt;br /&gt;
			propiedades.&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
function p.sortKey( value )&lt;br /&gt;
	local wd = mw.wikibase.getEntityObject()&lt;br /&gt;
	local sortkey = &amp;#039;&amp;#039;&lt;br /&gt;
	if value and value ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		sortkey = value&lt;br /&gt;
	elseif wd and&lt;br /&gt;
		-- wd:formatPropertyValues( &amp;#039;P31&amp;#039; ).value == &amp;#039;ser humano&amp;#039;&lt;br /&gt;
		-- wd.claims.P31[1].mainsnak.datavalue.value.id == &amp;#039;Q5&amp;#039;&lt;br /&gt;
		safereadtable(wd, &amp;#039;claims&amp;#039;, &amp;#039;P31&amp;#039;, 1, &amp;#039;mainsnak&amp;#039;, &amp;#039;datavalue&amp;#039;, &amp;#039;value&amp;#039;, &amp;#039;id&amp;#039;) == &amp;#039;Q5&amp;#039;&lt;br /&gt;
	then&lt;br /&gt;
		local givenname = wd:formatPropertyValues( &amp;#039;P734&amp;#039; ).value&lt;br /&gt;
		local familyname = wd:formatPropertyValues( &amp;#039;P735&amp;#039; ).value&lt;br /&gt;
		local secondfamilyname = wd:formatPropertyValues( &amp;#039;P1950&amp;#039; ).value&lt;br /&gt;
		-- local birthname = wd:formatPropertyValues( &amp;#039;P1477&amp;#039; ).value&lt;br /&gt;
		if familyname and familyname~= &amp;#039;&amp;#039; then&lt;br /&gt;
			sortkey = familyname&lt;br /&gt;
			if secondfamilyname and secondfamilyname ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				sortkey = sortkey .. &amp;#039; &amp;#039; .. secondfamilyname&lt;br /&gt;
			end&lt;br /&gt;
			if givenname and givenname ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				sortkey = sortkey .. &amp;#039;, &amp;#039; .. givenname&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- try roman format&lt;br /&gt;
			local nomen = wd:formatPropertyValues( &amp;#039;P2359&amp;#039; ).value&lt;br /&gt;
			local cognomen = wd:formatPropertyValues( &amp;#039;P2365&amp;#039; ).value&lt;br /&gt;
			local praenomen = wd:formatPropertyValues( &amp;#039;P2358&amp;#039; ).value&lt;br /&gt;
			local unkval, notval = &amp;#039;valor desconocido&amp;#039;, &amp;#039;sin valor&amp;#039;&lt;br /&gt;
			nomen = nomen:gsub(unkval, &amp;#039;&amp;#039;):gsub(notval, &amp;#039;&amp;#039;):gsub(&amp;#039;^, &amp;#039;, &amp;#039;&amp;#039;):gsub(&amp;#039;, , &amp;#039;, &amp;#039;, &amp;#039;)&lt;br /&gt;
			cognomen = cognomen:gsub(unkval, &amp;#039;&amp;#039;):gsub(notval, &amp;#039;&amp;#039;):gsub(&amp;#039;^, &amp;#039;, &amp;#039;&amp;#039;):gsub(&amp;#039;, , &amp;#039;, &amp;#039;, &amp;#039;)&lt;br /&gt;
			praenomen = praenomen:gsub(unkval, &amp;#039;&amp;#039;):gsub(notval, &amp;#039;&amp;#039;):gsub(&amp;#039;^, &amp;#039;, &amp;#039;&amp;#039;):gsub(&amp;#039;, , &amp;#039;, &amp;#039;, &amp;#039;)&lt;br /&gt;
			if nomen and nomen ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				sortkey = nomen&lt;br /&gt;
				if cognomen and cognomen ~= &amp;#039;&amp;#039; then&lt;br /&gt;
					sortkey = sortkey .. &amp;#039; &amp;#039; .. cognomen&lt;br /&gt;
				end&lt;br /&gt;
				if praenomen and praenomen ~= &amp;#039;&amp;#039; then&lt;br /&gt;
					sortkey = sortkey .. &amp;#039;, &amp;#039; .. praenomen&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return sortkey&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	@main&lt;br /&gt;
	@global	require(&amp;#039;Módulo:Argumentos&amp;#039;)&lt;br /&gt;
			require(&amp;#039;Módulo:Control de autoridades&amp;#039;)&lt;br /&gt;
			require(&amp;#039;Módulo:Roman&amp;#039;)&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
function p.main ( frame )&lt;br /&gt;
	local getArgs = require(&amp;#039;Módulo:Argumentos&amp;#039;).obtenerArgumentosConValor&lt;br /&gt;
	local args = getArgs( frame )&lt;br /&gt;
&lt;br /&gt;
	-- Authority control&lt;br /&gt;
	local authorityControl = require(&amp;#039;Módulo:Control de autoridades&amp;#039;).authorityControl&lt;br /&gt;
	local result = authorityControl(frame) .. &amp;#039;\n&amp;#039; -- frame:preprocess(&amp;#039;{{Control de autoridades}}\n&amp;#039;)&lt;br /&gt;
	local ns = mw.title.getCurrentTitle().namespace&lt;br /&gt;
	if ns ~= 0 then&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Sex/Gender&lt;br /&gt;
	result = result .. p.catSexGenderIdentity()&lt;br /&gt;
&lt;br /&gt;
	-- Living status&lt;br /&gt;
	result = result .. p.catLivingStatus( args and args[1], args and args[2] )&lt;br /&gt;
&lt;br /&gt;
	-- Sort key&lt;br /&gt;
	local sortkey = p.sortKey( args and args[3] )&lt;br /&gt;
	if sortkey and sortkey ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		result = result .. frame:preprocess(&amp;#039;{{ORDENAR:&amp;#039; .. sortkey .. &amp;#039;}}\n&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- NF&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Plantilla&gt;Leoncastro</name></author>
	</entry>
</feed>