Diferencia entre revisiones de «Módulo:Ficha de entidad administrativa»
mSin resumen de edición |
m dirty fix |
||
Línea 997: | Línea 997: | ||
function round(num, numDecimalPlaces) |
function round(num, numDecimalPlaces) |
||
if type(num) == 'number' then |
|||
return tonumber(string.format("%." .. (numDecimalPlaces or 0) .. "f", num)) |
|||
else |
|||
return num |
|||
end |
|||
end |
end |
||
Revisión del 15:07 16 dic 2020
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
Error de Lua en package.lua en la línea 80: module 'Módulo:Ficha de localidad/Datos' not found.
- Propuesta (sin datos locales)
Error de Lua en package.lua en la línea 80: module 'Módulo:Ficha de localidad/Datos' not found.
Entidad subnacional
- Actual
Santiago Santiago de la Nueva Extremadura | ||||
---|---|---|---|---|
Capital de Chile | ||||
De arriba a abajo, de izquierda a derecha.
1º fila: Panorámica de Santiago. 2º fila: Estatua de la Inmaculada Concepción en el Santuario del cerro San Cristóbal, y Sanhattan, principal distrito financiero de la ciudad. 3º fila: Fuente de Neptuno en el cerro Santa Lucía, y Biblioteca Nacional. 4º fila: Casas centrales de la Universidad de Chile y Pontificia Universidad Católica de Chile, principales núcleos académicos del país. 5º fila: Palacio de La Moneda, sede del poder ejecutivo de Chile. | ||||
Mapa 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 2] | |||
• Nombre | Santiago de Nueva Extremadura | |||
Superficie | ||||
• Total | 837,89 km² | |||
Altitud | ||||
• Media | 520 m s. n. m. | |||
Clima | Mediterráneo continentalizado Csa | |||
Población (2017) | ||||
• Total | 6 254 314 hab.[n 3] | |||
• Densidad | 8497 hab./km² | |||
Gentilicio |
Santiaguino, -na Capitalino, -na | |||
IDH (2022) | 0,883 (1.º) – Muy alto | |||
Huso horario | UTC–4 (Abr. - Sept.) | |||
• en verano | UTC–3 (Sept. - Abr.) | |||
Patrono(a) | Santiago el Mayor | |||
Miembro de: Unión de Ciudades Capitales Iberoamericanas, Mercociudades |
- Propuesta
Error de Lua en package.lua en la línea 80: module 'Módulo:Ficha de localidad/Datos' not found.
- Propuesta (sin datos locales)
Error de Lua en package.lua en la línea 80: module 'Módulo:Ficha de localidad/Datos' not found.
Estado desaparecido
- Actual
Imperio romano Imperium Rōmānum | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Imperio | ||||||||||||||||||||||||||||||||||
27 a. C.-476/1453 | ||||||||||||||||||||||||||||||||||
Lema: SPQR (en latín: «El Senado y el Pueblo Romano») [1] | ||||||||||||||||||||||||||||||||||
El Imperio romano en el año 117, cuando alcanzó su máxima extensión, bajo el gobierno de Trajano. | ||||||||||||||||||||||||||||||||||
Bajo Imperio romano en el año 394. | ||||||||||||||||||||||||||||||||||
Capital |
Roma (27 a. C.-286) Milán (286-402) Rávena (402-476) Nicomedia (286-330) Constantinopla (330-1204, 1261-1453)[n. 1] | |||||||||||||||||||||||||||||||||
Entidad | Imperio | |||||||||||||||||||||||||||||||||
Idioma oficial | Latín, griego | |||||||||||||||||||||||||||||||||
• Otros idiomas | Véase Lenguas del Imperio romano | |||||||||||||||||||||||||||||||||
Superficie hist. | ||||||||||||||||||||||||||||||||||
• 27 a. C.[1] | 2 750 000 km² | |||||||||||||||||||||||||||||||||
• 117[1][3] | 5 000 000 km² | |||||||||||||||||||||||||||||||||
• 395[1] | 4 400 000 km² | |||||||||||||||||||||||||||||||||
Población hist. | ||||||||||||||||||||||||||||||||||
• 14 [n. 2] est. | 56 800 000 hab. | |||||||||||||||||||||||||||||||||
• 117[1][3] est. | 88 000 000 hab. | |||||||||||||||||||||||||||||||||
Religión |
Politeísmo romano (27 a. C.-270 d. C.) Monismo solar (270-380) Cristianismo (380-1453) | |||||||||||||||||||||||||||||||||
Moneda | Denario, sestercio, sólido bizantino | |||||||||||||||||||||||||||||||||
Período histórico | Edad Antigua y Media | |||||||||||||||||||||||||||||||||
• 16 de enero de 27 a. C. | El Senado proclama a Octavio como Augusto | |||||||||||||||||||||||||||||||||
• 1 de abril de 286 | Primera división del Imperio | |||||||||||||||||||||||||||||||||
• 17 de enero de 395 | División final entre Occidente y Oriente | |||||||||||||||||||||||||||||||||
• 4 de septiembre de 476 | Caída de Occidente | |||||||||||||||||||||||||||||||||
• 29 de mayo de 1453 | Caída de Oriente | |||||||||||||||||||||||||||||||||
Forma de gobierno | Autocracia | |||||||||||||||||||||||||||||||||
Emperador[n. 3] • 27 a. C.-14 d. C. • 1449-1453 |
Augusto Constantino XI | |||||||||||||||||||||||||||||||||
Cónsul[n. 4] • 27 a. C. • 886 d. C. |
Augusto, Agripa León VI el Sabio | |||||||||||||||||||||||||||||||||
Legislatura |
Senado romano Senado bizantino | |||||||||||||||||||||||||||||||||
|
- Propuesta
Error de Lua en package.lua en la línea 80: module 'Módulo:Ficha de localidad/Datos' not found.
- Propuesta (sin datos locales)
Error de Lua en package.lua en la línea 80: module 'Módulo:Ficha de localidad/Datos' not found.
Lista completa
- 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 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.
- ↑ 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.
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.
- ↑ 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.
- ↑ 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.
Error en la cita: Existen etiquetas <ref>
para un grupo llamado «n.», pero no se encontró la etiqueta <references group="n."/>
correspondiente.
local p = {}
local ModuloWikidata = require('Módulo:Wikidata')
local ModuloFormatos = require('Módulo:Wikidata/Formatos')
local ModuloPaginas = require('Módulo:Páginas')
local ModuloArgs = require('Módulo:Argumentos')
local infobox = require('Módulo:Ficha/pruebas').infobox
local elementoTabla = require('Módulo:Tablas').elemento
local obtenerIdioma = require('Módulo:Obtener idioma').obtenerIdioma
local argumentos = ModuloArgs.obtenerValorDeArgumentos
local formatoNumero = ModuloFormatos.formatoNumero2
local numeroUnidad = ModuloFormatos.formatoUnidad2
-- :: Estilos por defecto
local Clase = 'geography vcard'
local ColorTitulo = '#cddeff'
local ColorTituloTexto = '#000'
local ColorEtiqueta = '#eef5f6'
local EstiloEtiqueta = 'width:40%'
local EstiloDatos = 'width:60%'
local TamanoImagen = '250px'
local Datos = mw.loadData('Módulo:Ficha de localidad/Datos')
local function _init(frame)
ModuloWikidata:setFrame(frame)
ModuloArgs.obtenerTablaDeArgumentos(frame)
Entidad = mw.wikibase.getEntity(argumentos{'id'}) or mw.wikibase.getEntity(argumentos{'entidad'}) or {}
InstanciaDe = propiedad('P31', {['formato'] = 'entidadID'})
SubclaseDe = propiedad('P279', {['formato'] = 'entidadID'})
-- :: Estilos
EstiloTitulo = 'padding:0;background-color:' .. ColorTitulo
EstiloSeccion = 'background-color:' .. ColorTitulo
EstiloEtiqueta = EstiloEtiqueta .. ';background-color:' .. ColorEtiqueta
-- :: Datos generales
NombreOficial = elementoTabla(Entidad, 'claims', 'P1448', {['idioma'] = 'es'}) or ModuloWikidata.obtenerEtiquetaWikidata(Entidad) or ModuloPaginas.nombrePagina({desambiguar='sí'})
NombreOriginal = argumentos{'nombre original'}
NombreNativo = (function ()
local NombreNativo = {}
local NombreNativoObj = elementoTabla(Entidad, 'claims', 'P1705')
if NombreNativoObj then
for k, v in pairs(NombreNativoObj) do
local valor, idioma
if elementoTabla(v, 'mainsnak', 'datavalue', 'value', 'language') == 'es' then return false end
valor = elementoTabla(v, 'mainsnak', 'datavalue', 'value', 'text')
idioma= elementoTabla(v, 'mainsnak', 'datavalue', 'value', 'language')
table.insert(NombreNativo, valor .. ' (' .. obtenerIdioma(frame, idioma) .. ')')
if k > 3 then break end -- listar hasta tres nombres, luego terminar el bucle.
end
return table.concat(NombreNativo, '<br>')
end
end)()
Titulo = (function ()
if NombreOriginal then return NombreOficial .. '<div style="font-size:85%;font-style:italic">' .. NombreOriginal .. '</div>' end
if NombreNativo then return NombreOficial .. '<div style="font-size:85%;font-style:italic">' .. NombreNativo .. '</div>' end
return NombreOficial
end)()
PaisesConSellos = Datos['paises']
EscudoEtiqueta = PaisesConSellos[NombreOficial] or PaisesConSellos[Entidad] or 'Escudo'
EscudoPropiedad = (function()
if EscudoEtiqueta == 'Emblema nacional' then return 'P2238' end
if EscudoEtiqueta == 'Sello' or EscudoEtiqueta == 'Gran Sello' then return 'P158' end
return 'P94'
end)()
-- :: Datos generales
LemaNacional = argumentos{'lema_nacional', {propiedad, 'P1546', {['linkback'] = 'no'}}}
if LemaNacional then LemaNacional = '[[Anexo:Lemas nacionales|Lema]]: <span style="font-style:italic">' .. LemaNacional .. '</span>' end
HimnoNacional = (function()
local Himno = argumentos{'himno_nacional', {propiedad, 'P85', {['linkback'] = 'no'}}}
if Himno then
local Archivo = enlazar(argumentos{'archivo_himno_nacional', {propiedad, 'P85', {['calificador'] = 'P51', ['formato'] = 'archivo'}}}, nil, 'Archivo')
if Archivo then return '<div>[[Himno nacional|Himno]]: <span style="font-style:italic">' ..Himno .. '</span></div><div>' .. Archivo .. "</div><div style=\"line-height:1.1em; text-align:center;\" class=\"problemas_sonido\"><small>''[[Ayuda:Multimedia|¿Problemas al reproducir este archivo?]]''</small></div>" end
return '[[Himno nacional|Himno]]: <span style="font-style:italic">' .. Himno .. '</span></div>'
end
end)()
SedeGobierno = argumentos{'sede_gobierno', 'sedes_gobierno'} -- Proponer propiedad
IdiomaOficial = (function()
local IdiomaOficial = {}
table.insert(IdiomaOficial, argumentos{'idioma', 'idiomas', 'idioma_oficial', 'idiomas_oficiales', 'idioma_principal', {propiedad, 'P37', {['calificador'] = 'P3831'}}, {propiedad, 'P37'}})
table.insert(IdiomaOficial, argumentos{'idiomas_co-oficiales', 'idiomas co-oficiales', 'idioma_co-oficial', 'idioma co-oficial', 'idiomas_cooficiales'})
return table.concat(IdiomaOficial, '<br>')
end)()
IdiomasHablados = seccionDesplegable(frame, 'Idiomas hablados', argumentos{'idiomas_hablados', 'idioma_no_oficial', 'idiomas', {propiedad, 'P2936'}})
Gentilicio = argumentos{'gentilicio', {propiedad, 'P1549', {['idioma'] = 'es'}}}
Religion = argumentos{'religión', {propiedad, 'P140'}}
-- :: Datos políticos
DatosPoliticos = obtenerLideres()
-- La idea es traer los valores desde Wikidata, pero dada la complejidad...
Hitos = (function(frame)
local Hitos = {tipo = 'sección', titulo = 'Historia'}
local FundacionFechas = argumentos{'fundación_fechas'}
local FundacionEtiqueta = argumentos{'fundación'}
local HitosEtiqueta = argumentos{'fundación_hitos'}
if FundacionEtiqueta and HitosEtiqueta then HitosEtiqueta = FundacionEtiqueta .. "\n" .. HitosEtiqueta end
table.insert(Hitos, {HitosEtiqueta, FundacionFechas})
return Hitos
end)()
-- :: Datos geográficos
Latitud = round(argumentos{'latitud', {propiedad, 'P625', {['formato'] = 'latitud'}}}, 2)
Longitud = round(argumentos{'longitud', {propiedad, 'P625', {['formato'] = 'longitud'}}}, 2)
Debug = type(Longitud) .. ' ' .. Longitud
Superficie = (function()
local Superficie = argumentos{'superficie'}
if Superficie then
Superficie = formatoNumero(Superficie) .. ' [[kilómetro cuadrado|km²]]'
else
Superficie = propiedad('P2046', {['formato'] = 'unidad', ['separador'] = ' '})
end
local SuperficieAgua = argumentos{'superficie_agua', {propiedad, 'P2927', {['formato'] = 'unidad', ['separador'] = ''}}}
local SuperficiePuesto= argumentos{'superficie_puesto'}
if SuperficiePuesto then
SuperficiePuesto = SuperficiePuesto .. '° lugar'
return {
tipo='sección',
{'[[Anexo:Países por superficie|Superficie]]', SuperficiePuesto},
{
tipo ='sección',
estiloetiqueta = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
estilodatos = EstiloDatos .. ';border-top:0;padding:0 .6em',
{'Total', Superficie},
{'Agua', SuperficieAgua},
},
}
else
return {
tipo='sección',
{'[[Anexo:Países por superficie|Superficie]] total', Superficie},
{
tipo ='sección',
estiloetiqueta = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
estilodatos = EstiloDatos .. ';border-top:0;padding:0 .6em',
{'Agua', SuperficieAgua},
}
}
end
end)()
Fronteras = argumentos{'fronteras'}
if Fronteras then
Fronteras = formatoNumero(Fronteras)
-- Proponer propiedad
--else
--Superficie = propiedad('', {['formato'] = 'unidad'})
end
LineaDeCosta = formatoNumero(argumentos{'costas'})
PuntoMasAlto = argumentos{'punto_más_alto', {propiedad, 'P610'}}
PuntoMasBajo = argumentos{'punto_más_bajo', {propiedad, 'P1589'}}
PuntoMasOriental = argumentos{'punto_más_oriental', {propiedad, 'P1334'}}
PuntoMasOccidental = argumentos{'punto_más_occidental', {propiedad, 'P1335'}}
PuntoMasSeptentrional = argumentos{'punto_más_septentrional', {propiedad, 'P1332'}}
PuntoMasMeridional = argumentos{'punto_más_meridional', {propiedad, 'P1333'}}
-- :: Datos socioeconómicos
Poblacion = (function()
local Poblacion = (function()
local Valor = argumentos{'poblacion', {propiedad, 'P1082', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
if Valor then
return formatoNumero(Valor) .. ' hab.'
end
end)()
local PoblacionEstimada = (function()
local Valor = argumentos{'población_estimación'}
if Valor then
return formatoNumero(Valor) .. ' hab.'
end
-- Buscar la forma de obtener la estimación más reciente.
-- Se puede usar la opción 'filtroCalificador': P1802 -> Valor -> P459 -> Q791801
end)()
local Superficie = argumentos{'superficie', {propiedad, 'P2046'}}
local Densidad = (function()
local Valor = (function()
local Poblacion = argumentos{'poblacion', {propiedad, 'P1082', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
local PoblacionEstimada = argumentos{'población_estimación'}
if argumentos{'población_densidad'} then return argumentos{'población_densidad'} end
if tonumber(Poblacion) and tonumber(Superficie) then return (tonumber(Poblacion)/tonumber(Superficie)) end
if tonumber(PoblacionEstimada) and tonumber(Superficie) then return (tonumber(PoblacionEstimada)/tonumber(Superficie)) end
end)()
if Valor then return formatoNumero(Valor, {['decimales'] = 2}) .. ' hab./km²' end
end)()
if argumentos{'población_puesto'} then
return {
tipo = 'sección',
{'[[Anexo:Países por población|Población total]]', argumentos{'población_puesto'} .. '° lugar'},
{
tipo = 'sección',
estiloetiqueta = EstiloEtiqueta .. ';border-top:0; padding:0 .6em 0 15px',
estilodatos = EstiloDatos .. ';border-top:0;padding:0 .6em',
{'Censo', Poblacion},
{'Estimación', PoblacionEstimada},
{'[[Anexo:Países por densidad de población|Densidad]]', Densidad},
},
}
else
return {
tipo = 'sección',
{'[[Anexo:Países por población|Población total]]', Poblacion},
{
tipo = 'sección',
estiloetiqueta = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
estilodatos = EstiloDatos .. ';border-top:0;padding:0 .6em',
{'Estimada', PoblacionEstimada},
{'[[Anexo:Países por densidad de población|Densidad]]', Densidad},
}
}
end
end)()
PIBPuesto = (function()
local PIB = argumentos{'PIB_puesto'}
if PIB then return 'Puesto ' .. PIB .. '°' end
end)()
PIBAnio = argumentos{'PIB'}--, {propiedad, 'P2131', {['uno'] = 'último', ['ordenar'] = 'por fecha', ['calificador'] = 'P585'}}}
PIBPerCapita = argumentos{'PIB_per_cápita'}--, {propiedad, 'P2132', {['uno'] = 'último', ['ordenar'] = 'por fecha', ['calificador'] = 'P585'}}}
PIBNominalPuesto= (function()
local PIB = argumentos{'PIB_nominal_puesto'}
if PIB then return 'Puesto ' .. PIB .. '°' end
end)()
PIBNominalAnio = argumentos{'PIB_nominal'}--, {propiedad, 'P2131', {['uno'] = 'último', ['ordenar'] = 'por fecha', ['calificador'] = 'P585'}}}
PIBNominalPerCapita = argumentos{'PIB_nominal_per_cápita'}--, {propiedad, 'P2132', {['uno'] = 'último', ['ordenar'] = 'por fecha', ['calificador'] = 'P585'}}}
IDH = argumentos{'IDH'}
IDHAnio = argumentos{'IDH_año'}
IDHpuesto = argumentos{'IDH_puesto'}
IDHcategoria = argumentos{'IDH_categoría'}
Gini = argumentos{'gini', {propiedad, 'P1125', {['uno'] = 'último', ['ordenar'] = 'por fecha', ['calificador'] = 'P585'}}}
--Moneda
Huso = seccionDesplegable(frame, 'Huso', argumentos{'horario', {propiedad, 'P421', {['lista'] = 'nobullet'}}})
HorarioVerano = argumentos{'horario_verano'}
CodigoISO = (function()
if argumentos{'código_ISO'} then return argumentos{'código_ISO'} end
local CodigoISO = {}
if propiedad('P297') then table.insert(CodigoISO, propiedad('P297')) end
if propiedad('P298') then table.insert(CodigoISO, propiedad('P298')) end
if propiedad('P299') then table.insert(CodigoISO, propiedad('P299')) end
return table.concat(CodigoISO, '<br>')
end)()
CCTD = argumentos{'cctdl', {propiedad, 'P78'}}
PrefijoTelef = argumentos{'código_telefónico', {propiedad, 'P474'}}
PrefijoRadio = argumentos{'prefijo_radiofónico'}--, {propiedad, ''}}-- Solicitar propiedad
PrefijoMatAero = argumentos{'matrícula_avión', {propiedad, 'P2986'}}
PrefijoMatAuto = argumentos{'matrícula_coche', {propiedad, 'P395'}}
COI = argumentos{'código_COI', {propiedad, 'P984'}}
MiembroDe = seccionDesplegable(frame, 'Membresía', argumentos{'miembro_de', {propiedad, 'P463'}}, true)
Notas = (function()
local Notas = {}
for i = 1, 10, 1 do
if argumentos{'nota' .. i} then table.insert(Notas, '<li id="ficha_nota-'.. i .. '">[[#ficha_ref-' .. i .. '|↑]]' .. argumentos{'nota' .. i} .. '</li>') end
end
table.insert(Notas, argumentos{'notas'})
if #Notas > 0 then return '<ol class="references">' .. table.concat(Notas) .. '</ol>' end
end)()
end
function p.FichaPais(frame)
_init(frame)
local ClaseTitulo = 'adr'
-- Subtítulo: Miembro de (discutir este parámetro)
local Subtitulo = (function()
local Unidad = argumentos{'unidad', {propiedad, 'P31', {['uno'] = 'sí'}}}
local Supraunidad = argumentos{'supraunidad'}
local Disputado = argumentos{'disputado'}
if Unidad and Supraunidad then
return Unidad .. ' de ' .. Supraunidad
elseif not Disputado == nil then
return '[[Estado con reconocimiento limitado|Soberanía discutida]]'
end
return Unidad
end)()
local Bandera = argumentos{'imagen_bandera', 'bandera', {propiedad, 'P41', {['formato'] = 'archivo'}}}
local TamanoBandera = argumentos{'bandera_tamaño'} or '135x110px'
local PieBandera = enlazar((argumentos{'artículo bandera', {propiedad, 'P163', {['uno'] = 'sí', ['enlace'] = 'no'}}}) or ('Bandera de ' .. (argumentos{'nombre_común'} or ModuloWikidata.obtenerEtiquetaWikidata(Entidad) or ModuloPaginas.nombrePagina({desambiguar='sí'}))) or ('Bandera de la ' .. (argumentos{'nombre_común'} or ModuloWikidata.obtenerEtiquetaWikidata(Entidad) or ModuloPaginas.nombrePagina({desambiguar='sí'}))), (argumentos{'bandera_denom'} or 'Bandera'))
local Mapa = enlazar(argumentos{'imagen_mapa', 'mapa', {propiedad, 'P242', {['formato'] = 'archivo', ['uno'] = 'sí'}}}, '250px', 'Archivo')
local PieMapa = argumentos{'pie_mapa'}
local Capital = (function()
local Capital = argumentos{'capital', {propiedad, 'P36', ['uno'] = 'último', ['ordenar'] = 'por fecha'}}
local CiudadMasPoblada = argumentos{'ciudad_más_poblada'}
local AglomeradoMasPoblado = argumentos{'aglomerado_más_poblado'}
if Capital == CiudadMasPoblada then return {
tipo = 'sección',
{'[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'ciudad más poblada') .. ')</small>', Capital}
} end
if Capital == AglomeradoMasPoblado then return {
tipo = 'sección',
{'[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'aglomerado urbano más poblado') .. ')</small>', Capital}
} end
return {
tipo = 'sección',
{'[[Capital (política)|Capital]]', Capital},
{enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'ciudad más poblada'), CiudadMasPoblada},
{enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'aglomerado urbano más poblado'), AglomeradoMasPoblado},
}
end)()
local CapitalEtiqueta = (function()
if CiudadMasPoblada == Capital then
CiudadMasPoblada = ''
return '[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'ciudad más poblada') .. ')</small>' end
return '[[Capital (política)|Capital]]'
end)()
local Lideres = (function()
local Lideres = DatosPoliticos['líderes']
local Etiquetas = DatosPoliticos['etiquetas']
return (function()
local Valores = {['tipo'] = 'sección', ['estiloetiqueta'] = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px', ['estilodatos'] = EstiloDatos .. ';border-top:0;padding:0 .6em'}
for k,v in pairs(Lideres) do
table.insert(Valores, {Etiquetas[k], v})
if not v then break end
end
return Valores
end)()
end)()
-- :: La ficha
local TablaFicha = {
titulo = Titulo,
subtitulo = Subtitulo,
clase = Clase,
clasetitulo = ClaseTitulo,
estilotitulo = EstiloTitulo,
estilosubtitulo = 'font-weight:bold; background-color:#cddeff',
imagenizquierda = Bandera,
["tamañoimagenizquierda"] = TamanoBandera,
imagenderecha = Escudo,
["tamañoimagenderecha"] = TamanoEscudo,
pieizquierdo = PieBandera,
piederecho = PieEscudo,
estilopie = "font-size:88%",
estiloseccion = EstiloSeccion,
estiloetiqueta = EstiloEtiqueta,
estilodatos = EstiloDatos,
{tipo='sección',
{'', LemaNacional},
},
{tipo='sección',
{'', HimnoNacional},
},
{tipo='sección',
titulo = 'Ubicación',
["tamañoimagen"] = TamanoImagen,
{'', Mapa},
},
{tipo='sección',
titulo = 'Información general',
Capital,
{'[[Sede de gobierno]]', SedeGobierno},
{'Idiomas oficiales', IdiomaOficial},
IdiomasHablados,
{'Gentilicio', Gentilicio},
},
{tipo='sección',
titulo = 'Información política',
{'[[Forma de gobierno]]', FormaGobierno},
Lideres,
{'[[Órgano ejecutivo]]', OrganoEjecutivo},
{'[[Órgano legislativo]]', OrganoLegislativo},
},
Hitos, -- Esto formatea los hitos como la independencia
{tipo='sección',
titulo = 'Información geográfica',
Superficie,
{'[[Frontera]]s', Fronteras},
{'[[Línea de costa]]', LineaDeCosta},
{'[[Anexo:Países por punto más alto|Punto más alto]]', PuntoMasAlto},
{'Punto más bajo', PuntoMasBajo},
{'Punto más oriental', PuntoMasOriental},
{'Punto más occidental', PuntoMasOccidental},
{'Punto más septentrional', PuntoMasSeptentrional},
{'Punto más meridional', PuntoMasMeridional},
},
{tipo='sección',
titulo = 'Información socioeconómica',
Poblacion,
{'[[Producto interno bruto|PIB]] ([[Paridad de poder adquisitivo|PPA]])', PIBPuesto},
{tipo ='sección',
estiloetiqueta = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
estilodatos = EstiloDatos .. ';border-top:0;padding:0 .6em',
{'Total', PIBAnio},
{'[[Renta per cápita|Per cápita]]', PIBPerCapita},
},
{'PIB (nominal)', PIBNominalPuesto},
{tipo ='sección',
estiloetiqueta = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
estilodatos = EstiloDatos .. ';border-top:0;padding:0 .6em',
{'Total', PIBNominalAnio},
{'Per cápita', PIBNominalPerCapita},
},
{'[[Índice de desarrollo humano|IDH]]', IDH},
{'[[Coeficiente de Gini]]', Gini},
{'[[Moneda (divisa)|Moneda]]', Moneda},
},
{tipo='sección',
titulo = 'Información internacional',
Huso,
{tipo ='sección',
estiloetiqueta = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
estilodatos = EstiloDatos .. ';border-top:0;padding:0 .6em',
{'En [[Horario de verano|verano]]', HorarioVerano},
},
{'[[ISO 3166-1|Código ISO]]', CodigoISO},
{'[[Dominio de nivel superior geográfico#Lista de dominios de nivel superior geográfico|Dominio internet]]', CCTD},
{'<small>[[Anexo:Prefijos telefónicos internacionales|Prefijo telefónico]]</small>', PrefijoTelef},
{'<small>[[Anexo:Prefijos radiofónicos|Prefijo radiofónico]]</small>', PrefijoRadio},
{'[[Matrícula (aeronaves)|Siglas país para aeronaves]]', PrefijoMatAero},
{'[[Anexo:Siglas automovilísticas internacionales|Siglas país para automóviles]]', PrefijoMatAuto},
{'[[Anexo:Códigos del COI para los países|Código del COI]]', },
},
{tipo='sección',
estilodatos = 'padding:0',
MiembroDe,
},
estilopiedetabla = 'text-align:left',
piedetabla = Notas,
}
return infobox(TablaFicha)
end
function p.FichaEntidadSubnacional(frame)
_init(frame)
local ClaseTitulo = 'mapa fn org'
local Pais = argumentos{'país', 'pais', {propiedad, 'P17', ['uno'] = 'último', ['ordenar'] = 'por fecha'}}
local Capital = argumentos{'capital', {propiedad, 'P36', ['uno'] = 'último', ['ordenar'] = 'por fecha'}}
local CapitalEtiqueta = argumentos{'capital_denominación'} or '[[Capital (política)|Capital]]'
local Subtitulo = (function()
if argumentos{'unidad'} then return argumentos{'unidad'} end
local Unidad
local Supraunidad
UnidadObj = elementoTabla(Entidad, 'claims', 'P31')
if UnidadObj then
for k,v in pairs(UnidadObj) do
Unidad = elementoTabla(v, 'mainsnak', 'datavalue', 'value', 'id')
Supraunidad = ModuloWikidata.obtenerEtiquetaWikidata(mw.wikibase.getEntity(elementoTabla(v, 'qualifiers', 'P642', 1, 'datavalue', 'value', 'id')))
if Unidad == 'Q5119' and Supraunidad then
return '[[Capital (política)|Capital]] de [[' .. Supraunidad .. ']]'
end
end
end
return '[[Entidad subnacional]]'
end)()
local Bandera = argumentos{'imagen_bandera', 'bandera', {propiedad, 'P41', {['formato'] = 'archivo'}}}
local TamanoBandera = argumentos{'bandera_tamaño'} or '135x110px'
local PieBandera = enlazar((argumentos{'artículo bandera', {propiedad, 'P163', {['uno'] = 'sí', ['enlace'] = 'no'}}}) or ('Bandera de ' .. (argumentos{'nombre_común'} or ModuloWikidata.obtenerEtiquetaWikidata(Entidad) or ModuloPaginas.nombrePagina({desambiguar='sí'}))) or ('Bandera de la ' .. (argumentos{'nombre_común'} or ModuloWikidata.obtenerEtiquetaWikidata(Entidad) or ModuloPaginas.nombrePagina({desambiguar='sí'}))), (argumentos{'bandera_denom'} or 'Bandera'))
local ImagenPanorama = argumentos{'img_panorama_urb', 'image_skyline', 'image_skyline', 'imagen', {propiedad, 'P18', {['formato'] = 'archivo'}}}
local PieImagenPanorama = argumentos{'image_caption', 'pie_img_panorama_urb', 'pie_de_imagen'}
-- :: Datos cartográficos
local Mapa1 = (function()
return obtenerMapa(frame,
{
['nombre'] = ModuloPaginas.nombrePagina({desambiguar='sí'}),
['zoom'] = (argumentos{'zoom'} or 10),
['latitud'] = Latitud,
['longitud'] = Longitud,
['mapa_loc'] = argumentos{'mapa_loc', 'pushpin_map'},
['mapa_etiq'] = (argumentos{'nombre', 'nombre_oficial'} or NombreOficial),
['mapa_etiq_pos'] = argumentos{'pos_etiqueta_loc'},
['mapa_marca'] = argumentos{'imagen_marca_loc'},
['mapa_marca_tam'] = (argumentos{'tam_marca_loc'} or 5),
['mapa_alt'] = argumentos{'mapa_alternativo'},
['mapa_tamaño'] = (argumentos{'tam_mapa_loc', 'pushpin_mapsize'} or 250),
}
)
end)()
local MapaPie1 = (function()
local MapaLoc = argumentos{'mapa_loc', 'pushpin_map'}
local Etiqueta = (argumentos{'nombre', 'nombre_oficial'} or NombreOficial)
if MapaLoc and Etiqueta then return 'Localización de ' .. Etiqueta .. ' en ' .. MapaLoc end
end)()
local Mapa2 = (function()
return obtenerMapa(frame,
{
['zoom'] = (argumentos{'zoom'} or 10),
['latitud'] = Latitud,
['longitud'] = Longitud,
['mapa_loc'] = argumentos{'mapa_loc1', 'pushpin_map1'},
['mapa_etiq'] = (argumentos{'nombre', 'nombre_oficial'} or NombreOficial),
['mapa_etiq_pos'] = argumentos{'pos_etiqueta_loc1'},
['mapa_marca'] = argumentos{'imagen_marca_loc1'},
['mapa_marca_tam'] = (argumentos{'tam_marca_loc1'} or 5),
['mapa_alt'] = argumentos{'mapa_alternativo1'},
['mapa_tamaño'] = (argumentos{'tam_mapa_loc1', 'pushpin_mapsize1'} or 250),
}
)
end)()
local MapaPie2 = (function()
local MapaLoc = argumentos{'mapa_loc1', 'pushpin_map1'}
local Etiqueta = (argumentos{'nombre', 'nombre_oficial'} or NombreOficial)
if MapaLoc and Etiqueta then return 'Localización de ' .. Etiqueta .. ' en ' .. MapaLoc end
end)()
local Mapa3 = argumentos{'mapa', 'imagen_mapa', 'image_map', {propiedad, 'P242'}, {obtenerMapa, frame, {['latitud'] = Latitud, ['longitud'] = Longitud, ['tipo'] = 'interactivo'}}}
local Mapa3Tamano = argumentos{'tam_mapa_loc1', 'pushpin_mapsize1'} or 250
local Mapa3Pie = argumentos{'pie_mapa'}
local Mapa4 = argumentos{'mapa1', 'imagen_mapa1', 'image_map1'}
local Mapa4Tamano = argumentos{'tam_mapa_loc1', 'pushpin_mapsize1'} or 250
local Mapa4Pie = argumentos{'pie_mapa1'}
local Lideres = {}
-- :: La ficha
local TablaFicha = {
titulo = Titulo,
subtitulo = Subtitulo,
clase = Clase,
clasetitulo = ClaseTitulo,
estilotitulo = EstiloTitulo,
estilosubtitulo = 'font-weight:bold; background-color:#cddeff',
imagensuperior = ImagenPanorama,
piesuperior = PieImagenPanorama,
imagenizquierda = Bandera,
["tamañoimagenizquierda"] = TamanoBandera,
imagenderecha = Escudo,
["tamañoimagenderecha"] = TamanoEscudo,
pieizquierdo = PieBandera,
piederecho = PieEscudo,
estilopie = "font-size:88%",
estiloseccion = EstiloSeccion,
estiloetiqueta = EstiloEtiqueta,
estilodatos = EstiloDatos,
datosup1 = Apodo,
datosup2 = LemaNacional,
datosup3 = HimnoNacional,
imagenflotante1 = 'sí',
imagenflotante2 = 'sí',
imagen1 = Mapa1,
pie1 = Mapa1Pie,
imagen2 = Mapa2,
pie2 = Mapa2Pie,
imagen3 = Mapa3,
pie3 = Mapa3Pie,
imagen4 = Mapa4,
pie4 = Mapa4Pie,
{tipo='sección',
titulo = 'Información general',
Capital,
{'[[Sede de gobierno]]', SedeGobierno},
{'Idiomas oficiales', IdiomaOficial},
IdiomasHablados,
{'Gentilicio', Gentilicio},
},
{tipo='sección',
titulo = 'Información política',
{'[[Forma de gobierno]]', FormaGobierno},
Lideres,
{'[[Órgano ejecutivo]]', OrganoEjecutivo},
{'[[Órgano legislativo]]', OrganoLegislativo},
},
Hitos, -- Esto formatea los hitos como la independencia
{tipo='sección',
titulo = 'Información geográfica',
Superficie,
{'[[Frontera]]s', Fronteras},
{'[[Línea de costa]]', LineaDeCosta},
{'[[Anexo:Países por punto más alto|Punto más alto]]', PuntoMasAlto},
{'Punto más bajo', PuntoMasBajo},
{'Punto más oriental', PuntoMasOriental},
{'Punto más occidental', PuntoMasOccidental},
{'Punto más septentrional', PuntoMasSeptentrional},
{'Punto más meridional', PuntoMasMeridional},
},
{tipo='sección',
titulo = 'Información socioeconómica',
Poblacion,
{'[[Producto interno bruto|PIB]] ([[Paridad de poder adquisitivo|PPA]])', PIBPuesto},
{tipo ='sección',
estiloetiqueta = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
estilodatos = EstiloDatos .. ';border-top:0;padding:0 .6em',
{'Total', PIBAnio},
{'[[Renta per cápita|Per cápita]]', PIBPerCapita},
},
{'PIB (nominal)', PIBNominalPuesto},
{tipo ='sección',
estiloetiqueta = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
estilodatos = EstiloDatos .. ';border-top:0;padding:0 .6em',
{'Total', PIBNominalAnio},
{'Per cápita', PIBNominalPerCapita},
},
{'[[Índice de desarrollo humano|IDH]]', IDH},
{'[[Coeficiente de Gini]]', Gini},
{'[[Moneda (divisa)|Moneda]]', Moneda},
},
{tipo='sección',
titulo = 'Información internacional',
Huso,
{tipo ='sección',
estiloetiqueta = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
estilodatos = EstiloDatos .. ';border-top:0;padding:0 .6em',
{'En [[Horario de verano|verano]]', HorarioVerano},
},
{'[[ISO 3166-1|Código ISO]]', CodigoISO},
{'[[Dominio de nivel superior geográfico#Lista de dominios de nivel superior geográfico|Dominio internet]]', CCTD},
{'<small>[[Anexo:Prefijos telefónicos internacionales|Prefijo telefónico]]</small>', PrefijoTelef},
{'<small>[[Anexo:Prefijos radiofónicos|Prefijo radiofónico]]</small>', PrefijoRadio},
{'[[Matrícula (aeronaves)|Siglas país para aeronaves]]', PrefijoMatAero},
{'[[Anexo:Siglas automovilísticas internacionales|Siglas país para automóviles]]', PrefijoMatAuto},
{'[[Anexo:Códigos del COI para los países|Código del COI]]', },
},
MiembroDe,
estilopiedetabla = 'text-align:left',
--piedetabla = Notas,
piedetabla = Debug,
}
return infobox(TablaFicha)
end
function p.FichaEstadoDesaparecido(frame)
_init(frame)
local ClaseTitulo = 'adr'
-- Subtítulo: estado actual
local Subtitulo
local Predecesor = (function()
local Predecesor = {}
local Anio, Imagen, Bandera, Enlace
for i = 1, 21, 1 do
if not argumentos{'p'..i} then break end
Enlace = {}
table.insert(Enlace, enlazar(argumentos{'p'..i}, '←'))
if argumentos{'año_p'..i} then table.insert(Enlace, '<small>(' .. argumentos{'año_p'..i} .. ')</small>') end
if argumentos{'bandera_p'..i} then
table.insert(Enlace, enlazar(argumentos{'bandera_p'..i}, '30px|border|link=' .. argumentos{'p'..i}, 'Archivo'))
elseif argumentos{'imagen_p'..i} then
table.insert(Enlace, argumentos{'imagen_p'..i})
else
table.insert(Enlace, (
enlazar('bandera_de_'..argumentos{'p'..i}..'.svg', '30px|border|link=' .. argumentos{'p'..i}, 'Archivo') or
enlazar('bandera_de_la_'..argumentos{'p'..i}..'.svg', '30px|border|link=' .. argumentos{'p'..i}, 'Archivo') or
enlazar('3by2white.svg', '30px|border|link=' .. argumentos{'p'..i}, 'Archivo')
)
)
end
table.insert(Predecesor, table.concat(Enlace))
end
if #Predecesor > 0 then return table.concat(Predecesor, '<br>') end
return propiedad('P155', {['lista'] = 'nobullet'})
end)()
local Periodo = (function()
if argumentos{'duración'} then return argumentos{'duración'} end
if argumentos{'año_inicio'} and argumentos{'año_fin'} then return argumentos{'año_inicio'} .. ' - ' .. argumentos{'año_fin'} end
end)()
local Sucesor = (function()
local Datos = {}
for i = 1, 21, 1 do
if not argumentos{'s'..i} then break end
Enlace = {}
if argumentos{'año_s'..i} then table.insert(Enlace, '<small>(' .. argumentos{'año_s'..i} .. ')</small>') end
if argumentos{'bandera_s'..i} then
table.insert(Enlace, enlazar(argumentos{'bandera_s'..i}, '30px|border|link=' .. argumentos{'s'..i}, 'Archivo'))
elseif argumentos{'imagen_s'..i} then
table.insert(Enlace, argumentos{'imagen_s'..i})
else
table.insert(Enlace, (
enlazar('bandera_de_'..argumentos{'s'..i}..'.svg', '30px|border|link=' .. argumentos{'s'..i}, 'Archivo') or
enlazar('bandera_de_la_'..argumentos{'s'..i}..'.svg', '30px|border|link=' .. argumentos{'s'..i}, 'Archivo') or
enlazar('3by2white.svg', '30px|border|link=' .. argumentos{'s'..i}, 'Archivo')
)
)
end
table.insert(Enlace, enlazar(argumentos{'s'..i}, '→'))
table.insert(Datos, table.concat(Enlace))
end
if #Datos > 0 then return table.concat(Datos, '<br>') end
return propiedad('P155', {['lista'] = 'nobullet'})
end)()
local Bandera = argumentos{'imagen_bandera', {propiedad, 'P41', {['formato'] = 'archivo'}}}
local TamanoBandera = argumentos{'bandera_tamaño'} or '135x110px'
local PieBandera = enlazar(argumentos{'bandera'}, (argumentos{'bandera_denom'} or 'Bandera')) or enlazar('Bandera de ' .. (argumentos{'nombre_común'} or ''), (argumentos{'bandera_denom'} or 'Bandera')) or enlazar('Bandera de la ' .. (argumentos{'nombre_común'} or ''), (argumentos{'bandera_denom'} or 'Bandera'))
local Escudo = argumentos{'imagen_escudo', {propiedad, 'P94', {['formato'] = 'archivo'}}}
local TamanoEscudo = argumentos{'escudo_tamaño'} or '110x105px'
local PieEscudo = enlazar(argumentos{'símbolo'}, (argumentos{'escudo_denom'} or 'Escudo')) or enlazar('Escudo de ' .. (argumentos{'nombre_común'} or ''), (argumentos{'escudo_denom'} or 'Escudo')) or enlazar('Escudo de la ' .. (argumentos{'nombre_común'} or ''), (argumentos{'escudo_denom'} or 'Escudo'))
local Mapa = enlazar(argumentos{'imagen_mapa', 'mapa', {propiedad, 'P242', {['formato'] = 'archivo', ['uno'] = 'sí'}}}, '250px', 'Archivo')
local PieMapa = argumentos{'pie_mapa'}
local Capital = (function()
local Capital = argumentos{'capital', {propiedad, 'P36', ['uno'] = 'último', ['ordenar'] = 'por fecha'}}
local CiudadMasPoblada = argumentos{'ciudad_más_poblada'}
local AglomeradoMasPoblado = argumentos{'aglomerado_más_poblado'}
if Capital == CiudadMasPoblada then return {
tipo = 'sección',
{'[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'ciudad más poblada') .. ')</small>', Capital}
} end
if Capital == AglomeradoMasPoblado then return {
tipo = 'sección',
{'[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'aglomerado urbano más poblado') .. ')</small>', Capital}
} end
return {
tipo = 'sección',
{'[[Capital (política)|Capital]]', Capital},
{enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'ciudad más poblada'), CiudadMasPoblada},
{enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'aglomerado urbano más poblado'), AglomeradoMasPoblado},
}
end)()
local CapitalEtiqueta = (function()
if CiudadMasPoblada == Capital then
CiudadMasPoblada = ''
return '[[Capital (política)|Capital]] <small>(y ' .. enlazar('Demografía de ' .. ModuloPaginas.nombrePagina({desambiguar='sí'}), 'ciudad más poblada') .. ')</small>' end
return '[[Capital (política)|Capital]]'
end)()
local Lideres = (function()
local Lideres = DatosPoliticos['líderes']
local Gobernantes = DatosPoliticos['gobernantes']
local Etiquetas = DatosPoliticos['etiquetas']
return (function()
local Valores = {['tipo'] = 'sección', ['estiloetiqueta'] = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px', ['estilodatos'] = EstiloDatos .. ';border-top:0;padding:0 .6em'}
table.insert(Valores, {Etiquetas[1], table.concat(Lideres, '<br>')})
if Gobernantes then table.insert(Valores, {Etiquetas[2], table.concat(Gobernantes, '<br>')}) end
return Valores
end)()
end)()
-- :: La ficha
local TablaFicha = {
titulo = Titulo,
subtitulo = Subtitulo,
clase = Clase,
clasetitulo = ClaseTitulo,
estilotitulo = EstiloTitulo,
estilosubtitulo = 'font-weight:bold; background-color:#cddeff',
estiloseccion = EstiloSeccion,
estiloetiqueta = EstiloEtiqueta,
estilodatos = EstiloDatos,
-- Data esta implementación, las banderas irán arriba de las suseciones.
imagenizquierda = Bandera,
["tamañoimagenizquierda"] = TamanoBandera,
imagenderecha = Escudo,
["tamañoimagenderecha"] = TamanoEscudo,
pieizquierdo = PieBandera,
piederecho = PieEscudo,
estilopie = "font-size:88%",
{
tipo = 'sucesión',
color = 'transparent',
anterior = Predecesor,
actual = Periodo,
siguiente = Sucesor,
},
{tipo='sección',
{'', HimnoNacional},
},
{tipo='sección',
titulo = 'Ubicación',
["tamañoimagen"] = TamanoImagen,
{'', Mapa},
},
{tipo='sección',
titulo = 'Información general',
Capital,
{'[[Sede de gobierno]]', SedeGobierno},
{'Idiomas oficiales', IdiomaOficial},
IdiomasHablados,
{'Gentilicio', Gentilicio},
},
{tipo='sección',
titulo = 'Información política',
{'[[Forma de gobierno]]', FormaGobierno},
Lideres,
{'[[Órgano ejecutivo]]', OrganoEjecutivo},
{'[[Órgano legislativo]]', OrganoLegislativo},
{'[[Estado confesional|Religión]]', Religion},
},
Hitos, -- Esto formatea los hitos como la independencia
{tipo='sección',
titulo = 'Información geográfica',
Superficie,
{'[[Frontera]]s', Fronteras},
{'[[Línea de costa]]', LineaDeCosta},
{'[[Anexo:Países por punto más alto|Punto más alto]]', PuntoMasAlto},
{'Punto más bajo', PuntoMasBajo},
{'Punto más oriental', PuntoMasOriental},
{'Punto más occidental', PuntoMasOccidental},
{'Punto más septentrional', PuntoMasSeptentrional},
{'Punto más meridional', PuntoMasMeridional},
},
{tipo='sección',
titulo = 'Información socioeconómica',
Poblacion,
{'[[Producto interno bruto|PIB]] ([[Paridad de poder adquisitivo|PPA]])', PIBPuesto},
{tipo ='sección',
estiloetiqueta = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
estilodatos = EstiloDatos .. ';border-top:0;padding:0 .6em',
{'Total', PIBAnio},
{'[[Renta per cápita|Per cápita]]', PIBPerCapita},
},
{'PIB (nominal)', PIBNominalPuesto},
{tipo ='sección',
estiloetiqueta = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
estilodatos = EstiloDatos .. ';border-top:0;padding:0 .6em',
{'Total', PIBNominalAnio},
{'Per cápita', PIBNominalPerCapita},
},
{'[[Índice de desarrollo humano|IDH]]', IDH},
{'[[Coeficiente de Gini]]', Gini},
{'[[Moneda (divisa)|Moneda]]', Moneda},
},
{tipo='sección',
titulo = 'Información internacional',
Huso,
{tipo ='sección',
estiloetiqueta = EstiloEtiqueta ..';border-top:0; padding:0 .6em 0 15px',
estilodatos = EstiloDatos .. ';border-top:0;padding:0 .6em',
{'En [[Horario de verano|verano]]', HorarioVerano},
},
{'[[ISO 3166-1|Código ISO]]', CodigoISO},
{'[[Dominio de nivel superior geográfico#Lista de dominios de nivel superior geográfico|Dominio internet]]', CCTD},
{'<small>[[Anexo:Prefijos telefónicos internacionales|Prefijo telefónico]]</small>', PrefijoTelef},
{'<small>[[Anexo:Prefijos radiofónicos|Prefijo radiofónico]]</small>', PrefijoRadio},
{'[[Matrícula (aeronaves)|Siglas país para aeronaves]]', PrefijoMatAero},
{'[[Anexo:Siglas automovilísticas internacionales|Siglas país para automóviles]]', PrefijoMatAuto},
{'[[Anexo:Códigos del COI para los países|Código del COI]]', },
},
{tipo='sección',
estilodatos = 'padding:0',
MiembroDe,
},
estilopiedetabla = 'text-align:left',
piedetabla = Notas,
}
return infobox(TablaFicha)
end
-- Esta función permite obtener los líderes de la entidad, además de
-- preformatear datos según el tipo de gobierno.
function obtenerLideres()
local FormaGobiernoID = propiedad('P122', {['formato'] = 'entidadID'})
local Organismo = ModuloWikidata.obtenerEtiquetaWikidata(Entidad) or ModuloPaginas.nombrePagina({desambiguar='sí'})
FormaGobierno = argumentos{'gobierno', 'forma_de_gobierno', {propiedad, 'P122', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
OrganoEjecutivo = argumentos{'órgano_ejecutivo',{propiedad, 'P208', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
OrganoLegislativo = argumentos{'órgano_legislativo',{propiedad, 'P194', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}}
local Datos = {}
Datos['líderes'] = {}
Datos['gobernantes']= {}
Datos['etiquetas'] = {}
-- Presidencialismo
if ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P1906', {['formato'] = 'entidadID'})), 'P279', 'Q248577')
or ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P1906', {['formato'] = 'entidadID'})), 'P279', 'Q30461')
then
table.insert(Datos['líderes'], argumentos{'nombre_líder1', 'líder1', {propiedad, 'P35', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}})
table.insert(Datos['etiquetas'], argumentos{'título_líder1', (function()
if ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P35', {['formato'] = 'entidadID'})), 'P21', 'Q6581072') then return enlazar('Presidenta') end
return enlazar('Presidente')
end)})
table.insert(Datos['líderes'], argumentos{'nombre_líder2', 'líder2'})--, {propiedad, 'P6149', {['uno'] = 'sí'}}} -- Buscar propiedad
table.insert(Datos['etiquetas'], argumentos{'título_líder2', {enlazar, 'Vicepresidente'}})
return Datos
end
-- Monarquía parlamentaria/constitucional
if ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P1906', {['formato'] = 'entidadID'})), 'P279', 'Q116') then
table.insert(Datos['líderes'], argumentos{'nombre_líder1', 'líder1', {propiedad, 'P35', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}})
table.insert(Datos['líderes'], argumentos{'nombre_líder2', 'líder2', {propiedad, 'P35', {['formato'] = 'enlace', ['calificador'] = 'P1393', ['ordenar'] = 'por fecha', ['uno'] = 'último', ['valor_posicional'] = 'último', ['valor_posicional_calif'] = 'último'}}})
table.insert(Datos['líderes'], argumentos{'nombre_líder3', 'líder3', {propiedad, 'P6', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}})
table.insert(Datos['etiquetas'], argumentos{'título_líder1', (function()
if ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P35', {['formato'] = 'entidadID'})), 'P21', 'Q6581072') then return enlazar('Reina') end
return enlazar('Rey')
end)})
table.insert(Datos['etiquetas'], argumentos{'título_líder2', (function()
if ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P35', {['formato'] = 'entidadID', ['calificador'] = 'P1393', ['ordenar'] = 'por fecha', ['uno'] = 'último', ['valor_posicional'] = 'último', ['valor_posicional_calif'] = 'último'})), 'P21', 'Q6581072') then return enlazar('Gobernador general de ' .. Organismo, 'Gobernadora general') end
return enlazar('Gobernador general de ' .. Organismo)
end)})
table.insert(Datos['etiquetas'], argumentos{'título_líder3', {enlazar, 'Primer ministro'}})
return Datos
end
-- ::Por defecto
return (function()
table.insert(Datos['líderes'], argumentos{'nombre_líder1', 'líder1', 'líder' , {propiedad, 'P35', {['uno'] = 'último', ['ordenar'] = 'por fecha'}}})
table.insert(Datos['etiquetas'], argumentos{'título_líder1', 'título_líder', (function()
if ModuloWikidata.esUnValor(mw.wikibase.getEntity(propiedad('P35', {['formato'] = 'entidadID'})), 'P21', 'Q6581072') then return enlazar('Jefe de estado', 'Jefa de estado') end
return enlazar('Jefe de estado')
end)})
for i = 2, 20, 1 do
if not argumentos{'nombre_líder' .. i, 'líder' .. i} then break end
table.insert(Datos['líderes'], argumentos{'nombre_líder' .. i, 'líder' .. i})
end
if argumentos{'título_gobernante'} then
table.insert(Datos['etiquetas'], argumentos{'título_gobernante'})
for i = 2, 20, 1 do
if not argumentos{'nombre_gobernante' .. i, 'gobernante' .. i} then break end
table.insert(Datos['gobernantes'], argumentos{'nombre_gobernante' .. i, 'gobernante' .. i})
end
end
return Datos
end)()
end
-- Envoltura para la plantilla "Mapa de localización" y <mapframe>
function obtenerMapa(frame, parametros)
if not parametros then parametros = {} end
if parametros['latitud'] and parametros['longitud'] then
if parametros['tipo'] == 'interactivo' then return frame:preprocess('<mapframe frameless align=center width=275 height=250 zoom=' .. (tonumber(parametros['zoom']) or 10) .. ' latitude=' .. parametros['latitud'] .. ' longitude=' .. parametros['longitud'] ..' />') end
-- Por alguna razón, esto arroja error al no entregar un valor de longitud válido,
-- a pesar de que se está pasando como parámetro. Se deja para uso local.
--return require('Módulo:Mapa_de_localización').main(frame, parametros)
end
end
function seccionDesplegable(frame, titulo, lista, minimo)
if lista then
if minimo == true or(string.len(lista) > (tonumber(minimo) or 400)) then
if not titulo then titulo = 'Varios' end
return {tipo='sección', estilodatos = 'padding:0', {'', frame:preprocess('{{Sección desplegable|align=left|estilotitulo=padding:.4em .6em;border-top:0;background-color:' .. ColorEtiqueta .. '|título=' .. titulo .. '|datos='.. lista .. '}}')}}
end
return {tipo='sección', {titulo, lista}} end
end
-- Envoltura para Módulo:Wikidata/Formatos.enlazar()
function enlazar(enlace, etiqueta, espaciodenombres)
if not enlace then return end
if espaciodenombres then enlace = espaciodenombres .. ':' .. enlace end
return ModuloFormatos.enlazar(enlace, etiqueta)
end
function round(num, numDecimalPlaces)
if type(num) == 'number' then
return tonumber(string.format("%." .. (numDecimalPlaces or 0) .. "f", num))
else
return num
end
end
-- Función, propiedad() personalizada
function propiedad(idPropiedad, opciones, entidad, frame)
if not entidad then entidad = Entidad end
if entidad and entidad.claims and entidad.claims[idPropiedad] then
if not opciones then
opciones = {['linkback']='sí'}
end
local ValorPosicional = (function()
if opciones['valor_posicional'] == 'último' then return -1 end
if type(opciones['valor_posicional']) == 'number' then return opciones['valor_posicional'] end
return 1
end)()
local ValorPosicionalCalif =(function()
if opciones['valor_posicional_calif'] == 'último' then return -1 end
if type(opciones['valor_posicional_calif']) == 'number' then return opciones['valor_posicional_calif'] end
return 1
end)()
local Calificador = opciones['calificador']
local Obj = (function()
local Obj = (function()
local Obj = elementoTabla(entidad, 'claims', idPropiedad)
if ValorPosicional == -1 then return elementoTabla(Obj, #Obj) end
return elementoTabla(Obj, ValorPosicional)
end)()
if Calificador then
return (function()
local Obj = elementoTabla(Obj, 'qualifiers', Calificador)
if ValorPosicionalCalif == -1 then return elementoTabla(Obj, #Obj, 'datavalue') end
return elementoTabla(Obj, ValorPosicionalCalif, 'datavalue')
end)()
end
return elementoTabla(Obj, 'mainsnak', 'datavalue')
end)()
if Obj then
Tipo = elementoTabla(Obj, 'type')
-- Devolver el ID de la entidad, para propiedades de entidad
if opciones['formato'] == 'entidadID' then
return elementoTabla(Obj, 'value', 'id')
end
-- Obtener la propiedad como cadena sin formato
if opciones['formato'] == 'cadena' then
opciones['linkback'] = 'no'
if Tipo == 'string' then
return elementoTabla(Obj, 'value')
end
end
-- Devolver una cadena numérica correctamente formateada
if opciones['formato'] == 'número' then
if Tipo == 'quantity' then
return formatoNumero(elementoTabla(Obj, 'value', 'amount'))
end
end
-- Devolver una cadena numérica con su unidad
if opciones['formato'] == 'unidad' then
if elementoTabla(entidad, 'claims', idPropiedad, 2, 'mainsnak', 'datavalue') then
return formatoNumero(elementoTabla(entidad, 'claims', idPropiedad, 1, 'mainsnak', 'datavalue', 'value', 'amount')) .. ' - ' .. 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