Módulo:Ficha de entidad administrativa

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

  • _init() crea las variables utilizadas por las demás funciones públicas (las cuales llaman a esta función), de manera de no duplicar código.
  • p.FichaPais() es la función invocada por {{Ficha de país}}.
  • p.FichaEntidadSubnacional() es la función invocada por {{Ficha de entidad subnacional}}.
  • p.FichaEntidadDesaparecida() es la función invocada por {{Ficha de estado desaparecido}} (y {{tl|icha de antigua entidad territorial})} en proceso de fusión.
  • obtenerLideres() permite obtener los líderes de la entidad, además de preformatear datos según el tipo de gobierno.
  • obtenerMapa() envoltura para la plantilla {{Mapa de localización}}.
  • seccionDesplegable() envoltura para la plantilla {{Sección desplegable}}.
  • listaDesplegable() envoltura para la plantilla {{Lista desplegable}}.
  • enlazar() envoltura para la función ModuloFormatos.enlaza()
  • propiedad() envoltura personalizada para ModuloWikidata.getPropiedad()

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
Ficha de entidad administrativa




Lema: In God we trust
(inglés: «En Dios confiamos»)  [1]
Himno: The Star-Spangled Banner
(inglés: «La bandera tachonada de estrellas»)
Forma de gobierno República federal presidencialista
Presidente Donald Trump
Mike Pence
Órgano ejecutivo Gobierno federal de los Estados Unidos
Órgano legislativo Congreso de los Estados Unidos
 • 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²
Agua 2,2% del total
Fronteras 12 048 km
Línea de costa 19 924 km
Punto más alto Denali y Monte Whitney Ver y modificar los datos en Wikidata
Población Puesto 3º
Censo (2010) 309 349 689 hab.
Estimación (2017) 325 719 178 hab.
Densidad (est.) 35,6 hab./km²
PIB (PPA) Puesto 2.º
Total (2020) Decrecimiento USD 21,345 billones
Per cápita Crecimiento USD 62 152
PIB (nominal) Puesto 2.º
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
Sitio web oficial
  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 (sin datos locales)
Ficha de entidad administrativa




Lema: In God We Trust y E Pluribus Unum
Himno: The Star-Spangled Banner
Forma de gobierno presidencialismo
Joe Biden
Órgano ejecutivo Gobierno federal de los Estados Unidos
Órgano legislativo Congreso de los Estados Unidos
Superficie total 9 826 675 km²
Punto más alto Denali y Monte Whitney Ver y modificar los datos en Wikidata
Población total 331 449 281 hab. (2020)
Estimación (2021) 332 278 200 hab.
Coeficiente de Gini 2011
Moneda dólar estadounidense Ver y modificar los datos en Wikidata
Código ISO US Ver y modificar los datos en Wikidata
USA Ver y modificar los datos en Wikidata
840 Ver y modificar los datos en Wikidata
Dominio internet .us, .mil y .gov Ver y modificar los datos en Wikidata
Prefijo telefónico +1 Ver y modificar los datos en Wikidata
Prefijo radiofónico
Siglas país para automóviles USA Ver y modificar los datos en Wikidata
Sitio web oficial


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 3]
 • 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 4]
 • 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
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
Superficie total 837,89 km²
Población total 6 254 314 hab. (2017)
Densidad 8497 hab./km²
IDH (2022) 0,883  (1.º) – Muy alto
Huso horario UTC–4 (Abr. - Sept.)
En verano UTC–3 (Sept. - Abr.)
Prefijo radiofónico
Propuesta (sin datos locales)
Ficha de entidad administrativa
Capital de Chile





Superficie total 837,89 km²
Población total 6 257 516 hab. (2017)
Huso horario UTC−4
Prefijo radiofónico
Sitio web oficial


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
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.
Forma de gobierno Autocracia
Órgano legislativo Senado del Imperio Romano
Religión Politeísmo romano (27 a. C.-270 d. C.)
Monismo solar (270-380)
Cristianismo (380-1453)
Moneda Denario, sestercio, sólido bizantino
Imperio romano
Imperium Rōmānum

Propuesta (sin datos locales)
Imperio romano
Imperium Romanum (latín)
Βασιλεία τῶν Ῥωμαίων (griego antiguo)
Estado desaparecido




Forma de gobierno monarquía absoluta
Órgano legislativo Senado del Imperio Romano
Religión religión de la Antigua Roma e Iglesia estatal del Imperio romano Ver y modificar los datos en Wikidata
Moneda sestercio, denario, moneda en la Antigua Roma, áureo y as Ver y modificar los datos en Wikidata
período helenístico
Imperio romano
Imperium Romanum (latín)
Βασιλεία τῶν Ῥωμαίων (griego antiguo)
período helenístico


Lista completa

Referencias

  1. a b c d e f 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. a b 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. 
  7. 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. 
  8. Canning, Joseph (1996). «Ideas of an Empire». A History of Medieval Political Thought, 300-1450. Psychology Press. pp. 67-70. ISBN 9780415013505. 
  9. 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. 
  10. 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. 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.
  3. 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.
  4. a b 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.
  5. 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.

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').infobox
local elementoTabla		= require('Módulo:Tablas').elemento
local obtenerIdioma		= require('Módulo:Obtener idioma').obtenerIdioma
local enlazar			= require('Módulo:Formato_texto').enlazar2
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	= 'padding:1px 7px'--'width:40%'
local EstiloSubEtiqueta = 'font-weight:100;border-top:0; padding:0 .6em 0 15px'
local EstiloDatos		= 'padding:1px 7px 1px 1px'--'width:60%'
local TamanoImagen1, TamanoImagen2, TamanoImagen3, TamanoImagen4 = '250px'

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

local categorias = ''

