Módulo:Wikidata/Formatos
Apariencia
La documentación para este módulo puede ser creada en Módulo:Wikidata/Formatos/doc
local p = {}
local an = mw.language.new('an')
local moduloTablas = require('Módulo:Tablas')
local elementoTabla = moduloTablas.elemento
local enTabla = moduloTablas.en
local insertarEnTabla = moduloTablas.insertar
local moduloWikidata = require('Módulo:Wikidata')
local getPropiedatWikidata = moduloWikidata.getPropiedat
local formatoDatoWikidata = moduloWikidata.formatoDato
local enlazarURL = require('Módulo:URL').enlazar
function p.formatCoor(value)
local cadenacoor = value
return marco:preprocess('{{coord|' .. cadenacoor[tostring('latitude')] ..'|'.. cadenacoor[tostring('longitude')] .. '|format=dms}}')
end
-- Funciones pa entidates de Wikidata
function p.formatoChentilicio(valor, opcions, frame)
local enlacePais, etiquetaPais, idEntidadPais = p.obtenerDatos(valor)
local chentilicio
if etiquetaPais then
chentilicio = frame:preprocess('{{chentilicio|'.. etiquetaPais .. '|fs}}')
if not chentilicio or chentilicio == '' then
chentilicio = etiquetaPais
end
end
return p.enlazar(enlacePais, chentilicio, idEntidadPais, opcions)
end
function plural(texto)
if texto:match('^.*[aeiou]$') then -- 'hombre' => 'hombres', 'metro' => 'metros'
texto = texto .. 's'
elseif texto:match('^.*[^s]$') then -- 'muller' => 'mullers', 'pascal' => 'pascals', (*) 'siemens' => 'siemens'
texto = texto .. 's'
end
return texto
end
function p.formatoUnidat(valor, opcions)
cantidat = mw.ustring.gsub(valor.value['amount'], '+','')
unidat = mw.wikibase.label(mw.ustring.gsub(valor.value['unit'], '^.-/(Q%d+)$', '%1'))
if unidat and tonumber(cantidat) > 1 then
textoUnidat = mw.ustring.gsub(unidat, '(%S+)', plural)
-- correccions especificas d'os plurals:
local correccions = {
['caballos des vapores'] = 'caballos de vapor',
['galóns'] = 'galons',
['anyos luzes'] = 'anyos luz',
['párseces'] = 'pársecs',
['metros cubicos pores segundos'] = 'metros cubicos por segundo',
}
textoUnidat = correccions[textoUnidat] or textoUnidat
end
if not unidat or (opcions['formatoUnidat'] and opcions['formatoUnidat'] == 'numero') then
return tonumber(cantidat)
elseif unidat and opcions['formatoUnidat'] and opcions['formatoUnidat'] == 'minutos' and unidat == 'segundo' then
local segundos = tostring(tonumber(cantidat)%60)
if mw.ustring.len(segundos) == 1 then segundos = '0' .. segundos end
return math.floor(tonumber(cantidat)/60) .. ':' .. segundos .. ' ' .. 'minutos'
else
return p.formatoNumero(cantidat) .. ((textoUnidat and ' ' .. textoUnidat) or '')
end
end
function p.formatoNumero(valor, opcions)
if valor['amount'] then valor = mw.ustring.gsub(valor['amount'], '+', '') end
if not tonumber(valor) then return valor end
local formato = valor
while true do
formato, k = string.gsub(formato, "^(-?%d+)(%d%d%d)", '%1 %2')
if (k==0) then
break
end
end
return formato
end
-- :: Funcions experimentales
-- Función pa obtener o wikitexto a partir d'una entidat de Wikidata perteneixient a una unidat
-- @param string val a entidat de Wikidata (con URL)
-- @return string o wikitexto, de trobar-se a valor correspondient
function p.getUnit(val)
local vals = mw.loadData('Módulo:Wikidata/unidatz/datos')
q = string.sub(val, 32)
return vals[q]
end
-- Alternativa a formatoUnidat()
-- @param table obchecto l'obchecto datavalue
-- @param table opcions una lista d'opcions. As opcions aceptadas son:
-- * string deseparador un deseparador (espacio duro por defecto)
-- * bool izquierda si colocar a unidat a a izquierda (por defecto va a la dreita)
function p.formatoUnidat2(objecto, opcions)
local Valor = elementoTabla(objecto, 'value')
local Tipo = elementoTabla(objecto, 'type')
if Tipo == 'quantity' then
if not opcions then opcions = {} end
local Deseparador = opcions['deseparador'] or ' '
local Izquierda = opcions['izquierda']
local Unidat = (function()
local Unidat = elementoTabla(Valor, 'unit')
if Unidat then return p.getUnit(Unidat .. '-plural') or p.getUnit(Unidat) end
end)()
if Unidat then
Valor = p.formatoNumero2(string.sub(elementoTabla(Valor, 'amount'), 2))
if Izquierda then return Unidat .. Deseparador .. Valor end
return Valor .. Deseparador .. Unidat
end
end
return Valor
end
-- Función formatoNumero() alternativa.
-- Envoltura pa mw.language:formatNum(),
-- que permite tornar a valor entregada en cuentas de nil
-- @param num o numero, ya sea 'number' o 'string'
-- @return number a valor, en formato numerico
function p.formatoNumero2(valor, opcions)
if not tonumber(valor) then return valor end
if not opcions then opcions = {} end
local Decimals = tonumber(opcions['decimals'])
if opcions['noCommafy'] then noCommafy = true end
if tonumber(Decimals) then return es:formatNum(tonumber(math.floor(valor * (10^Decimals)) / (10^Decimals)), noCommafy) end
return es:formatNum(tonumber(valor, noCommafy))
end
function p.formatoCargo(valor, opcions, frame, calificativos)
local enlaceCargo, etiquetaCargo, idEntidatCargo = p.obtenerDatos(valor)
local cargoEnlazau = p.enlazar(enlaceCargo, etiquetaCargo, idEntidatCargo, opcions)
if not cargoEnlazau then
return
end
-- De
local enlaceDe, etiquetaDe, idEntidatDe = p.obtenerDatos(elementoTabla(calificativos,'P642',1,'datavalue','value'))
local deEnlazau = p.enlazar(enlaceDe, etiquetaDe, idEntidatDe, opcions)
if deEnlazau then
cargoEnlazau = cargoEnlazau .. ' de ' .. deEnlazau
end
-- Districto electoral
local enlaceDistrictoElectoral, etiquetaDistrictoElectoral, idEntidatDistrictoElectoral = p.obtenerDatos(elementoTabla(calificativos,'P768',1,'datavalue','value'))
local DistrictoElectoralEnlazau = p.enlazar(enlaceDistritoElectoral, etiquetaDistrictoElectoral, idEntidatDistrictoElectoral, opcions)
if DistrictoElectoralEnlazau then
cargoEnlazau = cargoEnlazau .. ' por ' .. DistrictoElectoralEnlazau
end
-- Emplegador
local enlaceEmplegador, etiquetaEmpleador, idEntidatEmplegador = p.obtenerDatos(elementoTabla(calificativos,'P108',1,'datavalue','value'))
local EmplegadorEnlazau = p.enlazar(enlaceEmplegador, etiquetaEmpleador, idEntidatEmplegador, opcions)
if EmplegadorEnlazau then
cargoEnlazau = cargoEnlazau .. ' de ' .. EmplegadorEnlazau
end
local periodo = p.formatoPeriodo(calificativos, {})
if periodo then
return cargoEnlazau .. ' <small>(' .. periodo .. ')</small>'
else
return cargoEnlazau
end
end
-- Formatos de calificativos
function p.formatoPeriodo(valor, opcions)
if not valor then
return
end
local anyoInicio, anyoFin
local calendataInicio, calendataFin
local opcionsCalendata= {['formatoTexto']='mayúscla', ['formatoCalendata'] = 'anyo', ['enlace']='no'}
local calendatasInicio = valor['P580']
local calendatasFin = valor['P582']
local iCalendataInicio = 1
local iCalendataFin = 1
if not calendatasInicio and not calendatasFin then
return
end
local periodos = {}
if calendatasInicio and calendatasInicio[1] then
--if true then return require('Módulo:Tablas').tostring(calendatasInicio[1]) end
anyoInicio = formatoDatoWikidata(calendatasInicio[1],opcionsCalendata , {})
calendataInicio= anyoInicio -- de momento
end
if calendatasFin and calendatasFin[1] then
anyoFin = formatoDatoWikidata(calendatasFin[1], opcionsCalendata, {})
calendataFin = anyoFin -- de momento
end
while calendataInicio or calendataFin do -- Por cada periodo
if calendataInicio and calendataFin and tonumber(calendataInicio) and tonumber(calendataFin) and (tonumber(calendataInicio) <= tonumber(calendataFin)) then
if anyoInicio == anyoFin then
table.insert(periodos, anyoInicio)
else
table.insert(periodos, anyoInicio .. '-' .. anyoFin)
end
iCalendataInicio = iCalendataInicio + 1
iCalendataFin = iCalendataFin + 1
if calendatasInicio[iCalendataInicio] then
anyoInicio = formatoDatoWikidata(calendatasInicio[iCalendataInicio],opcionsCalendata , {})
calendataInicio= anyoInicio -- de momento
else
anyoInicio = nil
calendataInicio= nil
end
if calendatasFin[iCalendataFin] then
anyoFin = formatoDatoWikidata(calendatasFin[iCalendataFin],opcionsCalendata , {})
calendataFin= anyoFin -- de momento
else
anyoFin = nil
calendataFin= nil
end
elseif anyoInicio then
table.insert(periodos, 'desde ' .. anyoInicio)
iCalendataInicio = iCalendataInicio + 1
if calendatasInicio[iCalendataInicio] then
anyoInicio = formatoDatoWikidata(calendatasInicio[iCalendataInicio],opcionsCalendata , {})
calendataInicio= anyoInicio -- de momento
else
anyoInicio = nil
calendataInicio= nil
end
elseif anyoFin then
table.insert(periodos, 'hasta ' .. anyoFin)
iCalendataFin = iCalendataFin + 1
if calendatasFin[iCalendataFin] then
anyoFin = formatoDatoWikidata(calendatasFin[iCalendataFin],opcionsCalendata , {})
calendataFin= anyoFin -- de momento
else
anyoFin = nil
calendataFin= nil
end
end
end
return table.concat(periodos, ', ')
end
-- Funcions internas
-- As siguients funcions fan practicament o mesmo que a función
-- formatoIdEntidat d\'o módulo Wikidata.
-- p.obtenerDatos obtiene os datos d\'a entidat y p.enlazar los formatea.
function p.obtenerDatos(valor)
if valor and valor['numeric-id'] then
local idEntidat = 'Q' .. valor['numeric-id']
local etiqueta = mw.wikibase.label( idEntidat )
local enlace = mw.wikibase.sitelink( idEntidat )
return enlace, etiqueta, idEntidat
end
end
function p.enlazarEnAtroIdioma(enlace, etiqueta, idioma)
local categoria = '[[Categoría:Biquipedia:Pachinas con propiedatz de Wikidata con etiqueta en atro idioma]]'
if enlace and etiqueta then
return etiqueta .. ' <small>([[:' .. idioma .. ':' .. enlace .. '|' .. idioma .. ']])</small>' .. categoria
elseif etiqueta then
return etiqueta .. ' <small>(' .. idioma .. ')</small>' .. categoria
elseif enlace then
return enlace .. ' <small>([[:' .. idioma .. ':' .. enlace .. '|' .. idioma .. ']])</small>' .. categoria
end
end
local yaEnlazau = {}
function p.enlazar(enlace, etiqueta, idEntidat, opcions)
if not enlace and not etiqueta and not idEntidat then
return
end
if opcions then
-- Opciones d'as etiquetas
if opcions.etiqueta and opcions.etiqueta ~= 'null' then -- Por averiguar a on s'usa.
etiqueta = opcions.etiqueta
end
--if opcions['espacioDeNombres'] then enlace = opcions['espacioDeNombres'] .. ':' .. enlace end
-- Convertir o primer carácter a mayúscla en o suyo caso
if etiqueta and opcions['mayúscla'] == 'sí' then
etiqueta = es:ucfirst(etiqueta)
end
-- Opciones de l'enlace
if opcions['enlace'] == 'no' then
-- No p.enlazar
enlace = nil
elseif opcions['debeExistir'] == 'sí' then
-- No tornar cosa si no ye informau l'artíclo de Biquipedia
if not enlace then
return
end
elseif opcions['enlace'] == 'sí' then
if not enlace and etiqueta and not require('Módulo:Pachinas').existe(etiqueta) then
-- Prener como enlace a etiqueta si no existe o correspondient artíclo
enlace = etiqueta
end
end
end
-- No enlazar quantas vegadas o mesmo
if enlace and yaEnlazau[enlace] then
enlace = nil
end
-- Seguntes siga informada a etiqueta u o enlace
local resultau
if etiqueta and enlace and etiqueta ~= enlace then --Os dos si no son iguals
resultau = '[[' .. enlace .. '|' .. etiqueta .. ']]'
yaEnlazau[enlace] = true
elseif enlace then -- Nomás o enlace u os dos y son iguals
resultau = '[[' .. enlace .. ']]'
yaEnlazau[enlace] = true
elseif etiqueta then -- Nomás a etiqueta
resultau = etiqueta
elseif idEntidat then -- Nomás a entidat
-- Obtener a etiqueta y o enlace de Wikidata d\'a Wikipedia anglesa, espanyola, francesa u alemana
local entidat=mw.wikibase.getEntityObject(idEntidat)
--if true then return require('Módulo:Tablas').tostring(entidat) end
if entidat then
local idioma
for k, idioma in pairs({'en', 'es', 'fr', 'it', 'de'}) do
etiqueta = elementoTabla(entidat, 'labels', idioma, 'value')
enlace = elementoTabla(entidat, 'sitelinks', idioma .. 'wiki', 'title')
if etiqueta or enlace then
resultau = p.enlazarEnAtroIdioma(enlace, etiqueta, idioma)
break
end
end
end
if not resultau then
return '[[:d:'.. idEntidat .. '|sin etiquetar]]' ..
'[[Categoría:Biquipedia:Pachinas con propiedades de Wikidata sin etiqueta]]'
end
end
-- Adhibir cursivas
if opcions and opcions.cursivas == 'sí' then
resultau = "''" .. resultau .. "''"
end
return resultau
end
function p.formatId( value, options )
local wikidata = require('Módulo:Wikidata')
local id = 'Q'.. value['numeric-id']
local opcions = {deseparador = '<br>',propiedat = options.propiedatValor, uno = 'sí', entityId = id, formatoTexto = 'mayúscla'}
return wikidata.getPropiedat(opcions)
end
function p.formatoBandera2( value, options )
local bandera = require('Módulo:Bandera')
local id = 'Q'.. value['numeric-id']
local label = mw.wikibase.label( 'Q' .. value['numeric-id'] ) or ''
local tipo = mw.ustring.gsub(label,'(%D+)%sde%s%D+','%1')
if options.tallar and options.tallar ~= '' then
coincidencia = mw.ustring.find( es:lc(options.tallar), es:lc(tipo), plain )
end
if coincidencia then
nombre = mw.ustring.gsub(label,'%D+%sde%s(%D+)','%1')
elseif label and label ~= '' then
nombre = label
end
return bandera.banderaLua(id, '20px', '', nombre)
end
function p.formatoFicha( value, options )
local ficha = require('Módulo:Ficha')
local opcions = {propiedatValor='P31'}
local etiqueta = p.formatId( value, opcions)
options.tallar = etiqueta
local parametros = {
child = 'si',
estiloetiqueta1 = 'border:0;font-weight:100;padding:0px 7px',
estilodatos1 = 'border:0;font-weight:100;padding:0px 7px 0px 2px',
etiqueta1='• '.. es:ucfirst(etiqueta),
datos1 = p.formatoBandera2(value, options)}
return ficha.infobox(parametros)
end
function p.formatoId ( value, options )
return value['numeric-id'] and 'Q' .. value['numeric-id']
end
--*****************************************************************************
-- Funcions pa un elemento/entidat de Wikidata
--*****************************************************************************
function p.formatoObraAutor(valor, opcions, frame, calificativos)
local idObra = 'Q' .. valor['numeric-id']
local entidatObra = mw.wikibase.getEntityObject(idObra)
local enlaceObra = elementoTabla(entidatObra,'sitelinks','eswiki','title')
local etiquetaObra = elementoTabla(entidatObra,'labels','es','value')
local titolObraEnlazau = p.enlazar(enlaceObra, etiquetaObra, idObra, opcions)
local declaracionAutors = elementoTabla(entidatObra, 'claims', 'P50')
if declaracionAutors then
local autors = getPropiedatWikidata({['propiedat']='P50'}, entidatObra.claims['P50'])
if autors then
return "''" .. titolObraEnlazau .. "'' de " .. autors
end
end
local declaracionCreyadors = elementoTabla(entidatObra, 'claims', 'P170')
if declaracionCreyadors then
local creadores = getPropiedatWikidata({['propiedat']='P170'}, entidatObra.claims['P170'])
if creadores then
return "''" .. titolObraEnlazau .. "'' de " .. creadores
end
end
return "''" .. titolObraEnlazau .. "''"
end
function p.formatoObraAnyo(valor, opcions, frame, calificativos)
local idObra = 'Q' .. valor['numeric-id']
local entidatObra = mw.wikibase.getEntityObject(idObra)
local enlaceObra = elementoTabla(entidatObra,'sitelinks','eswiki','title')
local etiquetaObra = elementoTabla(entidatObra,'labels','es','value')
local titolObraEnlazau = p.enlazar(enlaceObra, etiquetaObra, idObra, opcions)
local declaracionCalendataPublicacion = elementoTabla(entidatObra, 'claims', 'P577')
if declaracionCalendataPublicacion then
local anyoPublicacion = getPropiedatWikidata({['propiedat']='P577', ['formatoCalendata']='anyo', ['rangoMayor']='sí', ['enlace']='no', ['uno']='sí'}, declaracionCalendataPublicacion)
if anyoPublicacion then
return "''" .. titolObraEnlazau .. "'' (" .. anyoPublicacion .. ")"
end
end
return "''" .. titolObraEnlazau .. "''"
end
function p.formatoObraTitolOrichinalAnyo(valor, opcions, frame, calificativos)
local idObra = 'Q' .. valor['numeric-id']
local entidatObra = mw.wikibase.getEntityObject(idObra)
local enlaceObra = elementoTabla(entidatObra,'sitelinks','eswiki','title')
local etiquetaObra = elementoTabla(entidatObra,'labels','es','value')
local titolObraEnlazau = p.enlazar(enlaceObra, etiquetaObra, idObra, opcions)
local titolOrichinal = elementoTabla(entidatObra, 'claims', 'P1476',1,'mainsnak','datavalue','value','text')
local declaracionCalendataPublicacion = elementoTabla(entidatObra, 'claims', 'P577')
local anyoPublicacion
if declaracionCalendataPublicacion then
anyoPublicacion = getPropiedatWikidata({['propiedat']='P577', ['formatoCalendata']='anyo', ['enlace']='no'}, declaracionCalendataPublicacion)
end
if titolOrichinal and anyoPublicacion then
return "''" .. titolObraEnlazau .. "'' (''" .. titolOrichinal .. "'', " .. anyoPublicacion .. ")"
elseif titolOrichinal then
return "''" .. titolObraEnlazau .. "'' (''" .. titolOrichinal .. "'')"
elseif anyoPublicacion then
return "''" .. titolObraEnlazau .. "'' (" .. anyoPublicacion .. ")"
else
return "''" .. titolObraEnlazau .. "''"
end
end
local decadaAnterior
function p.formatoPersonaPremiadaPor(valor, opcions, frame, calificativos)
local enlacePersona, etiquetaPersona, idEntidadPersona = p.obtenerDatos(valor)
local personaEnlazada = p.enlazar(enlacePersona, etiquetaPersona, idEntidadPersona, {['enlace'] = 'sí'})
local calendata, decada, decadaFormateada
local enlaceObraPremiada1, etiquetaObraPremiada1, idEntidadObraPremiada1, obraPremiadaEnlazada1
local enlaceObraPremiada2, etiquetaObraPremiada2, idEntidadObraPremiada2, obraPremiadaEnlazada2
local obraPremiadaEnlazada
local opcionsCalendata= {['formatoTexto']='mayúscla', ['formatoCalendata'] = 'anyo', ['enlace']='no'}
if calificativos then
calendata = formatoDatoWikidata(elementoTabla(calificativos,'P585',1), opcionsCalendata , {}) -- Primera calendata
enlaceObraPremiada1, etiquetaObraPremiada1, idEntidadObraPremiada1 = p.obtenerDatos(elementoTabla(calificativos,'P1686',1,'datavalue','value'))-- Premiado por
enlaceObraPremiada2, etiquetaObraPremiada2, idEntidadObraPremiada2 = p.obtenerDatos(elementoTabla(calificativos,'P1686',2,'datavalue','value'))-- Premiado por
obraPremiadaEnlazada1 = p.enlazar(enlaceObraPremiada1, etiquetaObraPremiada1, idEntidadObraPremiada1, {['enlace'] = 'sí'})
obraPremiadaEnlazada2 = p.enlazar(enlaceObraPremiada2, etiquetaObraPremiada2, idEntidadObraPremiada2, {['enlace'] = 'sí'})
obraPremiadaEnlazada = (obraPremiadaEnlazada1 and obraPremiadaEnlazada2 and (obraPremiadaEnlazada1 .. ' / ' .. obraPremiadaEnlazada2)) or
obraPremiadaEnlazada1 or
obraPremiadaEnlazada2
end
decadaFormateada = ''
if calendata then
decada = tostring(calendata):sub(1,3)
if decada ~= decadaAnterior then
decadaAnterior = decada
decadaFormateada = "</ul>'''" .. calendata .. "-" .. decada .. "9'''\n<ul><li>"
end
end
return decadaFormateada ..
(obraPremiadaEnlazada and ("''" .. obraPremiadaEnlazada .. "''") or '') ..
(obraPremiadaEnlazada and personaEnlazada and ' de ' or '') ..
personaEnlazada ..
(calendata and ' (' .. calendata .. ')' or '')
end
function p.formatoPersonaPremiadaPor2(valor, opcions, frame, calificativos)
local enlacePersona, etiquetaPersona, idEntidadPersona = p.obtenerDatos(valor)
local personaEnlazada = p.enlazar(enlacePersona, etiquetaPersona, idEntidadPersona, {['enlace'] = 'sí'})
local calendata, decada, decadaFormateada
local enlaceObraPremiada1, etiquetaObraPremiada1, idEntidadObraPremiada1, obraPremiadaEnlazada1
local enlaceObraPremiada2, etiquetaObraPremiada2, idEntidadObraPremiada2, obraPremiadaEnlazada2
local obraPremiadaEnlazada
local opcionsCalendata= {['formatoTexto']='mayúscla', ['formatoCalendata'] = 'anyo', ['enlace']='no'}
if calificativos then
calendata = formatoDatoWikidata(elementoTabla(calificativos,'P585',1), opcionsCalendata , {}) -- Primera calendata
enlaceObraPremiada1, etiquetaObraPremiada1, idEntidadObraPremiada1 = p.obtenerDatos(elementoTabla(calificativos,'P1686',1,'datavalue','value'))-- Premiado por
enlaceObraPremiada2, etiquetaObraPremiada2, idEntidadObraPremiada2 = p.obtenerDatos(elementoTabla(calificativos,'P1686',2,'datavalue','value'))-- Premiado por
obraPremiadaEnlazada1 = p.enlazar(enlaceObraPremiada1, etiquetaObraPremiada1, idEntidadObraPremiada1, {['enlace'] = 'sí'})
obraPremiadaEnlazada2 = p.enlazar(enlaceObraPremiada2, etiquetaObraPremiada2, idEntidadObraPremiada2, {['enlace'] = 'sí'})
obraPremiadaEnlazada = (obraPremiadaEnlazada1 and obraPremiadaEnlazada2 and (obraPremiadaEnlazada1 .. ' / ' .. obraPremiadaEnlazada2)) or
obraPremiadaEnlazada1 or
obraPremiadaEnlazada2
end
return '<td>' .. calendata ..
'</td><td>' .. (obraPremiadaEnlazada and ("''" .. obraPremiadaEnlazada .. "''") or '') ..
'</td><td>' .. (personaEnlazada or '') .. '</td>'
end
--*****************************************************************************
-- Funcions pa os tipos de dato URL
--*****************************************************************************
function p.formatoURL(valor, opcions, marco)
return enlazarURL(valor)
end
function p.formatoTwitter(valor, opcions, marco)
return '[https://twitter.com/' .. valor .. ' ' .. valor .. ']'
end
function p.formatoFacebook(valor, opcions, marco)
return '[https://www.facebook.com/' .. valor .. ' ' .. valor .. ']'
end
--*****************************************************************************
-- Alias de formatos pa utilizar en la plantilla propiedat
--*****************************************************************************
p['bandera'] = p['formatoBandera']
p['cargo'] = p['formatoCargo']
p['chentilicio'] = p['formatoChentilicio']
p['personaPremiadaPor'] = p['formatoPersonaPremiadaPor']
--p['premio'] = p['formatoPremio']
p['facebook'] = p['formatoFacebook']
p['twitter'] = p['formatoTwitter']
p['url'] = p['formatoURL']
return p