Ir al contenido

Diferencia entre revisiones de «Módulo:Ficha de entidad administrativa»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
mSin resumen de edición
m dirty fix
Línea 997: Línea 997:


function round(num, numDecimalPlaces)
function round(num, numDecimalPlaces)
if type(num) == 'number' then
return tonumber(string.format("%." .. (numDecimalPlaces or 0) .. "f", num)) or num
return tonumber(string.format("%." .. (numDecimalPlaces or 0) .. "f", num))
else
return num
end
end
end



Revisión del 15:07 16 dic 2020

Icono de documentación de módulo Documentación del módulo[ver] [editar] [historial] [purgar]

A continuación se muestra la documentación transcluida desde la subpágina /doc. [salta a la caja de código]


Este módulo pretende implementar {{Ficha de país}}, {{Ficha de estado desaparecido}} (junto con {{Ficha de antigua entidad territorial}}) y {{Ficha de entidad subnacional}} a través de Lua.

Funciones

Consideraciones

Las implementaciones para las plantillas {{Ficha de país}}, {{Ficha de estado desaparecido}} y {{Ficha de entidad subnacional}} parecen funcionar correctamente, pero {{Ficha de antigua entidad territorial}} necesita trabajo (véase Alemania nazi). Hay una propuesta de fusión, y se revisará la respectiva plantilla para implementarla en p.FichaEstadoDesaparecido().

Transclusiones con ejemplos

País

Actual
Estados Unidos de América
United States of America




Lema: In God we trust
(inglés: «En Dios confiamos»)  [1]
Himno: The Star-Spangled Banner
(inglés: «La bandera tachonada de estrellas»)

Capital Washington D. C.
Ciudad más poblada Nueva York
40°43′N 74°00′O / 40.717, -74.000
Idiomas oficiales Ninguno a nivel federal [2]
Gentilicio estadounidense
estadunidense
norteamericano, -a
Forma de gobierno República federal presidencialista
 • Presidente Donald Trump
 • Vicepresidente Mike Pence
Independencia
 • Declarada
 • Reconocida
 • 50.º estado
de Gran Bretaña
4 de julio de 1776
3 de septiembre de 1783
21 de agosto de 1959
Superficie Puesto 4.º
 • Total 9 147 593 km²[n 1]
 • Agua (%) 2,2
Fronteras 12 048 km
Línea de costa 19 924 km
Población total Puesto 3.º
 • Estimación (2017) 325 719 178 hab.
 • Censo (2010) 309 349 689 hab.
 • Densidad (est.) 32,8 hab./km²
PIB (PPA) Puesto 2.º
 • Total (2020) Decrecimiento USD 21,345 billones
 • Per cápita Crecimiento USD 62 152
PIB (nominal) Puesto 1.º
 • Total (2020) Decrecimiento USD 21,345 billones
 • Per cápita Crecimiento USD 62 152
IDH (2018) Crecimiento 0.920 (15.º) – Muy alto
Coeficiente de Gini 39,0 medio (2017)
Moneda Dólar estadounidense ($, USD)
Huso horario UTC-10 a UTC-5
 • En verano UTC-9 a UTC-4
Código ISO 840 / USA / US [3]
Dominio internet .us.mil.gov
Prefijo telefónico +1
Prefijo radiofónico AAA-ALZ, KAA-KZZ, NAA-NZZ, WAA-WZZ
Siglas país para aeronaves N
Siglas país para automóviles USA
  1. El lema tradicional es E Pluribus Unum (latín: «De muchos, uno»).
  2. El inglés es el idioma oficial en 32 estados, pero no se reconoce un idioma oficial a nivel federal. El español, el francés cajún y el hawaiano son reconocidos oficialmente por varios estados.
  3. Así como AS, GU, MP, PR, UM y VI para sus dependencias.
  4. Miembro permanente.
Propuesta

Error de Lua en package.lua en la línea 80: module 'Módulo:Ficha de localidad/Datos' not found.

Propuesta (sin datos locales)

Error de Lua en package.lua en la línea 80: module 'Módulo:Ficha de localidad/Datos' not found.


Entidad subnacional

Actual
Santiago
Santiago de la Nueva Extremadura
Capital de Chile

De arriba a abajo, de izquierda a derecha.
1º fila: Panorámica de Santiago. 2º fila: Estatua de la Inmaculada Concepción en el Santuario del cerro San Cristóbal, y Sanhattan, principal distrito financiero de la ciudad. 3º fila: Fuente de Neptuno en el cerro Santa Lucía, y Biblioteca Nacional. 4º fila: Casas centrales de la Universidad de Chile y Pontificia Universidad Católica de Chile, principales núcleos académicos del país. 5º fila: Palacio de La Moneda, sede del poder ejecutivo de Chile.




Mapa
Mapa interactivo
Idioma oficial Castellano
Entidad Capital de Chile
 • País Bandera de Chile Chile
 • Región Bandera de Metropolitana de Santiago Metropolitana de Santiago
 • Comunas 40 comunas
Eventos históricos  
 • Fundación 12 de febrero de 1541 por Pedro de Valdivia (483 años)[n 2]
 • Nombre Santiago de Nueva Extremadura
Superficie  
 • Total 837,89 km²
Altitud  
 • Media 520 m s. n. m.
Clima Mediterráneo continentalizado Csa
Población (2017)  
 • Total 6 254 314 hab.[n 3]
 • Densidad 8497 hab./km²
Gentilicio Santiaguino, -na
Capitalino, -na
IDH (2022) 0,883  (1.º) – Muy alto
Huso horario UTC–4 (Abr. - Sept.)
 • en verano UTC–3 (Sept. - Abr.)
Patrono(a) Santiago el Mayor
Miembro de: Unión de Ciudades Capitales Iberoamericanas, Mercociudades
Propuesta

Error de Lua en package.lua en la línea 80: module 'Módulo:Ficha de localidad/Datos' not found.

Propuesta (sin datos locales)

Error de Lua en package.lua en la línea 80: module 'Módulo:Ficha de localidad/Datos' not found.


Estado desaparecido

Actual
Imperio romano
Imperium Rōmānum
Imperio
27 a. C.-476/1453




Lema: SPQR
(en latín: «El Senado y el Pueblo Romano»)  [1]

El Imperio romano en el año 117, cuando alcanzó su máxima extensión, bajo el gobierno de Trajano.

Bajo Imperio romano en el año 394.
Capital Roma (27 a. C.-286)
Milán (286-402)
Rávena (402-476)
Nicomedia (286-330)
Constantinopla (330-1204, 1261-1453)[n. 1]
Entidad Imperio
Idioma oficial Latín, griego
 • Otros idiomas Véase Lenguas del Imperio romano
Superficie hist.   
 • 27 a. C.[1] 2 750 000 km²
 • 117[1][3] 5 000 000 km²
 • 395[1] 4 400 000 km²
Población hist.   
 • 14 [n. 2]est. 56 800 000 hab.
 • 117[1][3]est. 88 000 000 hab.
Religión Politeísmo romano (27 a. C.-270 d. C.)
Monismo solar (270-380)
Cristianismo (380-1453)
Moneda Denario, sestercio, sólido bizantino
Período histórico Edad Antigua y Media
 • 16 de enero
de 27 a. C.
El Senado proclama a Octavio como Augusto
 • 1 de abril
de 286
Primera división del Imperio
 • 17 de enero
de 395
División final entre Occidente y Oriente
 • 4 de septiembre
de 476
Caída de Occidente
 • 29 de mayo
de 1453
Caída de Oriente
Forma de gobierno Autocracia
Emperador[n. 3]
• 27 a. C.-14 d. C.
• 1449-1453

Augusto
Constantino XI
Cónsul[n. 4]
• 27 a. C.
• 886 d. C.

Augusto, Agripa
León VI el Sabio
Legislatura Senado romano
Senado bizantino
Precedido por
Sucedido por
República romana
Imperio romano de Occidente
Imperio bizantino
Propuesta

Error de Lua en package.lua en la línea 80: module 'Módulo:Ficha de localidad/Datos' not found.

Propuesta (sin datos locales)

Error de Lua en package.lua en la línea 80: module 'Módulo:Ficha de localidad/Datos' not found.


Lista completa

