Module:Tableau Pokédex
Apparence
But et contexte[modifier]
Ce module permet de facilement créer des tableaux de listes de Pokémon qui incluent huit colonnes : Numéro, Image, Nom français, Nom anglais, Nom allemand, Nom japonais (Kanas), Nom japonais (Déposé) et Types.
Utilisation[modifier]
Paramètres[modifier]
- Paramètres du tableau (dans l'invocation)
- jeu : pour forcer l'utilisation de miniatures provenant d'un jeu plutôt que celles affichées par défaut sur le wiki, il faut invoquer le module de cette façon :
jeu=JEU
;JEU
étant l'abréviation du Modèle:Jeu. - ndex : pour utiliser des numéros différents du Pokédex National, renseigner
ndex=non
.
- Paramètres des lignes (non nommés, à renseigner séparés de slashs entourés d'espaces
/
)
- le numéro du Pokémon, uniquement si le paramètre
ndex=non
est renseigné. - le nom du Pokémon.
- facultatif : le nom de la forme du Pokémon, à noter séparé d'un slash entouré d'espaces
/
, en utilisant les noms de formes utilisés dans les noms des fichiers miniatures.
Exemples d'utilisation[modifier]
Avec les numéros du Pokédex National[modifier]
{{#invoke:Tableau Pokédex|pokedex| Mewtwo Mewtwo / Méga X Victini Pikachu / Cosplayeur }}
ce qui donne :
Numéro | Image | Nom français | Nom anglais | Nom allemand | Nom japonais | Types | |
---|---|---|---|---|---|---|---|
Kanas | Déposé | ||||||
0150 | ![]() | Mewtwo | Mewtwo | Mewtu | Mewtwo | ![]() | |
![]() | Méga-Mewtwo X | Mega Mewtwo X | Mega-Mewtu X | Mega Mewtwo X | ![]() ![]() | ||
0494 | ![]() | Victini | Victini | Victini | Victini | ![]() ![]() | |
0025 | ![]() | Pikachu Pikachu Cosplayeur | Pikachu Cosplay Pikachu | Pikachu Cosplay-Pikachu | Pikachu | ![]() |
Avec des numéros spécifiques[modifier]
{{#invoke:Tableau Pokédex|pokedex|ndex=non|jeu=NB| 000 / Victini 001 / Kyurem 001 / Kyurem / Blanc 002 / Bulbizarre }}
ce qui donne :
Numéro | Image | Nom français | Nom anglais | Nom allemand | Nom japonais | Types | |
---|---|---|---|---|---|---|---|
Kanas | Déposé | ||||||
000 | ![]() | Victini | Victini | Victini | Victini | ![]() ![]() | |
001 | ![]() | Kyurem | Kyurem | Kyurem | Kyurem | ![]() ![]() | |
![]() | Kyurem Kyurem Blanc | Kyurem White Kyurem | Kyurem Weißes Kyurem | Kyurem | ![]() ![]() | ||
002 | ![]() | Bulbizarre | Bulbasaur | Bisasam | Fushigidane | ![]() ![]() |
Dépendances du module[modifier]
local p = {}
function p.pokedex(frame)
local result = {}
local data_ndex = require("Module:Data/NumérosPokémon")
local translation = mw.loadData("Module:Data/NomsPokémon")
local data_form = require("Module:Data/NomsFormes")
local data_types = require("Module:Data/TypesPokémon")
local error_missing_form = "[[Fichier:Panneau Attention.png|x20px|Le nom de cette forme n'est pas renseigné dans cette langue dans les pages de données. Veuillez le renseigner sur la page Module:Data/NomsFormes, ou bien contactez un administrateur ou écrivez dans la page de discussion.|link=Module:Data/NomsFormes]] ERREUR"
-- EN-TÊTE
table.insert(result, '<table class="tableaustandard sortable entetefixe" style="text-align:center;"><thead><tr>')
table.insert(result, '<th rowspan="2">Numéro</th>')
table.insert(result, '<th rowspan="2">Image</th>')
table.insert(result, '<th rowspan="2">Nom français</th>')
table.insert(result, '<th rowspan="2">Nom anglais</th>')
table.insert(result, '<th rowspan="2">Nom allemand</th>')
table.insert(result, '<th colspan="2">Nom japonais</th>')
table.insert(result, '<th rowspan="2">Types</th></tr>')
table.insert(result, '<tr><th>Kanas</th>')
table.insert(result, '<th>Déposé</th></tr></thead>')
table.insert(result, '<tbody>')
local pokemon = frame.args[1]
if pokemon == nil
then pokemon = {}
else pokemon = mw.text.split(pokemon, "\n")
end
local arguments = {}
local num_pred = nil
local jeu = frame.args["jeu"]
local use_ndex = frame.args["ndex"]
if use_ndex then use_ndex = (use_ndex ~= "non") else use_ndex = true end
local i = 1
while pokemon[i] do
arguments = mw.text.split(pokemon[i], " / ")
if arguments[1] ~= ""
then
local ndex_str
local num
local poke_fr
local num_form = 2
if use_ndex
then poke_fr = arguments[1]
ndex_str = data_ndex[poke_fr]
num = ndex_str
else poke_fr = arguments[2]
ndex_str = data_ndex[poke_fr]
num = arguments[1]
end
if not poke_fr then poke_fr = "" end
local ndex = tonumber(ndex_str)
if ndex == nil then ndex_str = "—" end
if not num or num == "" then num = "—" end
local rowspan_num = 1
if num ~= num_pred or num == "—"
then local ii = i + 1
while pokemon[ii] do
local next_arguments = mw.text.split(pokemon[ii], " / ")
local num_next
if use_ndex
then num_next = data_ndex[next_arguments[1]]
-- if not num_next then num_next == "—" end
else num_next = next_arguments[1]
end
if num_next == num and num ~= "—"
then rowspan_num = rowspan_num + 1
else break
end
ii = ii + 1
end
table.insert(result, '<tr><td rowspan="' .. rowspan_num .. '">' .. num .. '</td>')
end
num_pred = num
local form
if use_ndex then form = arguments[2] else form = arguments[3] end
if form == "Mâle"
then form = "♂"
else if form == "Femelle"
then form = "♀"
end
end
local form_image
if form ~= "Galar Normal" and form ~= "Gigamax Aigüe" and form ~= "Gigamax Grave"
then form_image = form
else form_split = mw.text.split(form, " ")
form_image = form_split[1]
end
if ndex_str == "—" then ndex_str = "???" end
local image
if jeu == nil
then if form == nil or form == "Normale" or form == "Normal"
then image = frame:expandTemplate{title='Miniature', args={ndex_str}}
else image = frame:expandTemplate{title='Miniature', args={ndex_str, form_image}}
end
else if form == nil or form == "Normale" or form == "Normal"
then image = frame:expandTemplate{title='Miniature', args={ndex_str, jeu = jeu}}
else image = frame:expandTemplate{title='Miniature', args={ndex_str, form_image, jeu = jeu}}
end
end
table.insert(result, '<td>' .. image .. '</td>')
local link
if form == nil
then link = poke_fr
else local form_dict = {
["Alola"] = poke_fr .. " d'Alola",
["Galar"] = poke_fr .. " de Galar",
["Hisui"] = poke_fr .. " de Hisui",
["Paldea"] = poke_fr .. " de Paldea",
["Méga"] = "Méga-" .. poke_fr,
["Méga X"] = "Méga-" .. poke_fr .. " X",
["Méga Y"] = "Méga-" .. poke_fr .. " Y",
["Gigamax"] = poke_fr .. " Gigamax",
["Infinimax"] = poke_fr .. " Infinimax",
["Gigamax Aigüe"] = poke_fr .. " Gigamax",
["Gigamax Grave"] = poke_fr .. " Gigamax",
["Gigamax Poing Final"] = poke_fr .. " Gigamax",
["Gigamax Mille Poings"] = poke_fr .. " Gigamax",
["Galar Normal"] = poke_fr .. " de Galar",
["Galar Transe"] = poke_fr .. " de Galar",
["Paldea Combative"] = poke_fr .. " de Paldea",
["Paldea Flamboyante"] = poke_fr .. " de Paldea",
["Paldea Aquatique"] = poke_fr .. " de Paldea",
["Casquette Originale"] = poke_fr .. " à Casquette",
["Casquette de Hoenn"] = poke_fr .. " à Casquette",
["Casquette de Sinnoh"] = poke_fr .. " à Casquette",
["Casquette d'Unys"] = poke_fr .. " à Casquette",
["Casquette de Kalos"] = poke_fr .. " à Casquette",
["Casquette d'Alola"] = poke_fr .. " à Casquette",
["Casquette Partenaire"] = poke_fr .. " à Casquette",
["Casquette Monde"] = poke_fr .. " à Casquette",
["Cosplayeur"] = poke_fr .. " Cosplayeur",
["Rockeur"] = poke_fr .. " Rockeur",
["Lady"] = poke_fr .. " Lady",
["Star"] = poke_fr .. " Star",
["Docteur"] = poke_fr .. " Docteur",
["Catcheur"] = poke_fr .. " Catcheur",
["Troizépi"] = poke_fr .. " Troizépi",
["Partenaire"] = poke_fr .. " Partenaire"
}
local link_tmp = form_dict[form]
if not link_tmp
then if form
then
if poke_fr == "Kyurem" or poke_fr == "Necrozma"
then link_tmp = poke_fr .. " " .. form
elseif poke_fr == "Sylveroy"
then link_tmp = poke_fr .. ", le " .. form
end
end
end
if link_tmp
then link = link_tmp
else link = poke_fr
end
end
local special_form = form ~= nil and (form == "Méga" or form == "Méga X" or form == "Méga Y" or form == "Primo" or form == "Ultra" and poke_fr == "Necrozma")
local data_form_this = data_form[ndex_str]
if data_form_this then data_form_this = data_form_this[form] end
if form == nil
then table.insert(result, '<td height="50px" id="' .. poke_fr .. '">' .. "[[" .. link .. "|" .. poke_fr .. "]]" .. '</td>')
else local form_long_fr
if data_form_this then form_long_fr = data_form_this.fr else form_long_fr = nil end
if not form_long_fr then form_long_fr = error_missing_form end
if special_form
then table.insert(result, '<td id="' .. poke_fr .. " " .. form .. '">' .. "[[" .. form_long_fr .. "]]</td>")
else table.insert(result, '<td id="' .. poke_fr .. " " .. form .. '">' .. "[[" .. link .. "|" .. poke_fr .. "]]<br><small>" .. form_long_fr .. '</small></td>')
end
end
local poke_en
if ndex ~= nil
then poke_en = translation[ndex].en
else poke_en = translation[poke_fr]
if poke_en then poke_en = poke_en.en else poke_en = "?" end
end
if form == nil
then table.insert(result, '<td>' .. "[[:en:" .. poke_en .. " (Pokémon)|" .. poke_en .. "]]" .. '</td>')
else local form_long_en
if data_form_this then form_long_en = data_form_this.en else form_long_en = nil end
if not form_long_en then form_long_en = error_missing_form end
if special_form
then table.insert(result, '<td>' .. "[[:en:" .. poke_en .. " (Pokémon)|" .. form_long_en .. "]]</td>")
else table.insert(result, '<td>' .. "[[:en:" .. poke_en .. " (Pokémon)|" .. poke_en .. "]]<br><small>" .. form_long_en .. '</small></td>')
end
end
local poke_de
if ndex ~= nil
then poke_de = translation[ndex].de
else poke_de = translation[poke_fr]
if poke_de then poke_de = poke_de.de else poke_de = "?" end
end
if form == nil
then table.insert(result, '<td>' .. "[[:de:" .. poke_de .. "|" .. poke_de .. "]]" .. '</td>')
else local form_long_de
if data_form_this then form_long_de = data_form_this.de else form_long_de = nil end
if not form_long_de then form_long_de = error_missing_form end
if special_form
then table.insert(result, '<td>' .. "[[:de:" .. poke_de .. "|" .. form_long_de .. "]]</td>")
else table.insert(result, '<td>' .. "[[:de:" .. poke_de .. "|" .. poke_de .. "]]<br><small>" .. form_long_de .. '</small></td>')
end
end
local poke_ja = "?"
local poke_romaji = "?"
local poke_tm = "?"
if ndex ~= nil
then poke_ja = translation[ndex].ja
poke_romaji = translation[ndex]["ja-romaji"]
poke_tm = translation[ndex]["ja-déposé"]
else poke_ja = translation[poke_fr]
if poke_ja
then poke_ja = poke_ja.ja
poke_romaji = translation[poke_fr]["ja-romaji"]
poke_tm = translation[poke_fr]["ja-déposé"]
else poke_ja = "?"
end
end
if poke_tm == nil then poke_tm = poke_romaji end
if form == nil
then local link_ja = "[[:ja:" .. poke_ja .."|" .. poke_ja .. "]]"
local poke_furi = frame:expandTemplate{title='Furigana', args={link_ja, poke_romaji}}
table.insert(result, '<td><span lang="ja">' .. poke_furi .. "</span></td><td>" .. "[[:ja:" .. poke_ja .."|" .. poke_tm .. ']]</td>')
else local form_long_ja
if data_form_this then form_long_ja = data_form_this.ja else form_long_ja = nil end
if not form_long_ja then form_long_ja = error_missing_form end
local form_long_romaji
if data_form_this then form_long_romaji = data_form_this["ja-romaji"] else form_long_romaji = nil end
if not form_long_romaji then form_long_romaji = error_missing_form end
if special_form
then local form_long_tm
if data_form_this then form_long_tm = data_form_this["ja-déposé"] else form_long_tm = nil end
if not form_long_tm then form_long_tm = error_missing_form end
local link_ja = "[[:ja:" .. poke_ja .."|" .. form_long_ja .. "]]"
local poke_furi = frame:expandTemplate{title='Furigana', args={link_ja, form_long_romaji}}
table.insert(result, '<td><span lang="ja">' .. poke_furi .. "</span></td><td>" .. "[[:ja:" .. poke_ja .."|" .. form_long_tm .. ']]</td>')
else local link_ja = "[[:ja:" .. poke_ja .."|" .. poke_ja .. "]]"
local poke_furi = frame:expandTemplate{title='Furigana', args={link_ja, poke_romaji}}
local form_furi = frame:expandTemplate{title='Furigana', args={form_long_ja, form_long_romaji}}
local form_long_ja2
if data_form_this then form_long_ja2 = data_form_this["ja2"] else form_long_ja2 = nil end
local form_long_romaji2
if data_form_this then form_long_romaji2 = data_form_this["ja-romaji2"] else form_long_romaji2 = nil end
if not form_long_romaji2 then form_long_romaji2 = error_missing_form end
if form_long_ja2 == nil
then table.insert(result, '<td><span lang="ja">' .. poke_furi .. "<br><small>" .. form_furi .. "</small></span></td><td>" .. "[[:ja:" .. poke_ja .."|" .. poke_tm .. ']]</td>')
else local form_furi2 = frame:expandTemplate{title='Furigana', args={form_long_ja2, form_long_romaji2}}
table.insert(result, '<td><span lang="ja">' .. poke_furi .. "<br><small>" .. form_furi .. "</small><br><small>" .. form_furi2 .. "</small></span></td><td>" .. "[[:ja:" .. poke_ja .."|" .. poke_tm .. ']]</td>')
end
end
end
local first_type = nil
local second_type = nil
local types_list = data_types[poke_fr]
if types_list
then local types = types_list[1]
if form
then local types_form = types_list[form]
if types_form then types = types_form end
end
first_type = types[1]
second_type = types[2]
end
if not first_type then first_type = "Inconnu" end
if not second_type
then table.insert(result, '<td>' .. frame:expandTemplate{title='Type', args={first_type}} .. '</td></tr>')
else table.insert(result, '<td>' .. frame:expandTemplate{title='Type', args={first_type, second_type}} .. '</td></tr>')
end
end
i = i + 1
end
table.insert(result, '</tbody></table>')
return table.concat(result, "")
end
return p