Módulo:Ficha de entidad administrativa
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{{Ficha 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ónModuloFormatos.enlaza()
propiedad()
envoltura personalizada paraModuloWikidata.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) | USD 21,345 billones | |||
• Per cápita | USD 62 152 | |||
PIB (nominal) | Puesto 1.º | |||
• Total (2020) | USD 21,345 billones | |||
• Per cápita | USD 62 152 | |||
IDH (2018) | 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 | |||
|
- 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 | |||
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) | USD 21,345 billones | |||
Per cápita | USD 62 152 | |||
PIB (nominal) | Puesto 2.º | |||
Total (2020) | USD 21,345 billones | |||
Per cápita | USD 62 152 | |||
IDH (2018) | 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 | ||||
|
- 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 | |||
Población total | 331 449 281 hab. (2020) | |||
Estimación (2021) | 332 278 200 hab. | |||
Coeficiente de Gini | 2011 | |||
Moneda | dólar estadounidense | |||
| ||||
Código ISO |
US USA 840 | |||
Dominio internet |
.us, .mil y .gov | |||
Prefijo telefónico | +1 | |||
Prefijo radiofónico | ||||
Siglas país para aeronaves | N | |||
Siglas país para automóviles | USA | |||
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 interactivo | ||||
Idioma oficial | Castellano | |||
Entidad | Capital de Chile | |||
• País | Chile | |||
• Región | 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 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 | ||||
---|---|---|---|---|
Entidad subnacional | ||||
| ||||
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 | |||||||||||||||||||||||||||||||||
|
- 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 | ||||
|
- 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 | ||||
Moneda | sestercio, denario, moneda en la Antigua Roma, áureo y as | ||||
|
Lista completa
- Amitie 10g/Taller/Pruebas/Pruebas de Módulo:Ficha de localidad
- Amitie 10g/Taller/Pruebas/Pruebas de Módulo:Ficha de localidad/Alemania nazi
- Amitie 10g/Taller/Pruebas/Pruebas de Módulo:Ficha de localidad/Argentina
- Amitie 10g/Taller/Pruebas/Pruebas de Módulo:Ficha de localidad/Canadá
- Amitie 10g/Taller/Pruebas/Pruebas de Módulo:Ficha de localidad/Estados Unidos
- Amitie 10g/Taller/Pruebas/Pruebas de Módulo:Ficha de localidad/Imperio romano
- Amitie 10g/Taller/Pruebas/Pruebas de Módulo:Ficha de localidad/Rusia
- Amitie 10g/Taller/Pruebas/Pruebas de Módulo:Ficha de localidad/Santiago
Referencias
- ↑ 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.
- ↑ 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.
- ↑ 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
- ↑ Canning, Joseph (1996). «Ideas of an Empire». A History of Medieval Political Thought, 300-1450. Psychology Press. pp. 67-70. ISBN 9780415013505.
- ↑ 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.
- ↑ Riedel, Meredith L. D. (2018). Leo VI and the Transformation of Byzantine Christian Identity. Cambridge University Press. p. 100. ISBN 9781107053076.
- ↑ 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.
- ↑ Canning, Joseph (1996). «Ideas of an Empire». A History of Medieval Political Thought, 300-1450. Psychology Press. pp. 67-70. ISBN 9780415013505.
- ↑ 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.
- ↑ Riedel, Meredith L. D. (2018). Leo VI and the Transformation of Byzantine Christian Identity. Cambridge University Press. p. 100. ISBN 9781107053076.
Notas
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
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 = (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 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 '..small('('..Anio..')'), formatoNumero(Valor) .. ' hab.' .. (Notas~=nil and Notas or '')}
else
return {'Censo', formatoNumero(Valor) .. ' 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 '')..' hab.'..(PoblacionCensoAnio~=nil and ' ('..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 '..small('('..Anio..')'), formatoNumero(Valor) .. ' hab.' .. (Notas~=nil and Notas or '')}
else
return {'Estimación', formatoNumero(Valor) .. ' 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}) .. ' hab./km²' .. (Notas~=nil and Notas or '')}
elseif ValorEstimado then return {(enlaceDensidad~=nil and enlazar(enlaceDensidad, 'Densidad') or 'Densidad')..' '..small('(est.)'), formatoNumero(ValorEstimado, {['decimales'] = 2}) .. ' hab./km²' .. (Notas~=nil and Notas or '')} end
elseif ValorEstimado then return {(enlaceDensidad~=nil and enlazar(enlaceDensidad, 'Densidad') or 'Densidad')..' '..small('(est.)'), formatoNumero(ValorEstimado, {['decimales'] = 2}) .. ' 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..'.º')..') – ' .. ((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 '..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 '..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 .. ' <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 .. ' <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) .. ' km²'
if Dato and Anio then Dato = Dato .. ' (' .. 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) .. ' hab.'
if Anio then Dato = Dato .. ' (' .. Anio .. ')' end
if Ref then Dato = Dato .. Ref end
if Densidad then Dato = Dato .. '<br><small>' .. Densidad .. ' 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')) .. ' - ' .. 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