Referencias

  1. a b c Taagepera, Rein (1979). «Size and Duration of Empires: Growth–Decline Curves, 600 BC to 600 AD». Social Science History (en inglés) (3.ª/4.ª edición) 3: 115–138 [125]. JSTOR 1170959. doi:10.2307/1170959. 
  2. Durand, John D. (1974). «Historical Estimates of World Population: An Evaluation». PSC Analytical and Technical Reports Series (Universidad de Pensilvania) 10: 27-31. doi:10.2307/1971891. 
  3. Turchin, Peter; Adams, Jonathan M.; Hall, Thomas D (2006). "East-West Orientation of Historical Empires" (PDF). Journal of World-Systems Research. 12 (2): 125. ISSN 1076-156X
  4. Canning, Joseph (1996). «Ideas of an Empire». A History of Medieval Political Thought, 300-1450. Psychology Press. pp. 67-70. ISBN 9780415013505. 
  5. Gregorovius, Ferdinand (1894). George Bell, ed. History of the City of Rome in the Middle Ages, Vol. 1 (en inglés). Universidad de California. pp. 335-336. 
  6. Riedel, Meredith L. D. (2018). Leo VI and the Transformation of Byzantine Christian Identity. Cambridge University Press. p. 100. ISBN 9781107053076. 

Notas

  1. Según el organismo gubernamental de la Oficina del Censo de los Estados Unidos, dependiente del Departamento de Comercio, el país tiene una superficie de 9 371 174 kilómetros cuadrados, lo que lo sitúa como el cuarto país del mundo en superficie. En cambio, la Agencia Central de Inteligencia (CIA) en su publicación The World Factbook sitúa la superficie en 9 833 517 kilómetros cuadrados, pues incluye aguas territoriales y zonas costeras lo que colocaría al país en tercera posición por delante de China. Por su parte la Enciclopedia Británica da la cifra de 9 522 055 km², ocupando la cuarta posición.
  2. Una investigación señala que el acta de fundación fue firmado el 12 de febrero y el acto de fundación fue realizado el 24 de febrero de 1541.
  3. La población de Santiago se calculó utilizando la base de microdatos del censo chileno de 2017. Se tomaron las manzanas asociadas a las siguientes localidades urbanas: todas las de la provincia de Santiago (excepto Ciudad del Valle, El Cambucho, El Maitén, Lo Aguirre y Noviciado Alto), Puente Alto, Pirque, La Obra-Las Vertientes, Las Canteras, Chamisero, Estación Colina, Valle Grande, Chicauma, San Bernardo, Padre Hurtado y Peñaflor. Se incluyen también manzanas no asignadas de las comunas de la provincia de Santiago, San Bernardo, Puente Alto, Padre Hurtado y Peñaflor.

Esta documentación está transcluida desde Módulo:Ficha de entidad administrativa/doc.
Por favor, añade las categorías en la subpágina de documentación y los interwikis en Wikidata. Subpáginas de este módulo.


Error en la cita: Existen etiquetas <ref> para un grupo llamado «n.», pero no se encontró la etiqueta <references group="n."/> correspondiente.

local p = {}

local ModuloWikidata	= require('Módulo:Wikidata')
local ModuloFormatos	= require('Módulo:Wikidata/Formatos')
local ModuloPaginas		= require('Módulo:Páginas')
local ModuloArgs   		= require('Módulo:Argumentos')
local infobox			= require('Módulo:Ficha/pruebas').infobox
local elementoTabla		= require('Módulo:Tablas').elemento
local obtenerIdioma		= require('Módulo:Obtener idioma').obtenerIdioma
local argumentos		= ModuloArgs.obtenerValorDeArgumentos
local formatoNumero		= ModuloFormatos.formatoNumero2
local numeroUnidad		= ModuloFormatos.formatoUnidad2

-- :: Estilos por defecto
local Clase				= 'geography vcard'
local ColorTitulo		= '#cddeff'
local ColorTituloTexto	= '#000'
local ColorEtiqueta		= '#eef5f6'
local EstiloEtiqueta	= 'width:40%'
local EstiloDatos		= 'width:60%'
local TamanoImagen		= '250px'

local Datos = mw.loadData('Módulo:Ficha de localidad/Datos')

