Módulo:Localización entrenador
De WikiDex
Ir a la navegaciónIr a la búsqueda
La documentación para este módulo puede ser creada en Módulo:Localización entrenador/doc. También existe una plantilla con el mismo nombre; puedes obtener más información sobre la plantilla en Plantilla:Localización entrenador
local p = {} -- variable que tendrá todas las funciones accesibles externamente
-- Lista de parámetros y el título del juego, ordenados por fecha de salida
local _juegos = {
{ ['p'] = 'RAAm', ['j'] = 'Pokémon Rojo, Pokémon Azul y Pokémon Amarillo' },
{ ['p'] = 'OPC', ['j'] = 'Pokémon Oro, Pokémon Plata y Pokémon Cristal' },
{ ['p'] = 'RZE', ['j'] = 'Pokémon Rubí, Pokémon Zafiro y Pokémon Esmeralda' },
{ ['p'] = 'RFVH', ['j'] = 'Pokémon Rojo Fuego y Pokémon Verde Hoja' },
{ ['p'] = 'DPPt', ['j'] = 'Pokémon Diamante, Pokémon Perla y Pokémon Platino' },
{ ['p'] = 'HGSS', ['j'] = 'Pokémon Oro HeartGold y Pokémon Plata SoulSilver' },
{ ['p'] = 'NB', ['j'] = 'Pokémon Negro y Pokémon Blanco' },
{ ['p'] = 'N2B2', ['j'] = 'Pokémon Negro 2 y Pokémon Blanco 2' },
{ ['p'] = 'XY', ['j'] = 'Pokémon X y Pokémon Y' },
{ ['p'] = 'ROZA', ['j'] = 'Pokémon Rubí Omega y Pokémon Zafiro Alfa' },
{ ['p'] = 'SL', ['j'] = 'Pokémon Sol y Pokémon Luna' },
{ ['p'] = 'USUL', ['j'] = 'Pokémon Ultrasol y Pokémon Ultraluna' },
{ ['p'] = 'LGPE', ['j'] = "Pokémon: Let's Go, Pikachu! y Pokémon: Let's Go, Eevee!" },
{ ['p'] = 'EpEc', ['j'] = 'Pokémon Espada y Pokémon Escudo' },
{ ['p'] = 'DBPR', ['j'] = 'Pokémon Diamante Brillante y Pokémon Perla Reluciente' },
{ ['p'] = 'LPA', ['j'] = 'Leyendas Pokémon: Arceus' },
{ ['p'] = 'EP', ['j'] = 'Pokémon Escarlata y Pokémon Púrpura' },
}
-- genera un elemento con la localización en un juego
-- retorna htmlbuilder
local function _generaJuego( titulo, datos )
local containerDiv
containerDiv = mw.html.create( 'div' )
:attr( 'class', 'jj' )
:tag( 'h3' )
:wikitext( titulo )
:done()
:newline() -- Para que las listas no rompan
:wikitext( datos )
:newline() -- Para que las listas no rompan
return containerDiv
end
-- genera un elemento con la lista de localizaciones
-- retorna htmlbuilder
local function _generaListaJuegos( frame, args )
local containerDiv, i, v, ultIndiceConDatos
containerDiv = mw.html.create( 'div' )
:attr( 'class', 'locentrenador' )
ultIndiceConDatos = -1
for i, v in ipairs( _juegos ) do
-- Si un juego no tiene datos, no se muestra
-- Ojo: Si tiene el parámetro pero no está relleno, se mostrará, para que sea rellenado
if args[ v['p'] ] ~= nil then -- and args[ v['p'] ] ~= ''
while ultIndiceConDatos ~= -1 and i - ultIndiceConDatos > 1 do
-- Hay juegos intermedios sin rellenar. Se rellenan con "No aparece"
ultIndiceConDatos = ultIndiceConDatos + 1
containerDiv:node( _generaJuego( _juegos[ ultIndiceConDatos ]['j'], frame:preprocess( '{{No aparece}}' ) ) )
end
containerDiv:node( _generaJuego( v['j'], args[ v['p'] ] ) )
ultIndiceConDatos = i
end
end
containerDiv:allDone()
return tostring( containerDiv )
end
-- Función principal
function p.main( frame )
local out
if frame.args['local'] == '1' then
sourceargs = frame.args
function frame:extensionTag()
return ''
end
else
sourceargs = frame:getParent().args
end
out = {}
table.insert( out, frame:extensionTag( 'templatestyles', '', { src = 'Estilos de plantilla:Localización entrenador/estilos.css' } ) )
table.insert( out, _generaListaJuegos( frame, sourceargs ) )
return table.concat( out, '' )
end
return p -- Todos los módulos terminan retornando la variable que contiene las funciones