Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Portada
mantenimiento
Páginas nuevas
Página aleatoria
Cambios recientes
Páginas especiales
Ayuda
Comunidad
Portal de la comunidad
Centro de reportes
Tablón de solicitudes
Tutorial de edición
Políticas
Buscar
Buscar
Apariencia
Crear una cuenta
Acceder
Herramientas personales
Crear una cuenta
Acceder
Páginas para editores desconectados
más información
Contribuciones
Discusión
Edición de «
Módulo:NF
»
Módulo
Discusión
English
Leer
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar código
Ver historial
Actualizar
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Enlace corto
En otros proyectos
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
local p = {} local function error ( msg ) return '<strong class="error">Error: ' .. msg .. '</strong>' .. '[[Categoría:Wikipedia:Artículos con problema en la plantilla NF]]' end local function safereadtable ( ... ) local arg = {...} local key = arg and arg[1] for i = 2, #arg do local val = arg[i] if key == nil or val == nil then key = nil break else key = key[val] end end return key end --[[ @name catSexGenderIdentity @global none @param none @return wikitext (categories) @descr Genera las categorías relacionadas con el sexo o género de una persona en función de los datos obtenidos de Wikidata según su propiedad P21. --]] function p.catSexGenderIdentity() local wd = mw.wikibase.getEntityObject() if wd and -- wd:formatPropertyValues( 'P31' ).value == 'ser humano' -- wd.claims.P31[1].mainsnak.datavalue.value.id == 'Q5' safereadtable(wd, 'claims', 'P31', 1, 'mainsnak', 'datavalue', 'value', 'id') == 'Q5' then --[==[ Main categories are: [[Categoría:Hombres]] [[Categoría:Mujeres]] [[Categoría:Personas intersexo]] [[Categoría:Mujeres transgénero]] [[Categoría:Hombres transgénero]] [[Categoría:Personas no binarias]] [[Categoría:Personas agénero]] [[Categoría:Personas de género fluido]] [[Categoría:Travestis]] [[Categoría:Personas no categorizadas por sexo]] --]==] --[==[ valid sex/genders located in Wikidata: ]==]-- local validsexgenders = { -- -- see https://www.wikidata.org/wiki/Property:P21#P2302 -- ['IDENTIFIER'] --[[ ['TEXT LABEL'] --]] = 'CATEGORY', ['Q6581097'] --[[ ['masculino'] --]] = 'Hombres', ['Q6581072'] --[[ ['femenino'] --]] = 'Mujeres', ['Q1097630'] --[[ ['intersexual'] --]] = 'Personas intersexo', ['Q1052281'] --[[ ['mujer transgénero'] --]] = 'Mujeres transgénero', ['Q2449503'] --[[ ['hombre transgénero'] --]] = 'Hombres transgénero', ['Q48270'] --[[ ['género no-binario'] --]] = 'Personas no binarias', ['Q1399232'] --[[ ["fa'afafine"] --]] = 'Personas no binarias', -- third gender in Samoan culture ['Q3277905'] --[[ ['māhū'] --]] = 'Personas no binarias', -- third gender in traditional Hawaiian, Kanaka and Maohi cultures ['Q746411'] --[[ ['kathoey'] --]] = 'Personas no binarias', -- third gender in Thai culture ['Q350374'] --[[ ['fakaleiti'] --]] = 'Personas no binarias', -- third gender in Tongan culture ['Q660882'] --[[ ['hijra'] --]] = 'Personas no binarias', -- third gender of South Asian cultures ['Q44148'] --[[ ['macho'] --]] = nil, -- non-human ['Q43445'] --[[ ['hembra'] --]] = nil, -- non-human -- 'unknown value' or 'valor desconocido' -- 'no value' or 'sin valor' ['Q301702'] --[[ ['dos espíritus'] --]] = 'Personas no binarias', -- third gender in the indigenous North American cultures ['Q27679766'] --[[ ['transmasculino'] --]] = 'Hombres transgénero', ['Q27679684'] --[[ ['transfemenino'] --]] = 'Mujeres transgénero', ['Q3177577'] --[[ ['muxe'] --]] = 'Mujeres transgénero', -- third gender in Zapotec culture ['Q28873047'] --[[ ['organismo intersexual'] --]] = nil, -- non-human ['Q505371'] --[[ ['agénero'] --]] = 'Personas agénero', ['Q12964198'] --[[ ['genderqueer'] --]] = 'Personas no binarias', ['Q18116794'] --[[ ['género fluido'] --]] = 'Personas de género fluido', ['Q1289754'] --[[ ['neutro'] --]] = 'Personas no binarias', ['Q179294'] --[[ ['eunuco'] --]] = 'Hombres', ['Q7130936'] --[[ ['pangénero'] --]] = 'Personas no binarias', ['Q64017034'] --[[ ['cogenitor'] --]] = nil, -- fictional, non-human ['Q52261234'] --[[ ['sexo neutro'] --]] = 'Personas no binarias', ['Q16674976'] --[[ ['hermafroditismo'] --]] = nil, -- non-human ['Q15145779'] --[[ ['mujer cisgénero'] --]] = 'Mujeres', ['Q15145778'] --[[ ['hombre cisgénero'] --]] = 'Hombres', ['Q48279'] --[[ ['tercer sexo'] --]] = 'Personas no binarias', ['Q96000630'] --[[ ['X-gender'] --]] = 'Personas no binarias', ['Q93954933'] --[[ ['demiboy'] --]] = 'Personas no binarias', ['Q93955709'] --[[ ['demigirl'] --]] = 'Personas no binarias', ['Q859614'] --[[ ['bigénero'] --]] = 'Personas no binarias', ['Q189125'] --[[ ['transgénero'] --]] = 'Personas transgénero', ['Q17148251'] --[[ ['travesti'] --]] = 'Travestis', ['Q4700377'] --[[ ["'akava'ine"] --]] = 'Personas no binarias', -- third gender in Cook Islands culture ['Q56315990'] --[[ ['asignado mujer'] --]] = 'Mujeres', ['Q25388691'] --[[ ['asignado hombre'] --]] = 'Hombres', ['Q97595519'] --[[ ['androginia'] --]] = nil, ['Q8053770'] --[[ ['Yinyang ren'] --]] = nil, ['Q99519347'] --[[ ['boi'] --]] = nil, ['Q104717073'] --[[ ['persona intersexo'] --]] = 'Personas intersexo', ['Q430711'] --[[ ['ginandromorfismo'] --]] = nil, -- non-human ['Q7677449'] --[[ ['takatāpui'] --]] = 'Personas no binarias', -- third gender in Maori culture ['Q113124952'] --[[ ['no especificado'] --]] = 'Personas no categorizadas por sexo', ['Q107427210'] --[[ ['Fakafifine'] --]] = 'Personas no binarias', -- third gender in Niue culture ['Q112597587'] --[[ ['fakafafine'] --]] = 'Personas no binarias', -- third gender in Niue culture (duplicated?) ['Q88293285'] --[[ ['by the player'] --]] = nil, -- fictional ['Q116254116'] --[[ ['not disclosed in work'] --]] = nil, -- fictional ['Q4759445'] --[[ ['androginia'] --]] = nil, ['Q121307094'] --[[ ['hombre intersexo'] --]] = 'Hombres intersexo', ['Q121307100'] --[[ ['mujer intersexo'] --]] = 'Mujeres intersexo', ['Q121368243'] --[[ ['demimasc'] --]] = nil, ['Q121368243'] --[[ ['futanari'] --]] = nil, -- fictional ['Q59592239'] --[[ ['altersexo'] --]] = nil, -- fictional ['Q116741172'] --[[ ['sexo desconocido'] --]] = nil, -- same as undisclosed, unknown, unlabeled or unspecified gender (Q113124952) ? ['Q124637723'] --[[ ['gender agnostic'] --]] = nil, } -- local sexgenderval = wd.claims.P21[1].mainsnak.datavalue.value.id -- wd:formatPropertyValues( 'P21' ).value local sexgenderval = safereadtable( wd, 'claims', 'P21', 1, 'mainsnak', 'datavalue', 'value', 'id') local sexgendercat = validsexgenders[ sexgenderval ] or 'Personas no categorizadas por sexo' return '[[Categoría:' .. sexgendercat .. ']]' end return '' -- non-human end --[[ @name catLivingStatus @global require('Módulo:Roman') @param birthdate, deathdate, no errors @return wikitext (categories and [optionally] errors) @descr Genera las categorías relacionadas con el nacimiento y fallecimiento de una persona, así como identifica si está viva, en función de los datos proporcionados como parámetro o los obtenidos automáticamente de Wikidata según sus propiedades P569 y P570. @aux filterBirthDate, filterLiveState, filterDeathDate, getDateStruct --]] local function filterBirthDate( value ) return mw.ustring.match( mw.ustring.upper( value ), "MISSING" ) or mw.ustring.match( mw.ustring.upper( value ), "UNKNOWN" ) or mw.ustring.match( value, "%?" ) or mw.ustring.match( value, "año desconocido" ) or mw.ustring.match( value, "valor desconocido" ) end local function filterLiveState( value ) return mw.ustring.match( mw.ustring.upper( value ), "LIVING" ) or mw.ustring.match( mw.ustring.upper( value ), "VIVA" ) end local function filterDeathDate( value ) return filterLiveState( value ) or filterBirthDate( value ) end local function getDateStruct( wd, arg, prop, filter ) local result, number, margin -- string, integer, precision-like value local value local ModuloRoman = require('Módulo:Roman') local convertArabicToRoman = ModuloRoman._Numeral -- convertArabicToRoman local convertRomanToArabic = ModuloRoman.toArabic -- convertRomanToArabic if arg and arg ~= '' then value = mw.text.trim( arg ) elseif wd and -- wd:formatPropertyValues( 'P31' ).value == 'ser humano' -- wd.claims.P31[1].mainsnak.datavalue.value.id == 'Q5' safereadtable(wd, 'claims', 'P31', 1, 'mainsnak', 'datavalue', 'value', 'id') == 'Q5' then value = wd:formatPropertyValues( prop ).value end if value and value ~= '' then local err, val if filter and type(filter) == 'function' then err, val = pcall( filter, value ) end if err and val then margin = value -- number = 0 result = '' -- not nil, it is valid but filtered elseif mw.ustring.match( value, "milenio" ) then local m = mw.ustring.match( value, "(%a+) milenio" ) -- 'el MM milenio', roman if m then margin = 1000 number = ( convertRomanToArabic( m ) - 1 ) * margin result = 'el ' .. m .. ' milenio' else m = mw.ustring.match( value, "(%d+). milenio" ) -- WD:'mm. milenio AED' if m then margin = 1000 number = ( tonumber( m ) - 1 ) * margin result = 'el ' .. convertArabicToRoman( m ) .. ' milenio' else result = nil -- error end end elseif mw.ustring.match( value, "siglo" ) then local c = mw.ustring.match( value, "(%d+)%. siglo" ) -- WD:'cc. siglo AED' if c then margin = 100 number = ( tonumber( c ) - 1 ) * margin result = 'el siglo ' .. convertArabicToRoman( c ) else c = mw.ustring.match( value, "siglo (%a+)" ) -- 'el siglo CC', roman if c then margin = 100 number = ( convertRomanToArabic( c ) - 1 ) * margin result = 'el siglo ' .. c else result = nil -- error end end elseif mw.ustring.match( value, "años" ) or mw.ustring.match( value, "%d+s" ) then local d = mw.ustring.match( value, "años (%d+)" ) -- 'años yyyy' or mw.ustring.match( value, "(%d+)s" ) -- WD:'2020s AED' if d then margin = 10 number = tonumber( d ) result = 'los años ' .. number else result = nil -- error end else local y = mw.ustring.match( value, "^%d+ %a+ (%d+)" ) -- 'dd mmm aaaa' or mw.ustring.match( value, "^%a+ (%d+)" ) -- 'mmm aaaa' or mw.ustring.match( value, "^(%d+)" ) -- 'aaaa' if y then margin = 1 number = tonumber( y ) result = number else result = nil -- error end end if result and ( mw.ustring.match( value, "a%. C%." ) or mw.ustring.match( value, "a%.%se%.%sc%." ) or mw.ustring.match( value, "^%-" ) or mw.ustring.match( value, "AEC" ) or mw.ustring.match( value, "BCE?$" ) ) then number = -number result = result .. ' a. C.' end else result = false -- empty value end return result, number, margin end function p.catLivingStatus( birthdate, deathdate, noerrors ) local wd = mw.wikibase.getEntityObject() local categories, errors = '', '' -- Birth date local result1, number1, margin1 = getDateStruct(wd, birthdate, 'P569', filterBirthDate) -- Death date local result2, number2, margin2 = getDateStruct(wd, deathdate, 'P570', filterDeathDate) -- Living status local living if ( result2 == '' and not filterLiveState( margin2 ) ) or ( result2 ~= '' and result2 ) then living = false -- sure elseif result1 and result1 ~= '' then if number1 < 0 then living = false -- sure elseif number1 then living = true -- maybe local curYear = tonumber(os.date( "%Y" )) local maxLive = (number1 + margin1 + 130) if curYear > maxLive then living = false end end end -- Categories if result1 == nil then errors = error('fecha de nacimiento no válida') categories = categories .. '[[Categoría:Nacidos en año desconocido]]' -- unknown because not valid elseif result1 == false then errors = errors .. '[[Categoría:Wikipedia:Artículos con plantilla NF sin fechas]]' categories = categories .. '[[Categoría:Nacidos en año desconocido]]' -- unknown because not set elseif result1 == '' then categories = categories .. '[[Categoría:Nacidos en año desconocido]]' -- known to be unknown else -- valid value categories = categories .. '[[Categoría:Nacidos en ' .. result1 .. ']]' end if result2 == nil then errors = error('fecha de fallecimiento no válida') -- categories = categories .. '[[Categoría:Fallecidos en año desconocido]]' -- unknown because not valid elseif result2 == false then if living then categories = categories .. '[[Categoría:Personas vivas]]' elseif living == false then -- can be unknown errors = errors .. '[[Categoría:Wikipedia:Artículos con plantilla NF sin fechas]]' end elseif result2 == '' then if filterLiveState( margin2 ) then if living == false then categories = categories .. '[[Categoría:Fallecidos en año desconocido]]' -- unknown because not set errors = errors .. '[[Categoría:Wikipedia:Artículos con plantilla NF sin fechas]]' errors = errors .. '[[Categoría:Wikipedia:Artículos con problema en la plantilla NF]]' end else categories = categories .. '[[Categoría:Fallecidos en año desconocido]]' -- known to be unknown end else -- valid value categories = categories .. '[[Categoría:Fallecidos en ' .. result2 .. ']]' end if noerrors then return categories end return categories .. errors end --[[ @name sortKey @global none @param value @return string @descr Genera la clave de ordenación del nombre de una persona, a través de los datos obtenidos automáticamente de Wikidata según sus diferentes propiedades. --]] function p.sortKey( value ) local wd = mw.wikibase.getEntityObject() local sortkey = '' if value and value ~= '' then sortkey = value elseif wd and -- wd:formatPropertyValues( 'P31' ).value == 'ser humano' -- wd.claims.P31[1].mainsnak.datavalue.value.id == 'Q5' safereadtable(wd, 'claims', 'P31', 1, 'mainsnak', 'datavalue', 'value', 'id') == 'Q5' then local givenname = wd:formatPropertyValues( 'P734' ).value local familyname = wd:formatPropertyValues( 'P735' ).value local secondfamilyname = wd:formatPropertyValues( 'P1950' ).value -- local birthname = wd:formatPropertyValues( 'P1477' ).value if familyname and familyname~= '' then sortkey = familyname if secondfamilyname and secondfamilyname ~= '' then sortkey = sortkey .. ' ' .. secondfamilyname end if givenname and givenname ~= '' then sortkey = sortkey .. ', ' .. givenname end else -- try roman format local nomen = wd:formatPropertyValues( 'P2359' ).value local cognomen = wd:formatPropertyValues( 'P2365' ).value local praenomen = wd:formatPropertyValues( 'P2358' ).value local unkval, notval = 'valor desconocido', 'sin valor' nomen = nomen:gsub(unkval, ''):gsub(notval, ''):gsub('^, ', ''):gsub(', , ', ', ') cognomen = cognomen:gsub(unkval, ''):gsub(notval, ''):gsub('^, ', ''):gsub(', , ', ', ') praenomen = praenomen:gsub(unkval, ''):gsub(notval, ''):gsub('^, ', ''):gsub(', , ', ', ') if nomen and nomen ~= '' then sortkey = nomen if cognomen and cognomen ~= '' then sortkey = sortkey .. ' ' .. cognomen end if praenomen and praenomen ~= '' then sortkey = sortkey .. ', ' .. praenomen end end end end return sortkey end --[[ @main @global require('Módulo:Argumentos') require('Módulo:Control de autoridades') require('Módulo:Roman') --]] function p.main ( frame ) local getArgs = require('Módulo:Argumentos').obtenerArgumentosConValor local args = getArgs( frame ) -- Authority control local authorityControl = require('Módulo:Control de autoridades').authorityControl local result = authorityControl(frame) .. '\n' -- frame:preprocess('{{Control de autoridades}}\n') local ns = mw.title.getCurrentTitle().namespace if ns ~= 0 then return result end -- Sex/Gender result = result .. p.catSexGenderIdentity() -- Living status result = result .. p.catLivingStatus( args and args[1], args and args[2] ) -- Sort key local sortkey = p.sortKey( args and args[3] ) if sortkey and sortkey ~= '' then result = result .. frame:preprocess('{{ORDENAR:' .. sortkey .. '}}\n') end -- NF return result end return p
Resumen:
Ten en cuenta que todas las contribuciones a Netxipedia se consideran publicadas bajo la Creative Commons Atribución-CompartirIgual (véase
Netxipedia:Derechos de autor
para más información). Si no deseas que las modifiquen sin limitaciones y las distribuyan libremente, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre.
¡No uses textos con copyright sin permiso!
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Plantilla usada en esta página:
Módulo:NF/doc
(
editar
)
Buscar
Buscar
Edición de «
Módulo:NF
»
Añadir tema