local function _init(frame)
	ModuloWikidata:setFrame(frame)
	ModuloArgs.obtenerTablaDeArgumentos(frame)
	Entidad			= mw.wikibase.getEntity(argumentos{'id'}) or mw.wikibase.getEntity(argumentos{'entidad'}) or {}
	InstanciaDe		= propiedad('P31', {['formato'] = 'entidadID'})
	SubclaseDe		= propiedad('P279', {['formato'] = 'entidadID'})
	
	-- :: Estilos
	EstiloTitulo			= 'padding:0;background-color:' .. ColorTitulo
	EstiloSeccion			= 'background-color:' .. ColorTitulo
	EstiloEtiqueta			= EstiloEtiqueta .. ';background-color:' .. ColorEtiqueta

	-- :: Datos generales
	NombreOficial	= elementoTabla(Entidad, 'claims', 'P1448', {['idioma'] = 'es'}) or ModuloWikidata.obtenerEtiquetaWikidata(Entidad) or ModuloPaginas.nombrePagina({desambiguar='sí'})
	NombreOriginal	= argumentos{'nombre original'}
	NombreNativo	= (function ()
		local NombreNativo  = {}
		local NombreNativoObj = elementoTabla(Entidad, 'claims', 'P1705')
		if NombreNativoObj then
			for k, v in pairs(NombreNativoObj) do
				local valor, idioma
				if elementoTabla(v, 'mainsnak', 'datavalue', 'value', 'language') == 'es' then return false end
				valor = elementoTabla(v, 'mainsnak', 'datavalue', 'value', 'text')
				idioma= elementoTabla(v, 'mainsnak', 'datavalue', 'value', 'language')
				table.insert(NombreNativo, valor .. ' (' .. obtenerIdioma(frame, idioma) .. ')')
				if k > 3 then break end -- listar hasta tres nombres, luego terminar el bucle.
			end
			return table.concat(NombreNativo, '<br>')
		end
	end)()
	
	Titulo = (function ()
		if NombreOriginal then return NombreOficial .. '<div style="font-size:85%;font-style:italic">' .. NombreOriginal .. '</div>' end
		if NombreNativo then return NombreOficial .. '<div style="font-size:85%;font-style:italic">' .. NombreNativo .. '</div>' end
		return NombreOficial
	end)()

	PaisesConSellos	= Datos['paises']
	EscudoEtiqueta	= PaisesConSellos[NombreOficial] or PaisesConSellos[Entidad] or 'Escudo'
	EscudoPropiedad	= (function() 
		if EscudoEtiqueta == 'Emblema nacional' then return 'P2238' end
		if EscudoEtiqueta == 'Sello' or EscudoEtiqueta == 'Gran Sello' then return 'P158' end
		return 'P94'
	end)()

	-- :: Datos generales
	LemaNacional	= argumentos{'lema_nacional', {propiedad, 'P1546', {['linkback'] = 'no'}}}
	if LemaNacional then LemaNacional = '[[Anexo:Lemas nacionales|Lema]]: <span style="font-style:italic">' .. LemaNacional .. '</span>' end
	HimnoNacional	= (function()
		local Himno = argumentos{'himno_nacional', {propiedad, 'P85', {['linkback'] = 'no'}}}
		if Himno then
			local Archivo = enlazar(argumentos{'archivo_himno_nacional', {propiedad, 'P85', {['calificador'] = 'P51', ['formato'] = 'archivo'}}}, nil, 'Archivo')
			if Archivo then return '<div>[[Himno nacional|Himno]]: <span style="font-style:italic">' ..Himno .. '</span></div><div>' .. Archivo .. "</div><div style=\"line-height:1.1em; text-align:center;\" class=\"problemas_sonido\"><small>''[[Ayuda:Multimedia|¿Problemas al reproducir este archivo?]]''</small></div>" end
			return '[[Himno nacional|Himno]]: <span style="font-style:italic">' .. Himno .. '</span></div>'
		end
	end)()

	SedeGobierno	= argumentos{'sede_gobierno', 'sedes_gobierno'} -- Proponer propiedad

	IdiomaOficial	= (function()
		local IdiomaOficial = {}
		table.insert(IdiomaOficial, argumentos{'idioma', 'idiomas', 'idioma_oficial', 'idiomas_oficiales', 'idioma_principal', {propiedad, 'P37', {['calificador'] = 'P3831'}}, {propiedad, 'P37'}})
		table.insert(IdiomaOficial, argumentos{'idiomas_co-oficiales', 'idiomas co-oficiales', 'idioma_co-oficial', 'idioma co-oficial', 'idiomas_cooficiales'})
		return table.concat(IdiomaOficial, '<br>')
	end)()

	IdiomasHablados	= seccionDesplegable(frame, 'Idiomas hablados', argumentos{'idiomas_hablados', 'idioma_no_oficial', 'idiomas', {propiedad, 'P2936'}})

	Gentilicio		= argumentos{'gentilicio', {propiedad, 'P1549', {['idioma'] = 'es'}}}

	Religion		= argumentos{'religión', {propiedad, 'P140'}}

	-- :: Datos políticos
	DatosPoliticos = obtenerLideres()

	-- La idea es traer los valores desde Wikidata, pero dada la complejidad...
	Hitos = (function(frame)
		local Hitos = {tipo = 'sección', titulo = 'Historia'}
		local FundacionFechas	= argumentos{'fundación_fechas'}
		local FundacionEtiqueta	= argumentos{'fundación'}
		local HitosEtiqueta		= argumentos{'fundación_hitos'}
		if FundacionEtiqueta and HitosEtiqueta then HitosEtiqueta = FundacionEtiqueta .. "\n" .. HitosEtiqueta end
		
		table.insert(Hitos, {HitosEtiqueta, FundacionFechas})
		return Hitos
	end)()
	
	-- :: Datos geográficos
	Latitud			= round(argumentos{'latitud', {propiedad, 'P625', {['formato'] = 'latitud'}}}, 2)
	Longitud		= round(argumentos{'longitud', {propiedad, 'P625', {['formato'] = 'longitud'}}}, 2)
	
	Debug = type(Longitud) .. ' ' .. Longitud

	Superficie		= (function()
		local Superficie = argumentos{'superficie'}
		if Superficie then
			Superficie	= formatoNumero(Superficie) .. ' [[kilómetro cuadrado|km²]]'
		else
			Superficie	= propiedad('P2046', {['formato'] = 'unidad', ['separador'] = ' '})
		end
		
		local SuperficieAgua	= argumentos{'superficie_agua', {propiedad, 'P2927', {['formato'] = 'unidad', ['separador'] = ''}}}

		local SuperficiePuesto= argumentos{'superficie_puesto'}
		if SuperficiePuesto then
			SuperficiePuesto = SuperficiePuesto .. '° lugar'
			return	{
						tipo='sección',
						{'[[Anexo:Países por superficie|Superficie]]', SuperficiePuesto},
						{
							tipo ='sección',
							estiloetiqueta	= EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
							estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
							{'Total', Superficie},
							{'Agua', SuperficieAgua},
						},
				}
		else
			return	{
						tipo='sección',
						{'[[Anexo:Países por superficie|Superficie]] total', Superficie},
						{
							tipo ='sección',
							estiloetiqueta	= EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
							estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
							{'Agua', SuperficieAgua},
						}
					}
		end
	end)()
	
	Fronteras		= argumentos{'fronteras'}
	if Fronteras then
		Fronteras	= formatoNumero(Fronteras)
	-- Proponer propiedad
	--else
		--Superficie	= propiedad('', {['formato'] = 'unidad'})
	end

	LineaDeCosta			= formatoNumero(argumentos{'costas'})

	PuntoMasAlto			= argumentos{'punto_más_alto', {propiedad, 'P610'}}
	PuntoMasBajo			= argumentos{'punto_más_bajo', {propiedad, 'P1589'}}
	PuntoMasOriental		= argumentos{'punto_más_oriental', {propiedad, 'P1334'}}
	PuntoMasOccidental		= argumentos{'punto_más_occidental', {propiedad, 'P1335'}}
	PuntoMasSeptentrional	= argumentos{'punto_más_septentrional', {propiedad, 'P1332'}}
	PuntoMasMeridional		= argumentos{'punto_más_meridional', {propiedad, 'P1333'}}

	-- :: Datos socioeconómicos
	Poblacion		= (function()
		local Poblacion			= (function()
			local Valor = argumentos{'poblacion', {propiedad, 'P1082', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
			if Valor then
				return formatoNumero(Valor) .. '&nbsp;hab.'
			end
		end)()
		
		local PoblacionEstimada	= (function()
			local Valor = argumentos{'población_estimación'}
			if Valor then
				return formatoNumero(Valor) .. '&nbsp;hab.'
			end
			-- Buscar la forma de obtener la estimación más reciente.
			-- Se puede usar la opción 'filtroCalificador': P1802 -> Valor -> P459 -> Q791801
		end)()
		
		local Superficie = argumentos{'superficie', {propiedad, 'P2046'}}
		
		local Densidad = (function()
			local Valor = (function()
				local Poblacion = argumentos{'poblacion', {propiedad, 'P1082', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
				local PoblacionEstimada = argumentos{'población_estimación'}
				if argumentos{'población_densidad'} then return argumentos{'población_densidad'} end
				if tonumber(Poblacion) and tonumber(Superficie) then return (tonumber(Poblacion)/tonumber(Superficie)) end
				if tonumber(PoblacionEstimada) and tonumber(Superficie) then return (tonumber(PoblacionEstimada)/tonumber(Superficie)) end
			end)()

			if Valor then return formatoNumero(Valor, {['decimales'] = 2}) .. '&nbsp;hab./km²' end
		end)()

		if argumentos{'población_puesto'} then
			return	{
				tipo = 'sección',
				{'[[Anexo:Países por población|Población total]]', argumentos{'población_puesto'} .. '° lugar'},
				{
					tipo = 'sección',
					estiloetiqueta	= EstiloEtiqueta .. ';border-top:0; padding:0 .6em 0 15px',
					estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
					{'Censo', Poblacion},
					{'Estimación', PoblacionEstimada},
					{'[[Anexo:Países por densidad de población|Densidad]]', Densidad},
				},
			}
		else
			return	{
				tipo = 'sección',
				{'[[Anexo:Países por población|Población total]]', Poblacion},
				{
					tipo = 'sección',
					estiloetiqueta	= EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
					estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
					{'Estimada', PoblacionEstimada},
					{'[[Anexo:Países por densidad de población|Densidad]]', Densidad},
				}
			}
		end
	end)()
	
	PIBPuesto		= (function()
		local PIB = argumentos{'PIB_puesto'}
		if PIB then return 'Puesto ' .. PIB .. '°' end
	end)()
	
	PIBAnio			= argumentos{'PIB'}--, {propiedad, 'P2131', {['uno'] = 'último', ['ordenar'] = 'por fecha', ['calificador'] = 'P585'}}}
	PIBPerCapita	= argumentos{'PIB_per_cápita'}--, {propiedad, 'P2132', {['uno'] = 'último', ['ordenar'] = 'por fecha', ['calificador'] = 'P585'}}}

	PIBNominalPuesto= (function()
		local PIB = argumentos{'PIB_nominal_puesto'}
		if PIB then return 'Puesto ' .. PIB .. '°' end
	end)()

	PIBNominalAnio		= argumentos{'PIB_nominal'}--, {propiedad, 'P2131', {['uno'] = 'último', ['ordenar'] = 'por fecha', ['calificador'] = 'P585'}}}
	PIBNominalPerCapita	= argumentos{'PIB_nominal_per_cápita'}--, {propiedad, 'P2132', {['uno'] = 'último', ['ordenar'] = 'por fecha', ['calificador'] = 'P585'}}}

	IDH				= argumentos{'IDH'}
	IDHAnio			= argumentos{'IDH_año'}
	IDHpuesto		= argumentos{'IDH_puesto'}
	IDHcategoria	= argumentos{'IDH_categoría'}
	
	Gini			= argumentos{'gini', {propiedad, 'P1125', {['uno'] = 'último', ['ordenar'] = 'por fecha', ['calificador'] = 'P585'}}}
	
	--Moneda
	
	Huso = seccionDesplegable(frame, 'Huso', argumentos{'horario', {propiedad, 'P421', {['lista'] = 'nobullet'}}})
	
	HorarioVerano	= argumentos{'horario_verano'}
	
	CodigoISO		= (function()
		if argumentos{'código_ISO'} then return argumentos{'código_ISO'} end
		local CodigoISO = {}
		if propiedad('P297') then table.insert(CodigoISO, propiedad('P297')) end
		if propiedad('P298') then table.insert(CodigoISO, propiedad('P298')) end
		if propiedad('P299') then table.insert(CodigoISO, propiedad('P299')) end
		return table.concat(CodigoISO, '<br>')
	end)()
	
	CCTD			= argumentos{'cctdl', {propiedad, 'P78'}}
	PrefijoTelef	= argumentos{'código_telefónico', {propiedad, 'P474'}}
	PrefijoRadio	= argumentos{'prefijo_radiofónico'}--, {propiedad, ''}}-- Solicitar propiedad
	PrefijoMatAero	= argumentos{'matrícula_avión', {propiedad, 'P2986'}}
	PrefijoMatAuto	= argumentos{'matrícula_coche', {propiedad, 'P395'}}
	COI				= argumentos{'código_COI', {propiedad, 'P984'}}
	
	MiembroDe		= seccionDesplegable(frame, 'Membresía', argumentos{'miembro_de', {propiedad, 'P463'}}, true)

	Notas			= (function()
		local Notas = {}
		for i = 1, 10, 1 do
			if argumentos{'nota' .. i} then table.insert(Notas, '<li id="ficha_nota-'.. i .. '">[[#ficha_ref-' .. i .. '|↑]]' .. argumentos{'nota' .. i} .. '</li>') end
		end
		table.insert(Notas, argumentos{'notas'})
		if #Notas > 0 then return '<ol class="references">' .. table.concat(Notas) .. '</ol>' end
	
	end)()
	