-- esta función es llamada al principio de las funciones públicas,
-- y contiene datos comunes para cada ficha
local function _init(frame)
	ModuloWikidata:setFrame(frame)
	ModuloArgs.obtenerTablaDeArgumentos(frame)
	Entidad			= mw.wikibase.getEntity(argumentos{'id'}) or {}
	InstanciaDe		= propiedad('P31', {['formato'] = 'entidadID'})
	SubclaseDe		= propiedad('P279', {['formato'] = 'entidadID'})
	
	-- :: Estilos
	EstiloTitulo			= 'padding:0;' .. (ColorTitulo~='' and ('background-color:' .. ColorTitulo) or '')
	EstiloSeccion			= (ColorTitulo~='' and ('background-color:' .. ColorTitulo) or '')
	EstiloEtiqueta			= EstiloEtiqueta .. ';' .. (ColorEtiqueta~='' and ('background-color:' .. ColorEtiqueta) or '')

	-- :: Datos generales
	NombreOficial	= argumentos{'nombre', 'nombre oficial', 'nombre completo', {elementoTabla, Entidad, 'claims', 'P1448', {['idioma'] = 'es'}}, {ModuloWikidata.obtenerEtiquetaWikidata(Entidad)}, {ModuloPaginas.nombrePagina, {desambiguar='sí'}}} -- 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)()
	
	OtrosIdiomas	= argumentos{'otros idiomas'}
	
	Titulo = ''
	if NombreOriginal then
		Titulo = NombreOficial .. '<div style="font-size:85%;font-style:italic">' .. NombreOriginal .. '</div>'
	elseif NombreNativo then
		Titulo = NombreOficial .. '<div style="font-size:85%;font-style:italic">' .. NombreNativo .. '</div>'
	else
		Titulo = NombreOficial
	end

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

	Bandera			= argumentos{'imagen_bandera', 'bandera', {propiedad, 'P41', {['formato'] = 'archivo'}}}
	TamanoBandera	= argumentos{'bandera_tamaño'} or '140x200px'
	PieBandera		= enlazar(argumentos{'artículo 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'))

	Escudo			= argumentos{'escudo', 'imagen_escudo', {propiedad, 'P94', {['formato'] = 'archivo'}}}
	TamanoEscudo	= argumentos{'escudo_tamaño'} or '140x200px'
	PieEscudo		= enlazar(argumentos{'símbolo'}, (argumentos{'escudo_denom'} or EscudoEtiqueta)) 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'))

