Module:Tableau Pokédex
Aller à la navigation
Aller à la recherche
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