Diferencia entre revisiones de «Módulo:Personaje»
De Inkipedia
(Cambiado el orden para intentar solucionar un error) |
(Cambiada la optimización de la plantilla para soportar cuando una imagen no está disponible, necesario comprobar lo que está fallando) |
||
Línea 65: | Línea 65: | ||
-- Lógica para determinar la imagen | -- Lógica para determinar la imagen | ||
if | |||
if estado | local constructorProvisional | ||
if estado ~= nil then | |||
if mw.title.new("File:" .. juego .. " Icon " .. nombreIngles .. " " .. estado .. ".png").exists then | |||
constructorProvisional = string.format("[[File:%s Icon %s %s.png|%dpx|link=%s]]", juego, nombreIngles, estado, tamano, nombre) | |||
else | |||
constructorProvisional = string.format("[[File:Not found.png|%dpx|link=]]", tamano) | |||
end | |||
else | |||
if mw.title.new("File:" .. juego .. " Icon " .. nombreIngles .. ".png").exists then | |||
constructorProvisional = string.format("[[File:%s Icon %s.png|%dpx|link=%s]]", juego, nombreIngles, tamano, nombre) | |||
else | |||
constructorProvisional = string.format("[[File:%s Icon %s.png|%dpx|link=%s]]", juego, nombreIngles, tamano, nombre) | |||
--constructorProvisional = string.format("[[File:Not found.png|%dpx|link=]]", tamano) | |||
end | |||
end | |||
if icono == nil then | |||
constructorProvisional = string.format("%s [[%s]]", constructorProvisional, nombre) | |||
return constructorProvisional | |||
end | end | ||
return constructorProvisional | |||
end | end | ||
return m | return m |
Revisión del 08:52 21 mar 2024
La documentación para este módulo puede ser creada en Módulo:Personaje/doc
local m = {} -- Función para normalizar el tipo de traducción local function genericType(input) if input == nil then return nil end -- Convertir a minúsculas input = input:lower() -- Tabla de mapeo para reemplazar letras con tildes y diéresis local mapping = { ["á"] = "a", ["é"] = "e", ["í"] = "i", ["ó"] = "o", ["ú"] = "u", ["à"] = "a", ["è"] = "e", ["ì"] = "i", ["ò"] = "o", ["ù"] = "u", ["ä"] = "a", ["ë"] = "e", ["ï"] = "i", ["ö"] = "o", ["ü"] = "u", ["ã"] = "a", ["ẽ"] = "e", ["ĩ"] = "i", ["õ"] = "o", ["ũ"] = "u", ["ñ"] = "n", ["ç"] = "c", ["Á"] = "a", ["É"] = "e", ["Í"] = "i", ["Ó"] = "o", ["Ú"] = "u", ["À"] = "a", ["È"] = "e", ["Ì"] = "i", ["Ò"] = "o", ["Ù"] = "u", ["Ä"] = "a", ["Ë"] = "e", ["Ï"] = "i", ["Ö"] = "o", ["Ü"] = "u", ["Ã"] = "a", ["Ẽ"] = "e", ["Ĩ"] = "i", ["Õ"] = "o", ["Ũ"] = "u", ["Ñ"] = "n", ["Ç"] = "c" } -- Reemplazar letras con tilde y diéresis según la tabla de mapeo for k, v in pairs(mapping) do input = input:gsub(k, v) end -- Eliminar caracteres especiales y espacios input = input:gsub("[%s%p%c]", "") return input end function m.main(frame) local args = frame:getParent().args local juego = args["tipo"] or args[1] local nombre = args["nombre"] or args[2] local estado = args["estado"] or args[3] local tamano = args[4] or args["tamaño"] or 24 local icono = args[5] or args["icono"] or nil -- Normalizar el nombre del juego juego = require('Módulo:Acortar_juego').getGame(juego) -- Traducir el personaje local nombreIngles = require('Módulo:Castellano').getPersonaje(nombre) if tamano == "icono" then icono = tamano or icono tamano = 24 end if estado ~= nil and not tonumber(estado) and estado ~="icono" then estado = genericType(estado) elseif estado == "icono" then icono = estado or icono estado = nil elseif tonumber(estado) then tamano = tonumber(estado) or tamano estado = nil end -- Lógica para determinar la imagen local constructorProvisional if estado ~= nil then if mw.title.new("File:" .. juego .. " Icon " .. nombreIngles .. " " .. estado .. ".png").exists then constructorProvisional = string.format("[[File:%s Icon %s %s.png|%dpx|link=%s]]", juego, nombreIngles, estado, tamano, nombre) else constructorProvisional = string.format("[[File:Not found.png|%dpx|link=]]", tamano) end else if mw.title.new("File:" .. juego .. " Icon " .. nombreIngles .. ".png").exists then constructorProvisional = string.format("[[File:%s Icon %s.png|%dpx|link=%s]]", juego, nombreIngles, tamano, nombre) else constructorProvisional = string.format("[[File:%s Icon %s.png|%dpx|link=%s]]", juego, nombreIngles, tamano, nombre) --constructorProvisional = string.format("[[File:Not found.png|%dpx|link=]]", tamano) end end if icono == nil then constructorProvisional = string.format("%s [[%s]]", constructorProvisional, nombre) return constructorProvisional end return constructorProvisional end return m