end

function p.FichaPais(frame)
	_init(frame)
	
	local ClaseTitulo	= 'adr'

	-- Subtítulo: Miembro de (discutir este parámetro)
	local Subtitulo			= (function()
		local Unidad		= argumentos{'unidad', {propiedad, 'P31', {['uno'] = 'sí'}}}
		local Supraunidad	= argumentos{'supraunidad'}
		local Disputado		= argumentos{'disputado'}
		
		if Unidad and Supraunidad then
			return Unidad .. ' de ' .. Supraunidad
		elseif not Disputado == nil then
			return '[[Estado con reconocimiento limitado|Soberanía discutida]]'
		end
		
		return Unidad
	end)()
	
	local Bandera		= argumentos{'imagen_bandera', 'bandera', {propiedad, 'P41', {['formato'] = 'archivo'}}}
	local TamanoBandera	= argumentos{'bandera_tamaño'} or '135x110px'
	local PieBandera	= enlazar((argumentos{'artículo bandera', {propiedad, 'P163', {['uno'] = 'sí', ['enlace'] = 'no'}}}) or ('Bandera de ' .. (argumentos{'nombre_común'} or ModuloWikidata.obtenerEtiquetaWikidata(Entidad) or ModuloPaginas.nombrePagina({desambiguar='sí'}))) or ('Bandera de la ' .. (argumentos{'nombre_común'} or ModuloWikidata.obtenerEtiquetaWikidata(Entidad) or ModuloPaginas.nombrePagina({desambiguar='sí'}))), (argumentos{'bandera_denom'} or 'Bandera'))
	
	local Mapa		= enlazar(argumentos{'imagen_mapa', 'mapa', {propiedad, 'P242', {['formato'] = 'archivo', ['uno'] = 'sí'}}}, '250px', 'Archivo')
	local PieMapa	= argumentos{'pie_mapa'}

	local Capital = (function()
		local Capital				= argumentos{'capital', {propiedad, 'P36', ['uno'] = 'último', ['ordenar'] = 'por fecha'}}
		local CiudadMasPoblada		= argumentos{'ciudad_más_poblada'}
		local AglomeradoMasPoblado	= argumentos{'aglomerado_más_poblado'}
		
		if Capital == CiudadMasPoblada then return {
			tipo = 'sección',
			{'[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'ciudad más poblada') .. ')</small>', Capital}
		} end

		if Capital == AglomeradoMasPoblado then return {
			tipo = 'sección',
			{'[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'aglomerado urbano más poblado') .. ')</small>', Capital}
		} end
	
		return {
			tipo = 'sección',
			{'[[Capital (política)|Capital]]', Capital},
			{enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'ciudad más poblada'), CiudadMasPoblada},
			{enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'aglomerado urbano más poblado'), AglomeradoMasPoblado},
		}
	end)()

	local CapitalEtiqueta = (function()
		if CiudadMasPoblada == Capital then
			CiudadMasPoblada = ''
			return '[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'ciudad más poblada') .. ')</small>' end
		return '[[Capital (política)|Capital]]'
	end)()
	
	local Lideres = (function()
		local Lideres	= DatosPoliticos['líderes']
		local Etiquetas	= DatosPoliticos['etiquetas']

		return (function()
			local Valores = {['tipo'] = 'sección', ['estiloetiqueta'] = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px', ['estilodatos'] = EstiloDatos .. ';border-top:0;padding:0 .6em'}
			for k,v in pairs(Lideres) do
				table.insert(Valores, {Etiquetas[k], v})
				if not v then break end	
			end
			return Valores
		end)()
	end)()

	-- :: La ficha
	local TablaFicha = {
		titulo  			= Titulo,
		subtitulo			= Subtitulo,
		clase				= Clase,
		clasetitulo			= ClaseTitulo,
		estilotitulo		= EstiloTitulo,
		estilosubtitulo		= 'font-weight:bold; background-color:#cddeff',
		imagenizquierda		= Bandera,
		["tamañoimagenizquierda"]	= TamanoBandera,
		imagenderecha		= Escudo,
		["tamañoimagenderecha"]		= TamanoEscudo,
		pieizquierdo		= PieBandera,
		piederecho			= PieEscudo,
		estilopie			= "font-size:88%",
		estiloseccion		= EstiloSeccion,
		estiloetiqueta		= EstiloEtiqueta,
		estilodatos			= EstiloDatos,
		{tipo='sección',
			{'', LemaNacional},
		},
		{tipo='sección',
			{'', HimnoNacional},
		},
		{tipo='sección',
			titulo  			= 'Ubicación',
			["tamañoimagen"]	= TamanoImagen,
			{'', Mapa},
		},
		{tipo='sección',
			titulo  			= 'Información general',
			Capital,
			{'[[Sede de gobierno]]', SedeGobierno},
			{'Idiomas oficiales', IdiomaOficial},
			IdiomasHablados,
			{'Gentilicio', Gentilicio},
		},
		{tipo='sección',
			titulo  = 'Información política',
			{'[[Forma de gobierno]]', FormaGobierno},
			Lideres,
			{'[[Órgano ejecutivo]]', OrganoEjecutivo},
			{'[[Órgano legislativo]]', OrganoLegislativo},
		},
		Hitos, -- Esto formatea los hitos como la independencia
		{tipo='sección',
			titulo  	= 'Información geográfica',
			Superficie,
			{'[[Frontera]]s', Fronteras},
			{'[[Línea de costa]]', LineaDeCosta},
			{'[[Anexo:Países por punto más alto|Punto más alto]]', PuntoMasAlto},
			{'Punto más bajo', PuntoMasBajo},
			{'Punto más oriental', PuntoMasOriental},
			{'Punto más occidental', PuntoMasOccidental},
			{'Punto más septentrional', PuntoMasSeptentrional},
			{'Punto más meridional', PuntoMasMeridional},
		},
		{tipo='sección',
			titulo  	= 'Información socioeconómica',
			Poblacion,
			{'[[Producto interno bruto|PIB]] ([[Paridad de poder adquisitivo|PPA]])', PIBPuesto},
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{'Total', PIBAnio},
				{'[[Renta per cápita|Per cápita]]', PIBPerCapita},
			},
			{'PIB (nominal)', PIBNominalPuesto},
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{'Total', PIBNominalAnio},
				{'Per cápita', PIBNominalPerCapita},
			},
			{'[[Índice de desarrollo humano|IDH]]', IDH},
			{'[[Coeficiente de Gini]]', Gini},
			{'[[Moneda (divisa)|Moneda]]', Moneda},
		},
		{tipo='sección',
			titulo  			= 'Información internacional',
			Huso,
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{'En [[Horario de verano|verano]]', HorarioVerano},
			},
			{'[[ISO 3166-1|Código ISO]]', CodigoISO},
			{'[[Dominio de nivel superior geográfico#Lista de dominios de nivel superior geográfico|Dominio internet]]', CCTD},
			{'<small>[[Anexo:Prefijos telefónicos internacionales|Prefijo telefónico]]</small>', PrefijoTelef},
			{'<small>[[Anexo:Prefijos radiofónicos|Prefijo radiofónico]]</small>', PrefijoRadio},
			{'[[Matrícula (aeronaves)|Siglas país para aeronaves]]', PrefijoMatAero},
			{'[[Anexo:Siglas automovilísticas internacionales|Siglas país para automóviles]]', PrefijoMatAuto},
			{'[[Anexo:Códigos del COI para los países|Código del COI]]', },
		},
		{tipo='sección',
			estilodatos = 'padding:0',
			MiembroDe,
		},
		estilopiedetabla	= 'text-align:left',
		piedetabla			= Notas,
	}
	return infobox(TablaFicha)
