Diferencia entre revisiones de «Módulo:pron-graf»

De Wikcionario, el diccionario libre
Contenido eliminado Contenido añadido
Sin resumen de edición
Etiqueta: Reversión manual
Línea 152: Línea 152:
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|División a fin de línea: ')
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|División a fin de línea: ')
for i,_ in ipairs(args["d"]) do
for i,_ in ipairs(args["d"]) do
table.insert(table_markup, args["d"][i]..(args["dnota"][i] and "<ref>"..args["dnota"][i].."</ref>" or "")..'<br/>')
table.insert(table_markup, args["d"][i]..(args["dnota"][i] and frame:extensionTag("ref", args["dnota"][i]) or "")..'<br/>')
end
end
table.insert(table_markup, '\n')
table.insert(table_markup, '\n')
Línea 160: Línea 160:
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Transcripción silábica:&nbsp;')
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Transcripción silábica:&nbsp;')
for i,_ in ipairs(args["ts"]) do
for i,_ in ipairs(args["ts"]) do
table.insert(args["ts"][i]..(args["tsnota"][i] and "<ref>"..args["tsnota"][i].."</ref>" or "")..'<br/>')
table.insert(args["ts"][i]..(args["tsnota"][i] and frame:extensionTag("ref", args["tsnota"][i]) or "")..'<br/>')
end
end
table.insert(table_markup, '\n')
table.insert(table_markup, '\n')
Línea 168: Línea 168:
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Transliteración:&nbsp;')
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Transliteración:&nbsp;')
for i,_ in ipairs(args["tl"]) do
for i,_ in ipairs(args["tl"]) do
table.insert(table_markup, args["tl"][i]..(args["tlnum"][i] and " ("..args["tlnum"][i]..")" or "")..(args["tlnota"][i] and "<ref>"..args["tlnota"][i].."</ref>" or "")..'<br/>')
table.insert(table_markup, args["tl"][i]..(args["tlnum"][i] and " ("..args["tlnum"][i]..")" or "")..(args["tlnota"][i] and frame:extensionTag("ref", args["tlnota"][i]) or "")..'<br/>')
end
end
table.insert(table_markup, '\n')
table.insert(table_markup, '\n')
Línea 227: Línea 227:
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Escritura alternativa:&nbsp;')
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Escritura alternativa:&nbsp;')
for i,_ in ipairs(args["e"]) do
for i,_ in ipairs(args["e"]) do
table.insert(table_markup, "[["..args["e"][i]..(args["ealt"][i] and "|"..args["ealt"][i] or "").."]]"..(args["enum"][i] and " ("..args["enum"][i]..")" or "")..(args["enota"][i] and "<ref>"..args["enota"][i].."</ref>" or "")..'<br/>')
table.insert(table_markup, "[["..args["e"][i]..(args["ealt"][i] and "|"..args["ealt"][i] or "").."]]"..(args["enum"][i] and " ("..args["enum"][i]..")" or "")..(args["enota"][i] and frame:extensionTag("ref", args["enota"][i]) or "")..'<br/>')
end
end
table.insert(table_markup, '\n')
table.insert(table_markup, '\n')
Línea 235: Línea 235:
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Grafía alternativa:&nbsp;')
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Grafía alternativa:&nbsp;')
for i,_ in ipairs(args["g"]) do
for i,_ in ipairs(args["g"]) do
table.insert(table_markup, "[["..args["g"][i]..(args["galt"][i] and "|"..args["galt"][i] or "").."]]"..(args["gnum"][i] and " ("..args["gnum"][i]..")" or "")..(args["gnota"][i] and "<ref>"..args["gnota"][i].."</ref>" or "")..'<br/>')
table.insert(table_markup, "[["..args["g"][i]..(args["galt"][i] and "|"..args["galt"][i] or "").."]]"..(args["gnum"][i] and " ("..args["gnum"][i]..")" or "")..(args["gnota"][i] and frame:extensionTag("ref", args["gnota"][i]) or "")..'<br/>')
end
end
table.insert(table_markup, '\n')
table.insert(table_markup, '\n')
Línea 243: Línea 243:
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Variantes:&nbsp;')
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Variantes:&nbsp;')
for i,_ in ipairs(args["v"]) do
for i,_ in ipairs(args["v"]) do
table.insert(table_markup, "[["..args["v"][i]..(args["valt"][i] and "|"..args["valt"][i] or "").."]]"..(args["vtr"][i] and " ("..args["vtr"][i]..")" or "")..(args["vnum"][i] and " ("..args["vnum"][i]..")" or "")..(args["vnota"][i] and "<ref>"..args["vnota"][i].."</ref>" or "")..'<br/>')
table.insert(table_markup, "[["..args["v"][i]..(args["valt"][i] and "|"..args["valt"][i] or "").."]]"..(args["vtr"][i] and " ("..args["vtr"][i]..")" or "")..(args["vnum"][i] and " ("..args["vnum"][i]..")" or "")..(args["vnota"][i] and frame:extensionTag("ref", args["vnota"][i]) or "")..'<br/>')
end
end
table.insert(table_markup, '\n')
table.insert(table_markup, '\n')
Línea 251: Línea 251:
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Homófonos:&nbsp;')
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Homófonos:&nbsp;')
for i,_ in ipairs(args["h"]) do
for i,_ in ipairs(args["h"]) do
table.insert(table_markup, "[["..args["h"][i]..(args["halt"][i] and "|"..args["halt"][i] or "").."]]"..(args["htr"][i] and " ("..args["htr"][i]..")" or "")..(args["hnum"][i] and " ("..args["hnum"][i]..")" or "")..(args["hnota"][i] and "<ref>"..args["hnota"][i].."</ref>" or "")..'<br/>')
table.insert(table_markup, "[["..args["h"][i]..(args["halt"][i] and "|"..args["halt"][i] or "").."]]"..(args["htr"][i] and " ("..args["htr"][i]..")" or "")..(args["hnum"][i] and " ("..args["hnum"][i]..")" or "")..(args["hnota"][i] and frame:extensionTag("ref", args["hnota"][i]) or "")..'<br/>')
end
end
table.insert(table_markup, '\n')
table.insert(table_markup, '\n')
Línea 259: Línea 259:
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Parónimos:&nbsp;')
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Parónimos:&nbsp;')
for i,_ in ipairs(args["p"]) do
for i,_ in ipairs(args["p"]) do
table.insert(table_markup, "[["..args["p"][i]..(args["palt"][i] and "|"..args["palt"][i] or "").."]]"..(args["ptr"][i] and " ("..args["ptr"][i]..")" or "")..(args["pnum"][i] and " ("..args["pnum"][i]..")" or "")..(args["pnota"][i] and "<ref>"..args["pnota"][i].."</ref>" or "")..'<br/>')
table.insert(table_markup, "[["..args["p"][i]..(args["palt"][i] and "|"..args["palt"][i] or "").."]]"..(args["ptr"][i] and " ("..args["ptr"][i]..")" or "")..(args["pnum"][i] and " ("..args["pnum"][i]..")" or "")..(args["pnota"][i] and frame:extensionTag("ref", args["pnota"][i]) or "")..'<br/>')
end
end
table.insert(table_markup, '\n')
table.insert(table_markup, '\n')
Línea 267: Línea 267:
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Símbolos:&nbsp;')
table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Símbolos:&nbsp;')
for i,_ in ipairs(args["s"]) do
for i,_ in ipairs(args["s"]) do
table.insert(table_markup, "[["..args["s"][i]..(args["salt"][i] and "|"..args["salt"][i] or "").."]]"..(args["str"][i] and " ("..args["str"][i]..")" or "")..(args["snum"][i] and " ("..args["snum"][i]..")" or "")..(args["snota"][i] and "<ref>"..args["snota"][i].."</ref>" or "")..'<br/>')
table.insert(table_markup, "[["..args["s"][i]..(args["salt"][i] and "|"..args["salt"][i] or "").."]]"..(args["str"][i] and " ("..args["str"][i]..")" or "")..(args["snum"][i] and " ("..args["snum"][i]..")" or "")..(args["snota"][i] and frame:extensionTag("ref", args["snota"][i]) or "")..'<br/>')
end
end
table.insert(table_markup, '\n')
table.insert(table_markup, '\n')

