Bahaipedia
Bahaipediaدانشنامه بهائی
Menú
Cambios recientes
Haga su pregunta
Página al azar
Categorías
Ayuda en Wikipedia
En otros proyectos
Herramientas
Lo que enlaza aquí
Cambios relacionados
Subir archivo
Páginas especiales
Versión para imprimir
Enlace permanente
Información de la página
Módulo
Discusión
Ver historial
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Navigation
Navigation
Navegación
Navigation
ナビゲーション
Điều hướng
导航
Navegação
ناوبری
Навигация
Cambios recientes
Haga su pregunta
Página al azar
Categorías
Ayuda en Wikipedia
En otros proyectos
Learn more
Weitere Informationen
Aprender más
En savoir plus
詳しく読む
Tìm hiểu thêm
了解更多
Saiba mais
یاد بگیرید بیشتر
Узнать больше
Fe bahá’í
Bahá’u’lláh
‘Abdu’l-Bahá
Principios bahá’ís
Tools
Werkzeuge
Herramientas
Outils
ツール
Công cụ
工具
Ferramentas
ابزارها
Инструменты
Lo que enlaza aquí
Cambios relacionados
Subir archivo
Páginas especiales
Versión para imprimir
Enlace permanente
Información de la página
Translations
Übersetzungen
Traducciones
Traductions
各言語版
Bản dịch
翻译
Traduções
به زبان‌های دیگر
Переводы

Módulo:Wikidata/Formatos país

De Bahaipedia
< Módulo:Wikidata
Saltar a:navegación, buscar

local p={}

local moduloTablas = require('Módulo:Tablas')
local	elementoTabla = moduloTablas.elemento
local	agruparTabla  = moduloTablas.agrupar
local	ordenarTabla  = moduloTablas.ordenar
local moduloWikidata  = require('Módulo:Wikidata')
local   formatoLista         = moduloWikidata.formatoLista
local moduloWikidataFormatos = require('Módulo:Wikidata/Formatos')
local	enlazar              = moduloWikidataFormatos.enlazar
local   formatoPeriodo       = moduloWikidataFormatos.formatoPeriodo
local obtenerDatos           = moduloWikidataFormatos.obtenerDatos


local paises = mw.loadData('Módulo:Wikidata/Formatos_país/datos')

function p.pruebas(frame)
	--local entidad
	local nacionalidad
	
	for k,v in pairs(paises) do
		if not v.etiqueta then
			--entidad   = mw.wikibase.getEntityObject(k) or {}
			--v.etiqueta = require('Módulo:Tablas').elemento(entidad,'labels', 'es', 'value')
			v.etiqueta = mw.wikibase.getLabel(k)
		end
		if not v.enlace then
			v.enlace = mw.wikibase.getSitelink(k)
		end			
		if v.etiqueta and not v.nacionalidad then
			nacionalidad = frame:preprocess('{{gentilicio|'.. v.etiqueta .. '|fs}}')
			
			if nacionalidad and nacionalidad~= '' then
				v.nacionalidad = nacionalidad
			end
		end
    end	
	return require('Módulo:Tablas').tostringordered(paises)
end