end

function p.FichaEntidadSubnacional(frame)
	_init(frame)
	
	local ClaseTitulo	= 'mapa fn org'
	
	local Pais				= argumentos{'país', 'pais', {propiedad, 'P17', ['uno'] = 'último', ['ordenar'] = 'por fecha'}}
	local Capital			= argumentos{'capital', {propiedad, 'P36', ['uno'] = 'último', ['ordenar'] = 'por fecha'}}
	local CapitalEtiqueta	= argumentos{'capital_denominación'} or '[[Capital (política)|Capital]]'

	local Subtitulo			= (function()
		if argumentos{'unidad'} then return argumentos{'unidad'} end
		
		local Unidad
		local Supraunidad
		UnidadObj = elementoTabla(Entidad, 'claims', 'P31')
		if UnidadObj then
			for k,v in pairs(UnidadObj) do
				Unidad		= elementoTabla(v, 'mainsnak', 'datavalue', 'value', 'id')
				Supraunidad	= ModuloWikidata.obtenerEtiquetaWikidata(mw.wikibase.getEntity(elementoTabla(v, 'qualifiers', 'P642', 1, 'datavalue', 'value', 'id')))
				if Unidad == 'Q5119' and Supraunidad then
					return '[[Capital (política)|Capital]] de [[' .. Supraunidad .. ']]'
				end
			end
		end
		return '[[Entidad subnacional]]'
	end)()
	
	local Bandera		= argumentos{'imagen_bandera', 'bandera', {propiedad, 'P41', {['formato'] = 'archivo'}}}
	local TamanoBandera	= argumentos{'bandera_tamaño'} or '135x110px'
	local PieBandera	= enlazar((argumentos{'artículo bandera', {propiedad, 'P163', {['uno'] = 'sí', ['enlace'] = 'no'}}}) or ('Bandera de ' .. (argumentos{'nombre_común'} or ModuloWikidata.obtenerEtiquetaWikidata(Entidad) or ModuloPaginas.nombrePagina({desambiguar='sí'}))) or ('Bandera de la ' .. (argumentos{'nombre_común'} or ModuloWikidata.obtenerEtiquetaWikidata(Entidad) or ModuloPaginas.nombrePagina({desambiguar='sí'}))), (argumentos{'bandera_denom'} or 'Bandera'))


	local ImagenPanorama	= argumentos{'img_panorama_urb', 'image_skyline', 'image_skyline', 'imagen', {propiedad, 'P18', {['formato'] = 'archivo'}}}
	local PieImagenPanorama	= argumentos{'image_caption', 'pie_img_panorama_urb', 'pie_de_imagen'}

	-- :: Datos cartográficos
	local Mapa1			= (function()
		return obtenerMapa(frame,
			{
				['nombre']			= ModuloPaginas.nombrePagina({desambiguar='sí'}),
				['zoom']			= (argumentos{'zoom'} or 10),
				['latitud']			= Latitud,
				['longitud']		= Longitud,
				['mapa_loc']		= argumentos{'mapa_loc', 'pushpin_map'},
				['mapa_etiq']		= (argumentos{'nombre', 'nombre_oficial'} or NombreOficial),
				['mapa_etiq_pos']	= argumentos{'pos_etiqueta_loc'},
				['mapa_marca']		= argumentos{'imagen_marca_loc'},
				['mapa_marca_tam']	= (argumentos{'tam_marca_loc'} or 5),
				['mapa_alt']		= argumentos{'mapa_alternativo'},
				['mapa_tamaño'] = (argumentos{'tam_mapa_loc', 'pushpin_mapsize'} or 250),
			}
		)
	end)()
	local MapaPie1		= (function()
		local MapaLoc	= argumentos{'mapa_loc', 'pushpin_map'}
		local Etiqueta	= (argumentos{'nombre', 'nombre_oficial'} or NombreOficial)
		if MapaLoc and Etiqueta then return 'Localización de ' .. Etiqueta .. ' en ' .. MapaLoc end
	end)()

	local Mapa2			= (function()
		return obtenerMapa(frame,
			{
				['zoom']			= (argumentos{'zoom'} or 10),
				['latitud']			= Latitud,
				['longitud']		= Longitud,
				['mapa_loc']		= argumentos{'mapa_loc1', 'pushpin_map1'},
				['mapa_etiq']		= (argumentos{'nombre', 'nombre_oficial'} or NombreOficial),
				['mapa_etiq_pos']	= argumentos{'pos_etiqueta_loc1'},
				['mapa_marca']		= argumentos{'imagen_marca_loc1'},
				['mapa_marca_tam']	= (argumentos{'tam_marca_loc1'} or 5),
				['mapa_alt']		= argumentos{'mapa_alternativo1'},
				['mapa_tamaño']		= (argumentos{'tam_mapa_loc1', 'pushpin_mapsize1'} or 250),
			}
		)
	end)()
	local MapaPie2		= (function()
		local MapaLoc	= argumentos{'mapa_loc1', 'pushpin_map1'}
		local Etiqueta	= (argumentos{'nombre', 'nombre_oficial'} or NombreOficial)
		if MapaLoc and Etiqueta then return 'Localización de ' .. Etiqueta .. ' en ' .. MapaLoc end
	end)()

	local Mapa3 		= argumentos{'mapa', 'imagen_mapa', 'image_map', {propiedad, 'P242'}, {obtenerMapa, frame, {['latitud'] = Latitud, ['longitud'] = Longitud, ['tipo'] = 'interactivo'}}}
	local Mapa3Tamano	= argumentos{'tam_mapa_loc1', 'pushpin_mapsize1'} or 250
	local Mapa3Pie		= argumentos{'pie_mapa'}

	local Mapa4 		= argumentos{'mapa1', 'imagen_mapa1', 'image_map1'}
	local Mapa4Tamano	= argumentos{'tam_mapa_loc1', 'pushpin_mapsize1'} or 250
	local Mapa4Pie		= argumentos{'pie_mapa1'}
	
	local Lideres		= {}

	-- :: La ficha
	local TablaFicha = {
		titulo  			= Titulo,
		subtitulo			= Subtitulo,
		clase				= Clase,
		clasetitulo			= ClaseTitulo,
		estilotitulo		= EstiloTitulo,
		estilosubtitulo		= 'font-weight:bold; background-color:#cddeff',
		imagensuperior		= ImagenPanorama,
		piesuperior			= PieImagenPanorama,
		imagenizquierda		= Bandera,
		["tamañoimagenizquierda"]	= TamanoBandera,
		imagenderecha		= Escudo,
		["tamañoimagenderecha"]		= TamanoEscudo,
		pieizquierdo		= PieBandera,
		piederecho			= PieEscudo,
		estilopie			= "font-size:88%",
		estiloseccion		= EstiloSeccion,
		estiloetiqueta		= EstiloEtiqueta,
		estilodatos			= EstiloDatos,
		datosup1			= Apodo,
		datosup2			= LemaNacional,
		datosup3			= HimnoNacional,
		imagenflotante1		= 'sí',
		imagenflotante2		= 'sí',
		imagen1				= Mapa1,
		pie1				= Mapa1Pie,
		imagen2				= Mapa2,
		pie2				= Mapa2Pie,
		imagen3				= Mapa3,
		pie3				= Mapa3Pie,
		imagen4				= Mapa4,
		pie4				= Mapa4Pie,
		{tipo='sección',
			titulo  			= 'Información general',
			Capital,
			{'[[Sede de gobierno]]', SedeGobierno},
			{'Idiomas oficiales', IdiomaOficial},
			IdiomasHablados,
			{'Gentilicio', Gentilicio},
		},
		{tipo='sección',
			titulo  = 'Información política',
			{'[[Forma de gobierno]]', FormaGobierno},
			Lideres,
			{'[[Órgano ejecutivo]]', OrganoEjecutivo},
			{'[[Órgano legislativo]]', OrganoLegislativo},
		},
		Hitos, -- Esto formatea los hitos como la independencia
		{tipo='sección',
			titulo  	= 'Información geográfica',
			Superficie,
			{'[[Frontera]]s', Fronteras},
			{'[[Línea de costa]]', LineaDeCosta},
			{'[[Anexo:Países por punto más alto|Punto más alto]]', PuntoMasAlto},
			{'Punto más bajo', PuntoMasBajo},
			{'Punto más oriental', PuntoMasOriental},
			{'Punto más occidental', PuntoMasOccidental},
			{'Punto más septentrional', PuntoMasSeptentrional},
			{'Punto más meridional', PuntoMasMeridional},
		},
		{tipo='sección',
			titulo  	= 'Información socioeconómica',
			Poblacion,
			{'[[Producto interno bruto|PIB]] ([[Paridad de poder adquisitivo|PPA]])', PIBPuesto},
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{'Total', PIBAnio},
				{'[[Renta per cápita|Per cápita]]', PIBPerCapita},
			},
			{'PIB (nominal)', PIBNominalPuesto},
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{'Total', PIBNominalAnio},
				{'Per cápita', PIBNominalPerCapita},
			},
			{'[[Índice de desarrollo humano|IDH]]', IDH},
			{'[[Coeficiente de Gini]]', Gini},
			{'[[Moneda (divisa)|Moneda]]', Moneda},
		},
		{tipo='sección',
			titulo  			= 'Información internacional',
			Huso,
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{'En [[Horario de verano|verano]]', HorarioVerano},
			},
			{'[[ISO 3166-1|Código ISO]]', CodigoISO},
			{'[[Dominio de nivel superior geográfico#Lista de dominios de nivel superior geográfico|Dominio internet]]', CCTD},
			{'<small>[[Anexo:Prefijos telefónicos internacionales|Prefijo telefónico]]</small>', PrefijoTelef},
			{'<small>[[Anexo:Prefijos radiofónicos|Prefijo radiofónico]]</small>', PrefijoRadio},
			{'[[Matrícula (aeronaves)|Siglas país para aeronaves]]', PrefijoMatAero},
			{'[[Anexo:Siglas automovilísticas internacionales|Siglas país para automóviles]]', PrefijoMatAuto},
			{'[[Anexo:Códigos del COI para los países|Código del COI]]', },
		},
		MiembroDe,
		estilopiedetabla	= 'text-align:left',
		--piedetabla			= Notas,
		piedetabla			= Debug,
	}
	return infobox(TablaFicha)