Revisión del 14:17 19 dic 2023

La documentación para este módulo puede ser creada en Módulo:pron-graf/doc

local export = {}

function export.mostrar(frame)

	local params = {
		[1] = {alias_de = "fone"},
		["leng"] = {por_defecto = "es", requerido = true},
		["alt"] = {},
		["ayuda"] = {},
		["pron"] = {lista_doble = true},
		["fone"] = {lista_doble = true},
		["fono"] = {lista_doble = true},
		["fnota"] = {lista_doble = true},
		["audio"] = {lista_doble = true},
		["aunota"] = {lista_doble = true},
		["ac"] = {},
		["acentuación"] = {alias_de = "ac"},
		["ls"] = {tipo = "num"},
		["longitud_silábica"] = {alias_de = "ls"},
		["nl"] = {tipo = "num"},
		["número_letras"] = {alias_de = "nl"},
		["d"] = {lista = true},
		["div"] = {alias_de = "d"},
		["división"] = {alias_de = "d"},
		["dnota"] = {lista = true},
		["ts"] = {lista = true},
		["transcripción silábica"] = {alias_de = "ts"},
		["tsnota"] = {lista = true},
		["tl"] = {lista = true},
		["transliteración"] = {alias_de = "tl"},
		["tlalt"] = {lista = true},
		["tlnum"] = {lista = true},
		["tlnúm"] = {alias_de = "tlnum"},
		["tlnota"] = {lista = true},
		["e"] = {lista = true},
		["ea"] = {alias_de = "e"},
		["escritura alternativa"] = {alias_de = "e"},
		["ealt"] = {lista = true},
		["enum"] = {lista = true},
		["enúm"] = {alias_de = "enum"},
		["enota"] = {lista = true},
		["g"] = {lista = true},
		["ga"] = {alias_de = "g"},
		["grafía alternativa"] = {alias_de = "g"},
		["galt"] = {lista = true},
		["gnum"] = {lista = true},
		["gnúm"] = {alias_de = "gnum"},
		["gnota"] = {lista = true},
		["v"] = {lista = true},
		["variante"] = {alias_de = "v"},
		["valt"] = {lista = true},
		["vnum"] = {lista = true},
		["vnúm"] = {alias_de = "vnum"},
		["vtr"] = {lista = true},
		["vnota"] = {lista = true},
		["h"] = {lista = true},
		["homófono"] = {alias_de = "h"},
		["halt"] = {lista = true},
		["hnum"] = {lista = true},
		["hnúm"] = {alias_de = "hnum"},
		["htr"] = {lista = true},
		["hnota"] = {lista = true},
		["p"] = {lista = true},
		["parónimo"] = {alias_de = "p"},
		["palt"] = {lista = true},
		["pnum"] = {lista = true},
		["pnúm"] = {alias_de = "hnum"},
		["ptr"] = {lista = true},
		["pnota"] = {lista = true},
		["s"] = {lista = true},
		["símbolo"] = {alias_de = "s"},
		["salt"] = {lista = true},
		["snum"] = {lista = true},
		["snúm"] = {alias_de = "snum"},
		["snota"] = {lista = true},
		["ptr"] = {lista = true},
		["pnota"] = {lista = true},
		["rima"] = {},
	}
	local parent_frame = frame:getParent()
	local args = require("Módulo:parámetros").obtener_parametros(parent_frame.args, params)
	local title = mw.title.getCurrentTitle().fullText -- no sirve parent_frame:getTitle()
	--local frame = mw.getCurrentFrame()
	local tit = args["alt"] or title

	local table_markup = {}
	table.insert(table_markup, '{|class="pron-graf toccolours" cellspacing="0.1" style="float: right; clear: right; margin: 0.2em 0 0.2em 1.4em;"\n|style="background:#EBEBEB; text-align:left; font-weight:420" colspan="2"|&nbsp;<span style="font-family: Helvetica; font-size: 1.5em;"><strong>'..tit..'</strong></span>\n')

	if args["leng"] == "es" and #args["fone"] < 1 and #args["fono"] < 1 and args["ls"] == nil and args["ac"] == nil and args["rima"] == nil then
		args["pron"], args["fone"], args["ls"], args["nl"], args["ac"], args["rima"] = require('Módulo:generar-pron/es').generar_pron(args["ayuda"] or tit, tit, true)
	elseif args["leng"] == "es" then
		for i, _ in ipairs(args["pron"]) do
			if args["pron"][i] and args["pron"][i][1] then
				c = args["pron"][i][1]:sub(1,1)
				s = args["pron"][i][1]:sub(1,4)
				cc = args["pron"][i][1]:sub(1,2)
				if c == 's' then
					args["pron"][i][1] = 'seseante'
				elseif s == 'no s' or s == 'dist' then
					args["pron"][i][1] = 'no seseante'
				elseif 	c == 'y' then
					args["pron"][i][1] = 'yeísta'
				elseif s == 'no ye' then
					args["pron"][i][1] = 'no yeísta'
				elseif cc == 'll' then
					args["pron"][i][1] = 'lleísta'
				elseif cc == 'sh' then
					args["pron"][i][1] = 'sheísta'
				elseif cc == 'zh' then
					args["pron"][i][1] = 'zheísta'
				elseif c == 'r' then
					args["pron"][i][1] = 'rioplatense'
				end
			end
		end
	end

	N = math.max(#args["fone"], #args["fono"])

	if N == 0 then
		table.insert(table_markup, '|-\n|style="vertical-align:top;"' .. '|<span style="color: green; font-size: 90%; font-style: italic;"> [[Wikcionario:Pronunciación|falta agregar pronunciación]] </span>')
		table.insert(table_markup, '\n')
	else
		for i = 1,N do
			if args["fone"][i] or args["fono"][i] then
				table.insert(table_markup, '|-\n|style="vertical-align:top;"|')
				if args["pron"][i] and args["pron"][i][1] then
					table.insert(table_markup, '[[Wikcionario:Referencia/'..string.upper(args["leng"])..'/Pronunciación|'..args["pron"][i][1]..']]'..' ([[Alfabeto Fonético Internacional|AFI]]):&nbsp;')
				else
					table.insert(table_markup, '[[Wikcionario:Referencia/'..string.upper(args["leng"])..'/Pronunciación|pronunciación]]'..' ([[Alfabeto Fonético Internacional|AFI]]):&nbsp;')
				end
				for j = 1,9 do
					if args["fone"][i] and args["fone"][i][j] then
						table.insert(table_markup, '['..args["fone"][i][j]..']')
					end
					if args["fono"][i] and args["fono"][i][j] then
						table.insert(table_markup, '/'..args["fono"][i][j]..'/')
					end
					if args["fnota"][i] and args["fnota"][i][j] then
						table.insert(table_markup, '&nbsp; '..args["fnota"][i][j])
					end
					if args["audio"][i] and args["audio"][i][j] then
						table.insert(table_markup, frame:expandTemplate{title = "aud", args = {args["audio"][i][j], args["aunota"][i] and args["aunota"][i][j] or nil}})
					end
				end
				table.insert(table_markup, '\n')
			end
		end
	end

	if #args["d"] > 0 then
		table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|División a fin de línea:&nbsp;')
		for i,_ in ipairs(args["d"]) do
			table.insert(table_markup, args["d"][i]..(args["dnota"][i] and frame:extensionTag("ref", args["dnota"][i]) or "")..'<br/>')
		end
		table.insert(table_markup, '\n')
	end

	if #args["ts"] > 0 then
		table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Transcripción silábica:&nbsp;')
		for i,_ in ipairs(args["ts"]) do
			table.insert(args["ts"][i]..(args["tsnota"][i] and frame:extensionTag("ref", args["tsnota"][i]) or "")..'<br/>')
		end
		table.insert(table_markup, '\n')
	end

	if #args["tl"] > 0 then
		table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Transliteración:&nbsp;')
		for i,_ in ipairs(args["tl"]) do
			table.insert(table_markup, args["tl"][i]..(args["tlnum"][i] and " ("..args["tlnum"][i]..")" or "")..(args["tlnota"][i] and frame:extensionTag("ref", args["tlnota"][i]) or "")..'<br/>')
		end
		table.insert(table_markup, '\n')
	end

	local l_silabica_tabla = {
		[1] = 'monosílaba',
		[2] = 'bisílaba',
		[3] = 'trisílaba',
		[4] = 'tetrasílaba',
		[5] = 'pentasílaba',
		[6] = 'hexasílaba',
		[7] = 'heptasílaba',
		[8] = 'octosílaba',
		[9] = 'eneasílaba',
		[10] = 'decasílaba',
		[11] = 'endecasílaba',
		[12] = 'dodecasílaba',
	}

	local l_silabica = args["ls"] and (l_silabica_tabla[args["ls"]] or args["ls"])

	if l_silabica then
		if type(l_silabica) == 'number' then
			table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Longitud silábica:&nbsp;'..tostring(l_silabica)..'[[Categoría:'..string.upper(args["leng"])..':Palabras de más de doce sílabas]]')
		else
			table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Longitud silábica:&nbsp;'..l_silabica..'[[Categoría:'..string.upper(args["leng"])..':Palabras '..l_silabica..'s]]')
		end
		table.insert(table_markup, '\n')
	end

	if args["nl"] and type(args["nl"]) == "number" then
		table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Número de letras:&nbsp;'..tostring(args["nl"]))
		table.insert(table_markup, '\n')
	end

	local acentuacion_tabla = {
		['a'] = 'aguda',
		['l'] = 'llana',
		['g'] = 'llana',
		['e'] = 'esdrújula',
		['s'] = 'sobreesdrújula',
		['d'] = 'doble acentuación',
		['m'] = 'doble acentuación',
	}

	local acento = nil
	if args["ac"] then
		acento = acentuacion_tabla[args["ac"]:sub(1,1)]
	end

	if acento then
		table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Acentuación:&nbsp;'..acento..'[[Categoría:'..string.upper(args["leng"])..':Palabras '..acento..'s]]')
		table.insert(table_markup, '\n')
	end

	if #args["e"] > 0 then
		table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Escritura alternativa:&nbsp;')
		for i,_ in ipairs(args["e"]) do
			table.insert(table_markup, "[["..args["e"][i]..(args["ealt"][i] and "|"..args["ealt"][i] or "").."]]"..(args["enum"][i] and " ("..args["enum"][i]..")" or "")..(args["enota"][i] and frame:extensionTag("ref", args["enota"][i]) or "")..'<br/>')
		end
		table.insert(table_markup, '\n')
	end

	if #args["g"] > 0 then
		table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Grafía alternativa:&nbsp;')
		for i,_ in ipairs(args["g"]) do
			table.insert(table_markup, "[["..args["g"][i]..(args["galt"][i] and "|"..args["galt"][i] or "").."]]"..(args["gnum"][i] and " ("..args["gnum"][i]..")" or "")..(args["gnota"][i] and frame:extensionTag("ref", args["gnota"][i]) or "")..'<br/>')
		end
		table.insert(table_markup, '\n')
	end

	if #args["v"] > 0 then
		table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Variantes:&nbsp;')
		for i,_ in ipairs(args["v"]) do
			table.insert(table_markup, "[["..args["v"][i]..(args["valt"][i] and "|"..args["valt"][i] or "").."]]"..(args["vtr"][i] and " ("..args["vtr"][i]..")" or "")..(args["vnum"][i] and " ("..args["vnum"][i]..")" or "")..(args["vnota"][i] and frame:extensionTag("ref", args["vnota"][i]) or "")..'<br/>')
		end
		table.insert(table_markup, '\n')
	end

	if #args["h"] > 0 then
		table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Homófonos:&nbsp;')
		for i,_ in ipairs(args["h"]) do
			table.insert(table_markup, "[["..args["h"][i]..(args["halt"][i] and "|"..args["halt"][i] or "").."]]"..(args["htr"][i] and " ("..args["htr"][i]..")" or "")..(args["hnum"][i] and " ("..args["hnum"][i]..")" or "")..(args["hnota"][i] and frame:extensionTag("ref", args["hnota"][i]) or "")..'<br/>')
		end
		table.insert(table_markup, '\n')
	end

	if #args["p"] > 0 then
		table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Parónimos:&nbsp;')
		for i,_ in ipairs(args["p"]) do
			table.insert(table_markup, "[["..args["p"][i]..(args["palt"][i] and "|"..args["palt"][i] or "").."]]"..(args["ptr"][i] and " ("..args["ptr"][i]..")" or "")..(args["pnum"][i] and " ("..args["pnum"][i]..")" or "")..(args["pnota"][i] and frame:extensionTag("ref", args["pnota"][i]) or "")..'<br/>')
		end
		table.insert(table_markup, '\n')
	end

	if #args["s"] > 0 then
		table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Símbolos:&nbsp;')
		for i,_ in ipairs(args["s"]) do
			table.insert(table_markup, "[["..args["s"][i]..(args["salt"][i] and "|"..args["salt"][i] or "").."]]"..(args["str"][i] and " ("..args["str"][i]..")" or "")..(args["snum"][i] and " ("..args["snum"][i]..")" or "")..(args["snota"][i] and frame:extensionTag("ref", args["snota"][i]) or "")..'<br/>')
		end
		table.insert(table_markup, '\n')
	end
	
	if args["rima"] then
		table.insert(table_markup, '|-\n|scope="row" style="vertical-align:top;"|Rima:&nbsp;'.."[[:Categoría:"..string.upper(args["leng"])..":Rimas:"..args["rima"].."|"..args["rima"].."]]")
		table.insert(table_markup, '\n')
	end

	table.insert(table_markup, '|}')
	
	table.insert(table_markup, require("Módulo:TemplateStyles")("Plantilla:pron-graf/styles.css"))

	return table.concat(table_markup)
	
end

return export