-- :: Datos cartográficos
	Mapa1	= obtenerMapa(frame,
			{
				[1]					= ModuloPaginas.nombrePagina({desambiguar='sí'}),
				['zoom']			= (argumentos{'zoom'} or 10),
				['latitude']		= Latitud,
				['longitude']		= 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),
			}
		)
	local MapaLoc1	= argumentos{'mapa_loc', 'pushpin_map'}
	local Etiqueta1	= (argumentos{'nombre', 'nombre_oficial'} or NombreOficial)
	if MapaLoc1 and Etiqueta1 then MapaPie1 = 'Localización de ' .. Etiqueta .. ' en ' .. MapaLoc end
	Mapa2Tamano	= argumentos{'tam_mapa_loc1', 'pushpin_mapsize1'} or 250

	Mapa2	= obtenerMapa(frame,
			{
				[1]					= argumentos{'nombre_mapa_'},
				['zoom']			= (argumentos{'zoom'} or 10),
				['latitude']		= Latitud,
				['longitude']		= 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),
			}
		)
	local MapaLoc2	= argumentos{'mapa_loc1', 'pushpin_map1'}
	local Etiqueta2	= (argumentos{'nombre', 'nombre_oficial'} or NombreOficial)
	if MapaLoc2 and Etiqueta2 then MapaPie2 = 'Localización de ' .. Etiqueta .. ' en ' .. MapaLoc end
	Mapa2Tamano	= argumentos{'tam_mapa_loc1', 'pushpin_mapsize1'} or 250

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

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

	-- :: Datos generales
	LemaNacional	= argumentos{'lema_nacional', 'lema', {propiedad, 'P1546', {['linkback'] = 'no'}}}
	if LemaNacional then LemaNacional = '[[Anexo:Lemas nacionales|Lema]]: <span style="font-style:italic">' .. LemaNacional .. '</span>' end

	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'}}}, {['namespace'] = 6})
				if Archivo then HimnoNacional = '<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
			HimnoNacional = '[[Himno nacional|Himno]]: <span style="font-style:italic">' .. Himno .. '</span></div>'
		end

	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
		Capital = {
			tipo = 'sección',
			{'[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'ciudad más poblada') .. ')</small>', Capital}
		}
	elseif Capital == AglomeradoMasPoblado then
		Capital = {
			tipo = 'sección',
			{'[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'aglomerado urbano más poblado') .. ')</small>', Capital}
		}
	else
		Capital = {
			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
	CapitalEtiqueta	= argumentos{'capital_denominación'} or '[[Capital (política)|Capital]]'

	-- :: Datos políticos
	DatosPoliticos	= obtenerLideres()
	Lideres = {['tipo'] = 'sección', ['estiloetiqueta'] = EstiloEtiqueta ..';'..EstiloSubEtiqueta, ['estilodatos'] = EstiloDatos .. ';border-top:0;padding:0 .6em'}
		for k,v in pairs(DatosPoliticos['líderes']) do
			if not v then break end
			table.insert(Lideres, {DatosPoliticos['etiquetas'][k], v[1]})
		end

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

	Idiomas			= (function()
		local IdiomaOficial			= (function()
			local IdiomaOficialArgs		= argumentos{'idioma', 'idioma_oficial', 'idioma_principal'}
			local IdiomasOficialesArgs	= argumentos{'idiomas', 'idiomas_oficiales'}
			local IdiomasOficialesWd	= propiedad('P37')
			
			if (IdiomaOficialArgs~=nil and IdiomaOficialArgs~='') then
				return {'Idioma oficial', IdiomaOficialArgs}
			elseif (IdiomasOficialesArgs~=nil and IdiomasOficialesArgs~='') then
				return {'Idiomas&nbsp;oficiales', IdiomasOficialesArgs}
			elseif (IdiomasOficialesWd~=nil and IdiomasOficialesWd~='') then
				if(IdiomasOficialesWd:find(',') or IdiomasOficialesWd:find(' y ')) then
					return {'Idiomas oficiales', IdiomasOficialesWd}
				else
					return {'Idioma oficial', IdiomasOficialesWd}
				end
			end
			return ''
		end)()
		
		local IdiomaCooficial			= (function()
			local IdiomaCooficialArgs		= argumentos{'idioma_co-oficial', 'idioma co-oficial'}
			local IdiomasCooficialesArgs	= argumentos{'idiomas_co-oficiales', 'idiomas co-oficiales', 'idiomas_cooficiales'}
		
			-- Para wikidata filtro negativo de calificador (que o tenga P518)
			
			if (IdiomaCooficialArgs~=nil and IdiomaCooficialArgs~='') then
				return {'Cooficial', IdiomaCooficialArgs}
			elseif (IdiomasCooficialesArgs~=nil and IdiomasCooficialesArgs~='') then
				return {'Cooficiales', IdiomasCooficialesArgs}
			end
			return ''
		end)()
		
		local IdiomasHablados			= (function()
			local data = argumentos{'idiomas_hablados', 'idioma_no_oficial', 'otros_idiomas', 'idiomas'}--, {propiedad, 'P2936'}} --Por ahora no importar ochocientosmil de wikidata, estudiar como se puede limitar la lista.
		
			if (data~=nil and data:len()>250) then
				return listaDesplegable(frame, 'Idiomas hablados', data, true)
			else
				return {'Idiomas hablados', data}
			end
			return ''
		end)()

		return	
			{tipo='sección',
				IdiomaOficial,
				{
					tipo			='sección', 
					estiloetiqueta	= EstiloEtiqueta ..';'..EstiloSubEtiqueta,
					estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
					IdiomaCooficial,
					IdiomasHablados,
					OtrosIdiomas,
				},
			}
	end)()

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

	Religion		= argumentos{'religión', {propiedad, 'P140'}}
	
	-- :: Datos geográficos
	Latitud			= round(argumentos{'latitud', {propiedad, 'P625', {['formato'] = 'latitud'}}}, 2)
	Longitud		= round(argumentos{'longitud', {propiedad, 'P625', {['formato'] = 'longitud'}}}, 2)
	
	Superficie			= function(enlacePrincipal, enlacePuesto)
		
		local SuperficieTotal	= (function()
			local Superficie	= argumentos{'superficie'}
			if Superficie then
				Superficie	= formatoNumero(Superficie) .. ' [[kilómetro cuadrado|km²]]'
			else
				Superficie	= propiedad('P2046', {['formato'] = 'unidad', ['separador'] = ' '})
			end
			
			local wdDetail = propiedad('P2046', {['tipo de dato']='área', ['linkback']='sí', ['calificativo']='P518', ['filtroCalificador']='P518;Q16868672'})
			
			
			if (wdDetail~=nil and wdDetail~='') then
				return wdDetail
			end
			
			return Superficie
			
		end)()
		
		local SuperficieTierra	= (function()
			local wd = propiedad('P2046', {['tipo de dato']='área', ['linkback']='sí', ['calificativo']='P518', ['filtroCalificador']='P518;Q205895,Q23442'})
			local param = argumentos{'superficie_tierra'}
			
			if (param~=nil and param:find('%%')) then
			
				if (wd~=nil and wd~='') then
					return '('..param..') '..wd
				else
					return param..' del total'
				end
				
			elseif (param~=nil and not param:find('%%')) then
				return param
			end
			return ''
		end)()

		local SuperficieAgua	= (function()
			local wdData = propiedad('P2046', {['tipo de dato']='área', ['linkback']='sí', ['calificativo']='P518', ['filtroCalificador']='P518;Q23397,Q4022,Q373315,Q102192'})
			local wdPercent = propiedad('P2927', {['formato'] = 'unidad', ['separador'] = ''})
			local param = argumentos{'superficie_agua'}
			
			if (param~=nil and param~='') then
				if (wdData~=nil and wdData~='') then
					return '('..param:gsub('%%', '')..'%) '..wdData
				else
					return param:gsub('%%', '')..'% del total'
				end
			else
				if (wdData~=nil and wdData~='') and (wdPercent~=nil and wdPercent~='') then
					return '('..wdPercent:gsub('%%', '')..'%) '..wdData
				elseif (wdData~=nil and wdData~='') and not (wdPercent~=nil and wdPercent~='') then
					return wdData
				elseif not (wdData~=nil and wdData~='') and (wdPercent~=nil and wdPercent~='') then
					return '('..wdPercent:gsub('%%', '')..'%) del total'
				end
			end
			return ''
		end)()

		local SuperficiePuesto= argumentos{'superficie_puesto'}
		if SuperficiePuesto then
			SuperficiePuesto = (enlacePuesto~=nil and enlazar(enlacePuesto, 'Puesto '..SuperficiePuesto .. 'º') or 'Puesto '..SuperficiePuesto .. 'º')
			return	{
						tipo='sección',
						{(enlacePrincipal~=nil and enlazar(enlacePrincipal, 'Superficie') or 'Superficie'), SuperficiePuesto},
						{
							tipo ='sección',
							estiloetiqueta	= EstiloEtiqueta ..';'..EstiloSubEtiqueta,
							estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
							{'Total', SuperficieTotal},
							{'Tierra', SuperficieTierra},
							{'Agua', SuperficieAgua},
						},
				}
		else
			return	{
						tipo='sección',
						{(enlacePrincipal~=nil and enlazar(enlacePrincipal, 'Superficie') or 'Superficie') .. ' total', SuperficieTotal},
						{
							tipo ='sección',
							estiloetiqueta	= EstiloEtiqueta ..';'..EstiloSubEtiqueta,
							estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
							{'Tierra', SuperficieTierra},
							{'Agua', SuperficieAgua},
						}
					}
		end
	end
	
	Fronteras		= argumentos{'fronteras'}
	if Fronteras then
		Fronteras	= formatoNumero(Fronteras)
	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'}}
	
	Historia = (function(frame)
		--local Historia = {tipo = 'sección', titulo = 'Historia'}
		local Historia = {tipo = 'sección'}

		-- Fundación
		local FundacionFechas	= argumentos{'fundación_fechas'}
		local FundacionEtiqueta	= argumentos{'fundación'}
		local HistoriaEtiqueta		= argumentos{'fundación_hitos'}
		if FundacionEtiqueta and HitosEtiqueta then HitosEtiqueta = FundacionEtiqueta .. "\n" .. HitosEtiqueta end
		table.insert(Historia, {HistoriaEtiqueta, FundacionFechas})

		-- Periodo histórico
		local PeriodoHistorico	= argumentos{'era', {propiedad, 'P2348'}}
		table.insert(Historia, {'Período histórico', PeriodoHistorico})
		
		-- Hitos
		local Hitos = {tipo ='sección', estiloetiqueta	= EstiloEtiqueta ..';border-top:0; padding:.6em .6em 0 15px; font-size:85%; line-height:1.25em', estilodatos = EstiloDatos .. ';border-top:0;padding:.6em .6em 0 .6em'}
		
		-- Evento anterior
		if argumentos{'evento_anterior1'} and argumentos{'fecha_evento_anterior1'} then
			table.insert(Hitos, {argumentos{'evento_anterior1'}, (function()
				if argumentos{'año_evento_anterior1'} then return argumentos{'fecha_evento_anterior1'} .. ' de ' .. argumentos{'año_evento_anterior1'} end
				return argumentos{'fecha_evento_anterior1'}
			end)()})
		end
		
		-- Fecha inicio
		if argumentos{'evento_inicio'} and argumentos{'fecha_inicio'} then
			table.insert(Hitos, {(argumentos{'evento_inicio'} or 'Establecido'), (function()
				if argumentos{'año_inicio'} then return argumentos{'fecha_inicio'} .. ' de ' .. argumentos{'año_inicio'} end
				return argumentos{'fecha_inicio'}
			end)()})
		end
		
		-- Eventos intermedios
		for i = 1, 20, 1 do
			if not argumentos{'evento' .. i} then break end
			table.insert(Hitos, {(argumentos{'evento' .. i}), (function()
				if argumentos{'año_evento' .. i} then return argumentos{'fecha_evento' .. i} .. ' de ' .. argumentos{'año_evento' .. i} end
				return argumentos{'fecha_evento' .. i}
			end)()})
		end
		
		-- Fecha fin
		if argumentos{'evento_fin'} and argumentos{'fecha_fin'} then
			table.insert(Hitos, {(argumentos{'evento_fin'} or 'Disolución'), (function()
				if argumentos{'año_fin'} then return argumentos{'fecha_fin'} .. ' de ' .. argumentos{'año_fin'} end
				return argumentos{'fecha_fin'}
			end)()})
		end
		
		-- Evento posterior
		if argumentos{'evento_posterior1'} and argumentos{'fecha_evento_posterior1'} then
			table.insert(Hitos, {argumentos{'evento_posterior1'}, (function()
				if argumentos{'año_evento_posterior1'} then return argumentos{'fecha_evento_posterior1'} .. ' de ' .. argumentos{'año_evento_posterior1'} end
				return argumentos{'fecha_evento_posterior1'}
			end)()})
		end

		table.insert(Historia, Hitos)

		-- Actualidad
		table.insert(Historia, {'Hoy parte de', argumentos{'hoy', {propiedad, 'P3842'}}})

		return Historia
	end)()
	
	Poblacion			= function(enlacePrincipal, enlaceDensidad)
		
		local PoblacionCenso	= (function()
			local Valor = argumentos{'población', {propiedad, 'P1082', {['filtroCalificador'] = 'P459;Q39825', ['uno'] = 'último', ['ordenar'] = 'por fecha'}}}  -- P459=método | Q39825=censo
			local Anio = argumentos{'población_año', {propiedad, 'P1082', {['filtroCalificador'] = 'P459;Q39825', ['uno'] = 'último', ['ordenar'] = 'por fecha', ['formatoFecha'] = 'año', ['calificador'] = 'P585', ['enlace'] = 'no', ['calificativo'] = ''}}}  -- P585=punto en el tiempo   EL CALIFICATIVO VACÍO ES PORQUE SI NO SE IGNORA EL CALIFICADOR (ni idea de por qué)
			local Notas = argumentos{'población_notas'}
			
			if Valor then
				if Anio then
					return {'Censo&nbsp;'..small('('..Anio..')'), formatoNumero(Valor) .. '&nbsp;hab.' .. (Notas~=nil and Notas or '')}
				else
					return {'Censo', formatoNumero(Valor) .. '&nbsp;hab.' .. (Notas~=nil and Notas or '')}
				end
			end
			return ''
		end)()
		
		local PoblacionCensoValor = argumentos{'población', {propiedad, 'P1082', {['filtroCalificador'] = 'P459;Q39825', ['uno'] = 'último', ['ordenar'] = 'por fecha'}}, {propiedad, 'P1082', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
		local PoblacionCensoAnio = argumentos{'población_año', {propiedad, 'P1082', {['filtroCalificador'] = 'P459;Q39825', ['uno'] = 'último', ['ordenar'] = 'por fecha', ['formatoFecha'] = 'año', ['calificador'] = 'P585', ['enlace'] = 'no', ['calificativo'] = ''}}}
		local PoblacionCensoResumen = formatoNumero(PoblacionCensoValor~=nil and PoblacionCensoValor or '')..'&nbsp;hab.'..(PoblacionCensoAnio~=nil and '&nbsp;('..PoblacionCensoAnio..')' or '')
		
		local PoblacionEstimada	= (function()
			local Valor = argumentos{'población_estimación', {propiedad, 'P1082', {['filtroCalificador'] = 'P459;Q791801,Q29051383', ['uno'] = 'último', ['ordenar'] = 'por fecha'}}}  -- P459=método | Q791801,Q29051383=estimación
			local Anio = argumentos{'población_estimación_año', {propiedad, 'P1082', {['filtroCalificador'] = 'P459;Q791801,Q29051383', ['uno'] = 'último', ['ordenar'] = 'por fecha', ['formatoFecha'] = 'año', ['calificador'] = 'P585', ['enlace'] = 'no', ['calificativo'] = ''}}}  -- P585=punto en el tiempo   EL CALIFICATIVO VACÍO ES PORQUE SI NO SE IGNORA EL CALIFICADOR (ni idea de por qué)
			local Notas = argumentos{'población_estimación_notas'}
			
			if Valor then
				if Anio then
					return {'Estimación&nbsp;'..small('('..Anio..')'), formatoNumero(Valor) .. '&nbsp;hab.' .. (Notas~=nil and Notas or '')}
				else
					return {'Estimación', formatoNumero(Valor) .. '&nbsp;hab.' .. (Notas~=nil and Notas or '')}
				end
			end
			return ''
		end)()
		
		local Superficie = argumentos{'superficie', {propiedad, 'P2046'}}
		
		local Densidad = (function()
			local Notas = argumentos{'densidad_post'}
			local AnioCenso = argumentos{'población_año', {propiedad, 'P1082', {['filtroCalificador'] = 'P459;Q39825', ['uno'] = 'último', ['ordenar'] = 'por fecha', ['formatoFecha'] = 'año', ['calificador'] = 'P585', ['enlace'] = 'no', ['calificativo'] = ''}}}
			local AnioEstimado = argumentos{'población_estimación_año', {propiedad, 'P1082', {['filtroCalificador'] = 'P459;Q791801,Q29051383', ['uno'] = 'último', ['ordenar'] = 'por fecha', ['formatoFecha'] = 'año', ['calificador'] = 'P585', ['enlace'] = 'no', ['calificativo'] = ''}}}
			local Valor = (function()
				local Poblacion = argumentos{'población', {propiedad, 'P1082', {['filtroCalificador'] = 'P459;Q39825', ['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
				if argumentos{'población_densidad', 'densidad'} then return argumentos{'población_densidad', 'densidad'} end
				if tonumber(Poblacion) and tonumber(Superficie) then return (tonumber(Poblacion)/tonumber(Superficie)) else return nil end
			end)()
			local ValorEstimado = (function()
				local PoblacionEstimada = argumentos{'población_estimación', {propiedad, 'P1082', {['filtroCalificador'] = 'P459;Q791801', ['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
				if tonumber(PoblacionEstimada) and tonumber(Superficie) then return (tonumber(PoblacionEstimada)/tonumber(Superficie)) else return nil end
			end)()
			
			if(tonumber(AnioCenso~=nil and AnioCenso or '0')>=tonumber(AnioEstimado~=nil and AnioEstimado or '0')) then
				if Valor then return {(enlaceDensidad~=nil and enlazar(enlaceDensidad, 'Densidad') or 'Densidad'), formatoNumero(Valor, {['decimales'] = 2}) .. '&nbsp;hab./km²' .. (Notas~=nil and Notas or '')}
				elseif ValorEstimado then return {(enlaceDensidad~=nil and enlazar(enlaceDensidad, 'Densidad') or 'Densidad')..'&nbsp;'..small('(est.)'), formatoNumero(ValorEstimado, {['decimales'] = 2}) .. '&nbsp;hab./km²' .. (Notas~=nil and Notas or '')} end
			elseif ValorEstimado then return {(enlaceDensidad~=nil and enlazar(enlaceDensidad, 'Densidad') or 'Densidad')..'&nbsp;'..small('(est.)'), formatoNumero(ValorEstimado, {['decimales'] = 2}) .. '&nbsp;hab./km²' .. (Notas~=nil and Notas or '')} end
			return ''
		end)()

		mw.log('Censo:') mw.logObject(PoblacionCenso)
		mw.log('Estimada:') mw.logObject(PoblacionEstimada)
		mw.log('Densidad:') mw.logObject(Densidad)
		mw.log('------------------') 

		if argumentos{'población_puesto'} then
			return	{
				tipo = 'sección',
				{'Población', (enlacePrincipal~=nil and enlazar(enlacePrincipal, 'Puesto ' .. argumentos{'población_puesto'} .. 'º') or 'Puesto ' .. argumentos{'población_puesto'} .. 'º')},
				{
					tipo = 'sección',
					estiloetiqueta	= EstiloEtiqueta .. ';'..EstiloSubEtiqueta,
					estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
					PoblacionCenso,
					PoblacionEstimada,
					Densidad,
				},
			}
		else
			return	{
				tipo = 'sección',
				{(enlacePrincipal~=nil and enlazar(enlacePrincipal, 'Población total') or 'Población total'), PoblacionCensoResumen},
				{
					tipo = 'sección',
					estiloetiqueta	= EstiloEtiqueta ..';'..EstiloSubEtiqueta,
					estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
					PoblacionEstimada,
					Densidad,
				}
			}
		end
	end

	-- :: Datos socioeconómicos
	function PIBPuesto(pib, enlace)
		local PIB = argumentos{'PIB_puesto'}
		if PIB then return (enlace~=nil and enlazar(enlace, 'Puesto ' .. PIB .. '.º') or 'Puesto ' .. PIB .. '.º') end
		return ''
	end

	PIB				= argumentos{'PIB', {nada, ''}}
	PIBAnio			= argumentos{'PIB_año', {nada, ''}}--, {propiedad, 'P2131', {['uno'] = 'último', ['ordenar'] = 'por fecha', ['calificador'] = 'P585'}}}
	PIBPerCapita	= argumentos{'PIB_per_cápita', {nada, ''}}--, {propiedad, 'P2132', {['uno'] = 'último', ['ordenar'] = 'por fecha', ['calificador'] = 'P585'}}}

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

	IDH				= argumentos{'IDH'}
	IDHAnio			= argumentos{'IDH_año', 'IDH año'}
	IDHpuesto		= argumentos{'IDH_puesto', 'IDH puesto'}
	IDHcategoria	= argumentos{'IDH_categoría', 'IDH categoría'}
	
	IndiceDesarrollo = function(enlace)
		local IDH				= argumentos{'IDH'}
		local IDHAnio			= argumentos{'IDH_año', 'IDH año'}
		local IDHpuesto		    = argumentos{'IDH_puesto', 'IDH puesto'}
		local IDHcategoria   	= argumentos{'IDH_categoría', 'IDH categoría'}
		
		local etiqueta = '[[Índice de desarrollo humano|IDH]]' .. ((IDHAnio~=nil) and (' ('..IDHAnio .. ')') or '')
		
		local dato = ((IDH~=nil) and IDH or '') .. ((IDHpuesto~=nil) and (' ('..(enlace~=nil and enlazar(enlace, IDHpuesto..'.º') or IDHpuesto..'.º')..')&nbsp;–&nbsp;' .. ((IDHcategoria~=nil) and IDHcategoria or '')) or '')
		
		return {etiqueta, dato}
	end
	
	Gini			= argumentos{'gini', {propiedad, 'P1125', {['uno'] = 'último', ['ordenar'] = 'por fecha', ['calificador'] = 'P585'}}}
	
	--Moneda
	Moneda			= argumentos{'moneda', {propiedad, 'P38'}}
	
	Patrono			= argumentos{'patrona', 'patrón', {propiedad, 'P417'}}

	-- Huso horario
	Huso			= seccionDesplegable(frame, '[[Huso horario]]', argumentos{'horario', {propiedad, 'P421', {['lista'] = 'nobullet'}}})
	HorarioVerano	= argumentos{'horario_verano'}
	
	if argumentos{'código_ISO'} then
		CodigoISO = argumentos{'código_ISO'}
	else
		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
		CodigoISO = table.concat(CodigoISO, '<br>')
	end
	
	CCTD			= code(argumentos{'cctld', {propiedad, 'P78'}})

	PrefijoTelef = argumentos{'código_telefónico', {propiedad, 'P474'}}

	PrefijoRadio	= small(code(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		= listaDesplegable(frame, 'Membresía', argumentos{'miembro_de'}, true)--, {propiedad, 'P463'}}, true) Intentar generar la lista utilizando short names, si no es demasiado texto

	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
		if not argumentos{'notas'} == '' then table.insert(Notas, argumentos{'notas'}) end
		if #Notas > 0 then return '<ol class="references">' .. table.concat(Notas) .. '</ol>' end
	end)()
	
	local enlace	= argumentos{'sitio_web', 'sitio web', 'página web', 'página_web', 'web', {propiedad, 'P856', {['enlace']='no', uno='sí'}}}
	local texto		= 'Sitio web oficial'
	SitioWeb		= require('Módulo:URL').enlazar(enlace, texto)
end

-- Para fichas de estados actualmente vigentes
function p.FichaPais(frame)
	_init(frame)
	
	--local ClaseTitulo	= 'adr'
	local ClaseTitulo	= 'mapa fn org'

	-- Subtítulo: Miembro de (discutir este parámetro)
	local Subtitulo			= (function()
		local Unidad		= argumentos{'unidad', {propiedad, 'P31', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
		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  --No retornar, evita el título de 'Estado soberano', discutir inclusión en un futuro
	end)()

	--Categorizar cuando la superficie o la población no son números
	if(argumentos{'superficie'}~=nil and argumentos{'población'}~=nil) then
		if(tonumber(argumentos{'superficie'})==nil or tonumber(argumentos{'población'})==nil) then
			categorias = categorias .. '\n[[Categoría:Wikipedia:Artículos de países que requieren mantenimiento]]'
		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:smaller; font-weight:bold',
		estiloseccion				= EstiloSeccion,
		estiloetiqueta				= EstiloEtiqueta,
		estilodatos					= EstiloDatos,
		imagensuperior				= ImagenPanorama,
		piesuperior					= PieImagenPanorama,
		imagenizquierda				= Bandera,
		["tamañoimagenizquierda"]	= TamanoBandera,
		imagenderecha				= Escudo,
		["tamañoimagenderecha"]		= TamanoEscudo,
		pieizquierdo				= PieBandera,
		piederecho					= PieEscudo,
		estilopie   				= 'font-size:smaller; font-weight:bold',
		estiloseccion				= EstiloSeccion,
		estiloetiqueta				= EstiloEtiqueta,
		estilodatos					= EstiloDatos,
		datosup1					= Apodo,
		datosup2					= LemaNacional,
		datosup3					= HimnoNacional,
		imagenflotante1				= 'sí',
		imagenflotante2				= 'sí',
		imagen1						= Mapa1,
		pie1						= Mapa1Pie,
		['tamañoimagen1']			= TamanoImagen1,
		imagen2						= Mapa2,
		pie2						= Mapa2Pie,
		['tamañoimagen2']			= TamanoImagen2,
		imagen3						= Mapa3,
		pie3						= Mapa3Pie,
		['tamañoimagen3']			= TamanoImagen3,
		imagen4						= Mapa4,
		pie4						= Mapa4Pie,
		['tamañoimagen4']			= TamanoImagen4,
		{tipo='sección',
			--titulo  			= 'Información general',
			Capital,
			{'[[Sede de gobierno]]', SedeGobierno},
			Idiomas,
			{'Gentilicio', Gentilicio},
		},
		{tipo='sección',
			--titulo  = 'Información política',
			{'[[Forma de gobierno]]', FormaGobierno},
			Lideres,
			{'[[Órgano ejecutivo]]', OrganoEjecutivo},
			{'[[Órgano legislativo]]', OrganoLegislativo},
		},
		Historia, -- Esto formatea los hitos como la independencia
		{tipo='sección',
			--titulo  	= 'Información geográfica',
			Superficie('Superficie terrestre', 'Anexo:Países por 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},    --Comentados porque no existen en Ficha de país, se pueden añadir a futuro
			--{'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('Anexo:Países y territorios dependientes por población', 'Anexo:Países por densidad de población'),
			{'[[Producto interno bruto|PIB]] ([[Paridad de poder adquisitivo|PPA]])', PIBPuesto(argumentos{'PIB_puesto'}, 'Países por PIB (PPA)')},
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';'..EstiloSubEtiqueta,
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{'Total&nbsp;'..small('('..PIBAnio..')'), PIB},
				{'[[Renta per cápita|Per cápita]]', PIBPerCapita},
			},
			{'PIB (nominal)', PIBPuesto(argumentos{'PIB_nominal_puesto'}, 'Anexo:Países por PIB (nominal)')},
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';'..EstiloSubEtiqueta,
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{'Total&nbsp;'..small('('..PIBNominalAnio..')'), PIBNominal},
				{'Per cápita', PIBNominalPerCapita},
			},
			IndiceDesarrollo('Anexo:Países por índice de desarrollo humano'),
			{'[[Coeficiente de Gini]]', Gini},
			{'[[Moneda (divisa)|Moneda]]', Moneda},
		},
		{tipo='sección',
			--titulo  			= 'Información internacional',
			Huso,
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';'..EstiloSubEtiqueta,
				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},
			{'[[Anexo:Prefijos telefónicos internacionales|Prefijo telefónico]]', PrefijoTelef},
			{'[[Anexo:Prefijos radiofónicos|Prefijo radiofónico]]', 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',
			{'', SitioWeb},
		},
		{tipo='sección',
			estilodatos = 'padding:0',
			MiembroDe,
		},
		estilopiedetabla	= 'text-align:left',
		piedetabla			= Notas,
	}
	return infobox(TablaFicha)..categorias
end

-- Para fichas de entidades subnacionales (estados, regiones, ciudades, etc)
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 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 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'}

	

	-- :: 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:smaller; font-weight:bold',
		estiloseccion				= EstiloSeccion,
		estiloetiqueta				= EstiloEtiqueta,
		estilodatos					= EstiloDatos,
		datosup1					= Apodo,
		datosup2					= LemaNacional,
		datosup3					= HimnoNacional,
		imagenflotante1				= 'sí',
		imagenflotante2				= 'sí',
		imagen1						= Mapa1,
		pie1						= Mapa1Pie,
		['tamañoimagen1']			= TamanoImagen1,
		imagen2						= Mapa2,
		pie2						= Mapa2Pie,
		['tamañoimagen2']			= TamanoImagen2,
		imagen3						= Mapa3,
		pie3						= Mapa3Pie,
		['tamañoimagen3']			= TamanoImagen3,
		imagen4						= Mapa4,
		pie4						= Mapa4Pie,
		['tamañoimagen4']			= TamanoImagen4,
		{tipo='sección',
			--titulo  			= 'Información general',
			Capital,
			{'[[Sede de gobierno]]', SedeGobierno},
			Idiomas,
			{'Gentilicio', Gentilicio},
		},
		{tipo='sección',
			--titulo  = 'Información política',
			{'[[Forma de gobierno]]', FormaGobierno},
			Lideres,
			{'[[Órgano ejecutivo]]', OrganoEjecutivo},
			{'[[Órgano legislativo]]', OrganoLegislativo},
		},
		Historia, -- Esto formatea los hitos como la independencia
		{tipo='sección',
			--titulo  	= 'Información geográfica',
			Superficie('Área', nil),
			{'[[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('Población', 'Densidad de población'),
			{'[[Producto interno bruto|PIB]] ([[Paridad de poder adquisitivo|PPA]])', PIBPuesto(argumentos{'PIB_puesto'}, nil)},
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';'..EstiloSubEtiqueta,
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{'Total', PIBAnio},
				{'[[Renta per cápita|Per cápita]]', PIBPerCapita},
			},
			{'PIB (nominal)', PIBPuesto(argumentos{'PIB_nominal_puesto'}, nil)},
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';'..EstiloSubEtiqueta,
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{'Total', PIBNominalAnio},
				{'Per cápita', PIBNominalPerCapita},
			},
			IndiceDesarrollo(nil),
			{'[[Coeficiente de Gini]]', Gini},
			{'[[Moneda (divisa)|Moneda]]', Moneda},
		},
		{tipo='sección',
			--titulo  			= 'Información internacional',
			Huso,
			{tipo			='sección',
				estiloetiqueta	= EstiloEtiqueta ..';'..EstiloSubEtiqueta,
				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',
			{'', SitioWeb},
		},
		MiembroDe,
		estilopiedetabla	= 'text-align:left',
		--piedetabla		= Notas,
		piedetabla			= Debug,
	}
	return infobox(TablaFicha)
end

-- Para fichas de entidades administrativas (países, estados, ciudades, etc.) desaparecidas
function p.FichaEntidadDesaparecida(frame)
	_init(frame)
		
	local ClaseTitulo	= 'adr'
	
	-- Subtítulo: Miembro de (discutir este parámetro)
	local Subtitulo			= argumentos{'unidad', 'entidad', {propiedad, 'P31', {['uno'] = 'sí', ['ordenar'] = 'por fecha'}}}

	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}, {['tamaño'] = '30px', ['borde'] = true, ['link'] = argumentos{'p'..i}, ['namespace'] = 6}))
			elseif argumentos{'imagen_p'..i} then
				table.insert(Enlace, argumentos{'imagen_p'..i})
			else
				table.insert(Enlace, (
						enlazar('bandera_de_'..argumentos{'p'..i}..'.svg', {['tamaño'] = '30px', ['borde'] = true, ['link'] = argumentos{'p'..i}, ['namespace'] = 6}) or
						enlazar('bandera_de_la_'..argumentos{'p'..i}..'.svg', {['tamaño'] = '30px', ['borde'] = true, ['link'] = argumentos{'p'..i}, ['namespace'] = 6}) or
						enlazar('3by2white.svg', {['tamaño'] = '30px', ['borde'] = true, ['link'] = argumentos{'p'..i}, ['namespace'] = 6})
					)
				)
			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}, {['tamaño'] = '30px', ['borde'] = true, ['link'] = argumentos{'s'..i}, ['namespace'] = 6}))
			elseif argumentos{'imagen_s'..i} then
				table.insert(Enlace, argumentos{'imagen_s'..i})
			else
				table.insert(Enlace, (
					enlazar('bandera_de_'..argumentos{'s'..i}..'.svg', {['tamaño'] = '30px', ['borde'] = true, ['link'] = argumentos{'s'..i}, ['namespace'] = 6}) or
						enlazar('bandera_de_la_'..argumentos{'s'..i}..'.svg', {['tamaño'] = '30px', ['borde'] = true, ['link'] = argumentos{'s'..i}, ['namespace'] = 6}) or
						enlazar('3by2white.svg', {['tamaño'] = '30px', ['borde'] = true, ['link'] = argumentos{'s'..i}, ['namespace'] = 6})
					)
				)
			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 Lideres = (function()
		local Lideres		= (function()
			local Datos	= DatosPoliticos['líderes']
			local Valores	= {}
			for k, v in pairs(Datos) do
				Valor = (function()
					local Lider = v[1]
					local Anio	= v[2]
					if Lider then
						if Anio then return Lider .. '&nbsp;<small>(' .. Anio .. ')</small>' end
						return Lider
					end
				end)()
				if Valor then table.insert(Valores, Valor) end
			end
			if #Valores > 0 then return table.concat(Valores, '<br>') end
		end)()
		
		local Gobernantes	= (function()
			local Datos = DatosPoliticos['gobernantes']
			local Valores = {}
			for k, v in pairs(Datos) do
				Valor = (function()
					local Lider = v[1]
					local Anio	= v[2]
					if Lider then
						if Anio then return Lider .. '&nbsp;<small>(' .. Anio .. ')</small>' end
						return Lider
					end
				end)()
				if Valor then table.insert(Valores, Valor) end
			end
			if #Valores > 0 then return table.concat(Valores, '<br>') end
		end)()

		local Etiquetas		= DatosPoliticos['etiquetas']

		local Valores = {['tipo'] = 'sección', ['estiloetiqueta'] = EstiloEtiqueta ..';'..EstiloSubEtiqueta, ['estilodatos'] = EstiloDatos .. ';border-top:0;padding:0 .6em'}

		if Lideres then table.insert(Valores, {Etiquetas[1], Lideres}) end
		
		table.insert(Valores, {Etiquetas[2], Gobernantes})

		return Valores
	end)()

	local Superficie	= (function()
		local Valor = {}
		for i = 1, 20, 1 do
			Dato		= argumentos{'datos_superficie' .. i}
			if Dato == '' or Dato == nil then break end
			Anio		= argumentos{'datos_año' .. i}
			Dato		= formatoNumero(Dato) .. '&nbsp;km²'
			if Dato and Anio then Dato = Dato .. '&nbsp;(' .. enlazar(Anio) .. ')' end
			table.insert(Valor, Dato)
		end
		return table.concat(Valor, '<br>')
	end)()

	local Poblacion	= (function()
		local Valor = {}
		for i = 1, 20, 1 do
			Dato		= argumentos{'datos_población' .. i}
			if Dato == '' or not Dato then break end
			Anio		= argumentos{'datos_año' .. i}
			Densidad	= (function() if tonumber(Dato) and tonumber(argumentos{'datos_superficie' .. i}) then return formatoNumero((tonumber(Dato)/tonumber(argumentos{'datos_superficie' .. i})), {['decimales'] = 2}) end end)()
			Ref			= argumentos{'ref_población' .. i}

			Dato		= formatoNumero(Dato) .. '&nbsp;hab.'
			if Anio then Dato = Dato .. '&nbsp;(' .. Anio .. ')' end
			if Ref then Dato = Dato .. Ref end
			if Densidad then Dato = Dato .. '<br><small>' .. Densidad .. '&nbsp;hab/km²</small>' end

			table.insert(Valor, Dato)
		end
		return table.concat(Valor, '<br>')
	end)()

	-- :: La ficha
	local TablaFicha = {
		titulo  			= Titulo,
		subtitulo			= Subtitulo,
		subtitulo2			= Periodo,
		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.
		imagensuperior		= ImagenPanorama,
		piesuperior			= PieImagenPanorama,
		imagenizquierda		= Bandera,
		["tamañoimagenizquierda"]	= TamanoBandera,
		imagenderecha		= Escudo,
		["tamañoimagenderecha"]		= TamanoEscudo,
		pieizquierdo		= PieBandera,
		piederecho			= PieEscudo,
		estilopie   		= 'font-size:smaller; font-weight:bold',
		imagensuperior				= ImagenPanorama,
		piesuperior					= PieImagenPanorama,
		imagenizquierda				= Bandera,
		["tamañoimagenizquierda"]	= TamanoBandera,
		imagenderecha				= Escudo,
		["tamañoimagenderecha"]		= TamanoEscudo,
		pieizquierdo				= PieBandera,
		piederecho					= PieEscudo,
		estilopie   				= 'font-size:smaller; font-weight:bold',
		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,
			{'[[Demarcación administrativa|Entidad]]', Subtitulo},
			{'[[Sede de gobierno]]', SedeGobierno},
			{'Gentilicio', Gentilicio},
			Idiomas,
		},
		{tipo='sección',
			--titulo  = 'Información política',
			{'[[Forma de gobierno]]', FormaGobierno},
			Lideres,
			{'[[Órgano ejecutivo]]', OrganoEjecutivo},
			{'[[Órgano legislativo]]', OrganoLegislativo},
			{'[[Estado confesional|Religión]]', Religion},
		},
		{tipo='sección',
			--titulo  	= 'Información geográfica',
			{'[[Superficie terrestre|Superficie]]', Superficie},
			{'[[Anexo:Países y territorios dependientes por población|Población]]', Poblacion},
			{'[[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',
			{'[[Moneda (divisa)|Moneda]]', Moneda},
		},
		{
			tipo				= 'sucesión',
			color				= 'transparent',
			anterior			= Predecesor,
			siguiente			= Sucesor,
		},
		{tipo='sección',
			estilodatos = 'padding:0',
			{'', SitioWeb},
		},
		{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', 'líder' , {propiedad, 'P35', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}},
			argumentos{'año_líder1'}
		})
		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', 'líder' , {propiedad, 'P35', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}},
			argumentos{'año_líder1'}
		})		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
	
	-- Se agregarán más formas de gobierno

	-- ::Por defecto
	return (function()
		local Lider1	= argumentos{'nombre_líder1', 'líder1', 'líder' , {propiedad, 'P35', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
		local Lider1Anio= argumentos{'año_líder1'}
		local Lider1Etiq= 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)()}

		table.insert(Datos['líderes'], {Lider1, Lider1Anio})
		table.insert(Datos['etiquetas'], Lider1Etiq)
		
		for i = 2, 20, 1 do
			if argumentos{'nombre_líder' .. i, 'líder' .. i} == '' or 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},
				argumentos{'año_líder' .. i}
			})
		end

		if argumentos{'título_gobernante'} then
			table.insert(Datos['etiquetas'], argumentos{'título_gobernante'})
			for i = 1, 20, 1 do
				if argumentos{'nombre_gobernante' .. i, 'gobernante' .. i} == '' or not argumentos{'nombre_gobernante' .. i, 'gobernante' .. i} then break end
				table.insert(Datos['gobernantes'], {
				argumentos{'nombre_gobernante' .. i, 'gobernante' .. i},
				argumentos{'año_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['latitude'] and parametros['longitude'] 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, subseccion, 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;' .. (ColorEtiqueta~='' and ('background-color:' .. ColorEtiqueta) or '') .. '|título=' .. titulo .. '|datos='.. lista .. '}}')}}
		end

		if subseccion then
			return {
				tipo='sección',
				estiloetiqueta	= EstiloEtiqueta ..';'..EstiloSubEtiqueta,
				estilodatos		= EstiloDatos .. ';border-top:0;padding:0 .6em',
				{titulo, lista}}
		end
		return {tipo='sección', {titulo, lista}}
	end
end

function listaDesplegable(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', {'', frame:preprocess('{{Lista desplegable|título=' .. titulo .. '|1='.. lista .. '}}')}, estilodatos = 'text-align:left'}
		end
		return {tipo='sección', {titulo, lista}}
	end
end

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

-- Envoltura para <code>
function code(content)
	if(content~=nil) then
		return '<code>'..content..'</code>'
	end
	return ''
end

function small(content)
	if(content~=nil) then
		return '<small>'..content..'</small>'
	end
	return ''
end

-- Función para retornar texto
-- con el propósito de ser usada dentro de argumentos{}
function nada(content) return content end

-- Función, propiedad() personalizada,
-- envoltura para ModuloWikidata.getPropiedad()
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 = 1
			if opciones['valor_posicional'] == 'último' then ValorPosicional = -1 end
			if type(opciones['valor_posicional']) == 'number' then ValorPosicional = opciones['valor_posicional'] end

		local ValorPosicionalCalif = 1
			if opciones['valor_posicional_calif'] == 'último' then ValorPosicionalCalif = -1 end
			if type(opciones['valor_posicional_calif']) == 'number' then ValorPosicionalCalif = opciones['valor_posicional_calif'] 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