end

function p.FichaEstadoDesaparecido(frame)
	_init(frame)
	
	local ClaseTitulo	= 'adr'

	-- Subtítulo: estado actual 
	local Subtitulo
	
	local Predecesor = (function()
		local Predecesor = {}
		local Anio, Imagen, Bandera, Enlace
		for i = 1, 21, 1 do
			if not argumentos{'p'..i} then break end
			Enlace	= {}
			table.insert(Enlace, enlazar(argumentos{'p'..i}, '←'))
			if argumentos{'año_p'..i} then table.insert(Enlace, '<small>(' .. argumentos{'año_p'..i} .. ')</small>') end
			
			if argumentos{'bandera_p'..i} then 
				table.insert(Enlace, enlazar(argumentos{'bandera_p'..i}, '30px|border|link=' .. argumentos{'p'..i}, 'Archivo'))
			elseif argumentos{'imagen_p'..i} then
				table.insert(Enlace, argumentos{'imagen_p'..i})
			else
				table.insert(Enlace, (
						enlazar('bandera_de_'..argumentos{'p'..i}..'.svg', '30px|border|link=' .. argumentos{'p'..i}, 'Archivo') or
						enlazar('bandera_de_la_'..argumentos{'p'..i}..'.svg', '30px|border|link=' .. argumentos{'p'..i}, 'Archivo') or
						enlazar('3by2white.svg', '30px|border|link=' .. argumentos{'p'..i}, 'Archivo')
					)
				)
			end

			table.insert(Predecesor, table.concat(Enlace))
		end
		if #Predecesor > 0 then return table.concat(Predecesor, '<br>') end
		return propiedad('P155', {['lista'] = 'nobullet'})
	end)()
	
	local Periodo	= (function()
		if argumentos{'duración'} then return argumentos{'duración'} end
		if argumentos{'año_inicio'} and argumentos{'año_fin'} then return argumentos{'año_inicio'}  .. ' - ' .. argumentos{'año_fin'} end
	end)()

	local Sucesor = (function()
		local Datos = {}
		for i = 1, 21, 1 do
			if not argumentos{'s'..i} then break end
			Enlace	= {}
			if argumentos{'año_s'..i} then table.insert(Enlace, '<small>(' .. argumentos{'año_s'..i} .. ')</small>') end
			if argumentos{'bandera_s'..i} then 
				table.insert(Enlace, enlazar(argumentos{'bandera_s'..i}, '30px|border|link=' .. argumentos{'s'..i}, 'Archivo'))
			elseif argumentos{'imagen_s'..i} then
				table.insert(Enlace, argumentos{'imagen_s'..i})
			else
				table.insert(Enlace, (
						enlazar('bandera_de_'..argumentos{'s'..i}..'.svg', '30px|border|link=' .. argumentos{'s'..i}, 'Archivo') or
						enlazar('bandera_de_la_'..argumentos{'s'..i}..'.svg', '30px|border|link=' .. argumentos{'s'..i}, 'Archivo') or
						enlazar('3by2white.svg', '30px|border|link=' .. argumentos{'s'..i}, 'Archivo')
					)
				)
			end
			table.insert(Enlace, enlazar(argumentos{'s'..i}, '→'))

			table.insert(Datos, table.concat(Enlace))
		end
		if #Datos > 0 then return table.concat(Datos, '<br>') end
		return propiedad('P155', {['lista'] = 'nobullet'})
	end)()
	
	local Bandera		= argumentos{'imagen_bandera', {propiedad, 'P41', {['formato'] = 'archivo'}}}
	local TamanoBandera	= argumentos{'bandera_tamaño'} or '135x110px'
	local PieBandera	= enlazar(argumentos{'bandera'}, (argumentos{'bandera_denom'} or 'Bandera')) or enlazar('Bandera de ' .. (argumentos{'nombre_común'} or ''), (argumentos{'bandera_denom'} or 'Bandera')) or enlazar('Bandera de la ' .. (argumentos{'nombre_común'} or ''), (argumentos{'bandera_denom'} or 'Bandera'))

	local Escudo		= argumentos{'imagen_escudo', {propiedad, 'P94', {['formato'] = 'archivo'}}}
	local TamanoEscudo	= argumentos{'escudo_tamaño'} or '110x105px'
	local PieEscudo		= enlazar(argumentos{'símbolo'}, (argumentos{'escudo_denom'} or 'Escudo')) or enlazar('Escudo de ' .. (argumentos{'nombre_común'} or ''), (argumentos{'escudo_denom'} or 'Escudo')) or enlazar('Escudo de la ' .. (argumentos{'nombre_común'} or ''), (argumentos{'escudo_denom'} or 'Escudo'))

	local Mapa		= enlazar(argumentos{'imagen_mapa', 'mapa', {propiedad, 'P242', {['formato'] = 'archivo', ['uno'] = 'sí'}}}, '250px', 'Archivo')
	local PieMapa	= argumentos{'pie_mapa'}
	
	local Capital = (function()
		local Capital				= argumentos{'capital', {propiedad, 'P36', ['uno'] = 'último', ['ordenar'] = 'por fecha'}}
		local CiudadMasPoblada		= argumentos{'ciudad_más_poblada'}
		local AglomeradoMasPoblado	= argumentos{'aglomerado_más_poblado'}
		
		if Capital == CiudadMasPoblada then return {
			tipo = 'sección',
			{'[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'ciudad más poblada') .. ')</small>', Capital}
		} end

		if Capital == AglomeradoMasPoblado then return {
			tipo = 'sección',
			{'[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'aglomerado urbano más poblado') .. ')</small>', Capital}
		} end
	
		return {
			tipo = 'sección',
			{'[[Capital (política)|Capital]]', Capital},
			{enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'ciudad más poblada'), CiudadMasPoblada},
			{enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'aglomerado urbano más poblado'), AglomeradoMasPoblado},
		}
	end)()

	local CapitalEtiqueta = (function()
		if CiudadMasPoblada == Capital then
			CiudadMasPoblada = ''
			return '[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'ciudad más poblada') .. ')</small>' end
		return '[[Capital (política)|Capital]]'
	end)()
	
	local Lideres = (function()
		local Lideres		= DatosPoliticos['líderes']
		local Gobernantes	= DatosPoliticos['gobernantes']
		local Etiquetas		= DatosPoliticos['etiquetas']

		return (function()
			local Valores = {['tipo'] = 'sección', ['estiloetiqueta'] = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px', ['estilodatos'] = EstiloDatos .. ';border-top:0;padding:0 .6em'}
			table.insert(Valores, {Etiquetas[1], table.concat(Lideres, '<br>')})
			if Gobernantes then table.insert(Valores, {Etiquetas[2], table.concat(Gobernantes, '<br>')}) end
			return Valores
		end)()
	end)()

	-- :: La ficha
	local TablaFicha = {
		titulo  			= Titulo,
		subtitulo			= Subtitulo,
		clase				= Clase,
		clasetitulo			= ClaseTitulo,
		estilotitulo		= EstiloTitulo,
		estilosubtitulo		= 'font-weight:bold; background-color:#cddeff',
		estiloseccion		= EstiloSeccion,
		estiloetiqueta		= EstiloEtiqueta,
		estilodatos			= EstiloDatos,
		-- Data esta implementación, las banderas irán arriba de las suseciones.
		imagenizquierda		= Bandera,
		["tamañoimagenizquierda"]	= TamanoBandera,
		imagenderecha		= Escudo,
		["tamañoimagenderecha"]		= TamanoEscudo,
		pieizquierdo		= PieBandera,
		piederecho			= PieEscudo,
		estilopie			= "font-size:88%",
		{
			tipo				= 'sucesión',
			color				= 'transparent',
			anterior			= Predecesor,
			actual				= Periodo,
			siguiente			= Sucesor,
		},
		{tipo='sección',
			{'', HimnoNacional},
		},
		{tipo='sección',
			titulo  			= 'Ubicación',
			["tamañoimagen"]	= TamanoImagen,
			{'', Mapa},
		},
		{tipo='sección',
			titulo  			= 'Información general',
			Capital,
			{'[[Sede de gobierno]]', SedeGobierno},
			{'Idiomas oficiales', IdiomaOficial},
			IdiomasHablados,
			{'Gentilicio', Gentilicio},
		},
		{tipo='sección',
			titulo  = 'Información política',
			{'[[Forma de gobierno]]', FormaGobierno},
			Lideres,
			{'[[Órgano ejecutivo]]', OrganoEjecutivo},
			{'[[Órgano legislativo]]', OrganoLegislativo},
			{'[[Estado confesional|Religión]]', Religion},
		},
		Hitos, -- Esto formatea los hitos como la independencia
		{tipo='sección',
			titulo  	= 'Información geográfica',
			Superficie,
			{'[[Frontera]]s', Fronteras},
			{'[[Línea de costa]]', LineaDeCosta},
			{'[[Anexo:Países por punto más alto|Punto más alto]]', PuntoMasAlto},
			{'Punto más bajo', PuntoMasBajo},
			{'Punto más oriental', PuntoMasOriental},
			{'Punto más occidental', PuntoMasOccidental},
			{'Punto más septentrional', PuntoMasSeptentrional},
			{'Punto más meridional', PuntoMasMeridional},
		},
		{tipo='sección',
			titulo  	= 'Información socioeconómica',
			Poblacion,
			{'[[Producto interno bruto|PIB]] ([[Paridad de poder adquisitivo|PPA]])', PIBPuesto},
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{'Total', PIBAnio},
				{'[[Renta per cápita|Per cápita]]', PIBPerCapita},
			},
			{'PIB (nominal)', PIBNominalPuesto},
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{'Total', PIBNominalAnio},
				{'Per cápita', PIBNominalPerCapita},
			},
			{'[[Índice de desarrollo humano|IDH]]', IDH},
			{'[[Coeficiente de Gini]]', Gini},
			{'[[Moneda (divisa)|Moneda]]', Moneda},
		},
		{tipo='sección',
			titulo  			= 'Información internacional',
			Huso,
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{'En [[Horario de verano|verano]]', HorarioVerano},
			},
			{'[[ISO 3166-1|Código ISO]]', CodigoISO},
			{'[[Dominio de nivel superior geográfico#Lista de dominios de nivel superior geográfico|Dominio internet]]', CCTD},
			{'<small>[[Anexo:Prefijos telefónicos internacionales|Prefijo telefónico]]</small>', PrefijoTelef},
			{'<small>[[Anexo:Prefijos radiofónicos|Prefijo radiofónico]]</small>', PrefijoRadio},
			{'[[Matrícula (aeronaves)|Siglas país para aeronaves]]', PrefijoMatAero},
			{'[[Anexo:Siglas automovilísticas internacionales|Siglas país para automóviles]]', PrefijoMatAuto},
			{'[[Anexo:Códigos del COI para los países|Código del COI]]', },
		},
		{tipo='sección',
			estilodatos = 'padding:0',
			MiembroDe,
		},
		estilopiedetabla	= 'text-align:left',
		piedetabla			= Notas,
	}
	return infobox(TablaFicha)