function p.formatoNacionalidad(claim, opciones)
	if not claim then
		return
	end
	local tabla_nacionalidades={}
	local idPais
	local pais
	
	--if true then return require('Módulo:Tablas').tostring(claim) end
	for k, v in ipairs(claim) do
		idPais = elementoTabla(v,'mainsnak','datavalue','value','id')
		if idPais then
			pais = paises[idPais] or {}
			-- falta saltarse los paises sin nacionalidad
			if pais.nacionalidad then
				table.insert(
					tabla_nacionalidades, 
					{
						['nacionalidad'] = pais.nacionalidad,
						['datos'] = {
							['idPais']		  = idPais,
							['etiquetaPais']  = pais.etiqueta,
							['enlacePais']	  = pais.enlace,
							['periodo']	      = formatoPeriodo(v.qualifiers)				
						},
						['fecha']	      = elementoTabla(v,'qualifiers','P585',1,'datavalue','value','time'),
						['fechaCreacion'] = elementoTabla(v,'qualifiers','P571',1,'datavalue','value','time'),
						['fechaInicio']	  = elementoTabla(v,'qualifiers','P580',1,'datavalue','value','time'),
						['fechaFin']	  = elementoTabla(v,'qualifiers','P582',1,'datavalue','value','time')	
					}
				)
			end
		elseif elementoTabla(v,'mainsnak','snaktype') == 'novalue' then
			if  elementoTabla(v,'qualifiers','P805',1,'datavalue','value','id') == 'Q223050' then
				table.insert(
					tabla_nacionalidades, 
					{
						['nacionalidad'] = 'apátrida',
						['datos'] = {
							['periodo']	     = formatoPeriodo(v.qualifiers)
						},
						['fecha']	      = elementoTabla(v,'qualifiers','P585',1,'datavalue','value','time'),
						['fechaCreacion'] = elementoTabla(v,'qualifiers','P571',1,'datavalue','value','time'),
						['fechaInicio']	  = elementoTabla(v,'qualifiers','P580',1,'datavalue','value','time'),
						['fechaFin']	  = elementoTabla(v,'qualifiers','P582',1,'datavalue','value','time')
					}
				)				
			else
				table.insert(
					tabla_nacionalidades, 
					{
						['nacionalidad'] = 'sin nacionalidad',
						['datos'] = {
							['periodo']	     = formatoPeriodo(v.qualifiers)
						},
						['fecha']	      = elementoTabla(v,'qualifiers','P585',1,'datavalue','value','time'),
						['fechaCreacion'] = elementoTabla(v,'qualifiers','P571',1,'datavalue','value','time'),
						['fechaInicio']	  = elementoTabla(v,'qualifiers','P580',1,'datavalue','value','time'),
						['fechaFin']	  = elementoTabla(v,'qualifiers','P582',1,'datavalue','value','time')
					}
				)
			end
		end
	end
	
	ordenarTabla(tabla_nacionalidades, {'nacionalidad', 'fechaInicio', 'fechaFin'})
	tabla_nacionalidades = agruparTabla(tabla_nacionalidades, 'nacionalidad', 'datos')
	--if true then return require('Módulo:Tablas').tostring(tabla_nacionalidades) end	
	ordenarTabla(tabla_nacionalidades, {'fechaInicio', 'fechaFin'})
	--tabla_nacionalidades = agruparTabla(tabla_nacionalidades, 'nacionalidad', 'datos')
	--if true then return require('Módulo:Tablas').tostring(tabla_nacionalidades) end
	
	local nacionalidades = {}
	local tabla_periodos
	local nacionalidad
	local periodos
	
	for k,v in ipairs(tabla_nacionalidades) do
		tabla_periodos = {}
		if v.datos[2] then
			nacionalidad = v.nacionalidad
			
			if opciones['formatoTexto'] and mw.ustring.find(opciones['formatoTexto'],'mayúscula', plain ) and k == 1 then
				nacionalidad = mw.language.new('es'):ucfirst(nacionalidad)			
			end
			
			-- Comprobar si están informados todos los periodos. Si no es así no se pondrán entre paréntesis
			-- Por ejemplo William Wordsworth que en Wikidata tiene como país de 
			-- nacionalidad Reino Unido de Gran Bretaña e Irlanda sin fechas de 
			-- inicio o de fin y Reino de Gran Bretaña con fecha de fin 1 ene 1801.
			-- Se devolverá como nacionalidad solo "Británica".
			local wpaisSinPeriodo
			for k2,v2 in ipairs(v.datos) do
				if not v2.periodo then
					wpaisSinPeriodo = true
				end
			end
			
			if not wpaisSinPeriodo then
				for k2,v2 in ipairs(v.datos) do
					table.insert(tabla_periodos, enlazar(v2.enlacePais, v2.periodo, v2.idPais))
				end
				
				periodos = table.concat(tabla_periodos,', ')				
			end	
			--if true then return require('Módulo:Tablas').tostring(tabla_periodos) end
		else
			if opciones['formatoTexto'] and mw.ustring.find(opciones['formatoTexto'],'mayúscula', plain ) and k == 1 then
				opciones['mayúscula'] = 'sí'
			else
				opciones['mayúscula'] = 'no'
			end
			nacionalidad = enlazar(v.datos[1].enlacePais, v.nacionalidad, v.datos[1].idPais, opciones)
			periodos = v.datos[1].periodo
		end
		
		if periodos and periodos ~= '' then
			nacionalidad = nacionalidad .. '&nbsp;<small>(' .. periodos .. ')</small>'
		end
		table.insert(nacionalidades, nacionalidad)
	end
	
	return formatoLista(nacionalidades, opciones)
	--return require('Módulo:Tablas').tostring(nacionalidades)
end

function p._nacionalidad(frame)
	local args    = frame.args
	
	--if true then return require('Módulo:Tablas').tostring(frame.args) end
	local claim = mw.wikibase.getAllStatements(args.entityId or args.id,'P027')
	
	if not claim then
		return
	end
	
	opciones={}
	opciones.propiedad    = 'P027'
	opciones.entityId     = args.entityId or args.id,'P027'
	opciones.linkback     = args.linkback
	opciones.formatoTexto = args.formatoTexto
	opciones.enlace       = args.enlace
	
	return p.formatoNacionalidad(claim, opciones)
end

function p.formatoBandera(valor, opciones, frame)
	if not valor then
		return
	end

	local enlace, etiqueta, id = obtenerDatos(valor)	
    
    if not etiqueta then 
    	return
    elseif mw.title.new('Plantilla:Geodatos '.. etiqueta ).exists  then
        return frame:preprocess('{{bandera2|' .. etiqueta ..  '}}')
    else
    	return enlazar(enlace, etiqueta, id, opciones)
    end
end

-- Alias para simplificar el uso desde la plantilla propiedad
--
p['bandera'] 		= p.formatoBandera
p['nacionalidad'] 	= p.formatoNacionalidad

return p
Obtenido de «https://es.bahaipedia.org/index.php?title=Módulo:Wikidata/Formatos_país&oldid=2453»
Categoría:
  • Wikidata
Esta página se editó por última vez el 2 ene 2024 a las 18:59.
El contenido está disponible bajo la licencia Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License a menos que se indique lo contrario.
Política de privacidad
Acerca de Bahaipedia
Descargos
Powered by MediaWiki