end

-- Esta función permite obtener los líderes de la entidad, además de
-- preformatear datos según el tipo de gobierno.
function obtenerLideres()
	local FormaGobiernoID	= propiedad('P122', {['formato'] = 'entidadID'})
	local Organismo			= ModuloWikidata.obtenerEtiquetaWikidata(Entidad) or ModuloPaginas.nombrePagina({desambiguar='sí'})

	FormaGobierno		= argumentos{'gobierno', 'forma_de_gobierno', {propiedad, 'P122', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
	OrganoEjecutivo		= argumentos{'órgano_ejecutivo',{propiedad, 'P208', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
	OrganoLegislativo	= argumentos{'órgano_legislativo',{propiedad, 'P194', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}}

	local Datos			= {}
	Datos['líderes']	= {}
	Datos['gobernantes']= {}
	Datos['etiquetas']	= {}

	-- Presidencialismo
	if ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P1906', {['formato'] = 'entidadID'})), 'P279', 'Q248577')
	or ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P1906', {['formato'] = 'entidadID'})), 'P279', 'Q30461')
	then
		table.insert(Datos['líderes'], argumentos{'nombre_líder1', 'líder1', {propiedad, 'P35', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}})
		table.insert(Datos['etiquetas'], argumentos{'título_líder1', (function()
			if ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P35', {['formato'] = 'entidadID'})), 'P21', 'Q6581072') then return enlazar('Presidenta') end
			return enlazar('Presidente')
		end)})

		table.insert(Datos['líderes'], argumentos{'nombre_líder2', 'líder2'})--, {propiedad, 'P6149', {['uno'] = 'sí'}}} -- Buscar propiedad
		table.insert(Datos['etiquetas'], argumentos{'título_líder2', {enlazar, 'Vicepresidente'}})
		return Datos
	end

	-- Monarquía parlamentaria/constitucional
	if ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P1906', {['formato'] = 'entidadID'})), 'P279', 'Q116') then
		table.insert(Datos['líderes'], argumentos{'nombre_líder1', 'líder1', {propiedad, 'P35', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}})
		table.insert(Datos['líderes'], argumentos{'nombre_líder2', 'líder2', {propiedad, 'P35', {['formato'] = 'enlace', ['calificador'] = 'P1393', ['ordenar'] = 'por fecha', ['uno'] = 'último', ['valor_posicional'] = 'último', ['valor_posicional_calif'] = 'último'}}})
		table.insert(Datos['líderes'], argumentos{'nombre_líder3', 'líder3', {propiedad, 'P6', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}})

		table.insert(Datos['etiquetas'], argumentos{'título_líder1', (function()
			if ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P35', {['formato'] = 'entidadID'})), 'P21', 'Q6581072') then return enlazar('Reina') end
			return enlazar('Rey')
		end)})

		table.insert(Datos['etiquetas'], argumentos{'título_líder2', (function()
			if ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P35', {['formato'] = 'entidadID', ['calificador'] = 'P1393', ['ordenar'] = 'por fecha', ['uno'] = 'último', ['valor_posicional'] = 'último', ['valor_posicional_calif'] = 'último'})), 'P21', 'Q6581072') then return enlazar('Gobernador general de ' .. Organismo, 'Gobernadora general') end
			return enlazar('Gobernador general de ' .. Organismo)
		end)})

		table.insert(Datos['etiquetas'], argumentos{'título_líder3', {enlazar, 'Primer ministro'}})

		return Datos
	end

	-- ::Por defecto
	return (function()
		table.insert(Datos['líderes'], argumentos{'nombre_líder1', 'líder1', 'líder' , {propiedad, 'P35', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}})
		table.insert(Datos['etiquetas'], argumentos{'título_líder1', 'título_líder', (function()
			if ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P35', {['formato'] = 'entidadID'})), 'P21', 'Q6581072') then return enlazar('Jefe de estado', 'Jefa de estado') end
			return enlazar('Jefe de estado')
		end)})
		for i = 2, 20, 1 do
			if not argumentos{'nombre_líder' .. i, 'líder' .. i} then break end
			table.insert(Datos['líderes'], argumentos{'nombre_líder' .. i, 'líder' .. i})
		end

		if argumentos{'título_gobernante'} then
			table.insert(Datos['etiquetas'], argumentos{'título_gobernante'})
			for i = 2, 20, 1 do
				if not argumentos{'nombre_gobernante' .. i, 'gobernante' .. i} then break end
				table.insert(Datos['gobernantes'], argumentos{'nombre_gobernante' .. i, 'gobernante' .. i})
			end
		end
		return Datos
	end)()
end

-- Envoltura para la plantilla "Mapa de localización" y <mapframe>
function obtenerMapa(frame, parametros)
	if not parametros then parametros = {} end

	if parametros['latitud'] and parametros['longitud'] then
		if parametros['tipo'] == 'interactivo' then return frame:preprocess('<mapframe frameless align=center width=275 height=250 zoom=' .. (tonumber(parametros['zoom']) or 10) .. ' latitude=' .. parametros['latitud'] .. ' longitude=' .. parametros['longitud'] ..' />') end

		-- Por alguna razón, esto arroja error al no entregar un valor de longitud válido,
		-- a pesar de que se está pasando como parámetro. Se deja para uso local.
		--return require('Módulo:Mapa_de_localización').main(frame, parametros)
	end
end

function seccionDesplegable(frame, titulo, lista, minimo)
	if lista then
		if minimo == true or(string.len(lista) > (tonumber(minimo) or 400)) then
			if not titulo then titulo = 'Varios' end
			return {tipo='sección', estilodatos = 'padding:0', {'', frame:preprocess('{{Sección desplegable|align=left|estilotitulo=padding:.4em .6em;border-top:0;background-color:' .. ColorEtiqueta .. '|título=' .. titulo .. '|datos='.. lista .. '}}')}}
		end
		return {tipo='sección', {titulo, lista}} end
end

-- Envoltura para Módulo:Wikidata/Formatos.enlazar()
function enlazar(enlace, etiqueta, espaciodenombres)
	if not enlace then return end
	if espaciodenombres then enlace = espaciodenombres .. ':' .. enlace end
	return ModuloFormatos.enlazar(enlace, etiqueta)
end

function round(num, numDecimalPlaces)
	if type(num) == 'number' then
		return tonumber(string.format("%." .. (numDecimalPlaces or 0) .. "f", num))
	else
		return num
	end
end

-- Función, propiedad() personalizada
function propiedad(idPropiedad, opciones, entidad, frame)
	if not entidad then entidad = Entidad end

	if entidad and entidad.claims and entidad.claims[idPropiedad] then
		if not opciones then
			opciones = {['linkback']='sí'}
		end

		local ValorPosicional = (function()
			if opciones['valor_posicional'] == 'último' then return -1 end
			if type(opciones['valor_posicional']) == 'number' then return opciones['valor_posicional'] end
			return 1
		end)()

		local ValorPosicionalCalif =(function()
			if opciones['valor_posicional_calif'] == 'último' then return -1 end
			if type(opciones['valor_posicional_calif']) == 'number' then return opciones['valor_posicional_calif'] end
			return 1
		end)()
		
		local Calificador = opciones['calificador']

		local Obj = (function()
			local Obj = (function()
				local Obj = elementoTabla(entidad, 'claims', idPropiedad)
				if ValorPosicional == -1 then return elementoTabla(Obj, #Obj) end
				return elementoTabla(Obj, ValorPosicional)
			end)()
			
			if Calificador then
				return (function()
					local Obj = elementoTabla(Obj, 'qualifiers', Calificador)
					if ValorPosicionalCalif == -1 then return elementoTabla(Obj, #Obj, 'datavalue') end
					return elementoTabla(Obj, ValorPosicionalCalif, 'datavalue')
				end)()
			end
			return elementoTabla(Obj, 'mainsnak', 'datavalue')
		end)()

		if Obj then
			Tipo	= elementoTabla(Obj, 'type')
			
			-- Devolver el ID de la entidad, para propiedades de entidad
			if opciones['formato'] == 'entidadID' then
				return elementoTabla(Obj, 'value', 'id')
			end
			
			-- Obtener la propiedad como cadena sin formato
			if opciones['formato'] == 'cadena' then
				opciones['linkback'] = 'no'
				if Tipo == 'string' then
					return elementoTabla(Obj, 'value')
				end
			end
	
			-- Devolver una cadena numérica correctamente formateada
			if opciones['formato'] == 'número' then
				if Tipo == 'quantity' then
					return formatoNumero(elementoTabla(Obj, 'value', 'amount'))
				end
			end
	
			-- Devolver una cadena numérica con su unidad
			if opciones['formato'] == 'unidad' then
				if elementoTabla(entidad, 'claims', idPropiedad, 2, 'mainsnak', 'datavalue') then
					return formatoNumero(elementoTabla(entidad, 'claims', idPropiedad, 1, 'mainsnak', 'datavalue', 'value', 'amount')) .. '&nbsp;-&nbsp;' .. numeroUnidad(elementoTabla(entidad, 'claims', idPropiedad, 2, 'mainsnak', 'datavalue'), opciones)
				else
					return numeroUnidad(elementoTabla(entidad, 'claims', idPropiedad, 1, 'mainsnak', 'datavalue'), opciones)
				end
			end
			
			-- Obtener la propiedad como cadena sin formato
			if opciones['formato'] == 'enlace' then
				opciones['linkback'] = 'no'
				if Tipo == 'wikibase-entityid' then
					return enlazar(ModuloWikidata.obtenerEtiquetaWikidata(mw.wikibase.getEntity(elementoTabla(Obj, 'value', 'id'))))
				elseif Tipo == 'string' then
					return enlazar(elementoTabla(Obj, 'value'))
				end
			end
			
			-- Preparar para devolver el archivo más reciente en la propiedad. Buscar cómo hacerlo con los calificadores
			if opciones['formato'] == 'archivo' then
				if Calificador then return elementoTabla(Obj, 'value') end
				if not opciones['uno'] then opciones['uno'] = 'último' end
				opciones['ordenar'] = 'por fecha'
			end
			
			if Tipo == 'globecoordinate' then
				if opciones['formato'] == 'latitud' then return elementoTabla(Obj, 'value', 'latitude') end
				if opciones['formato'] == 'longitud' then return elementoTabla(Obj, 'value', 'longitude') end
			end
		end

		-- Invocar a la función fallback si no se cumplen las condiciones anteriores
		opciones.entityId  = entidad.id
		opciones.propiedad = idPropiedad
		return ModuloWikidata.getPropiedad(opciones, entidad.claims[idPropiedad])
	end
end

return p