Wiki L'encyclopédie Moga
Wiki L'encyclopédie Moga
19 617
pages
m (Modification de la méthode p.traduction, qui accepte désormais l'argument optionnel "jeu")
(Le Barnos et le Raphinos ne sont pas des dragons anciens mais des drakes ailés. Suppression de la table games)
Ligne 28 : Ligne 28 :
 
ter = {def = wyv.."e de terre", MH3U = wyv .. " brute"},
 
ter = {def = wyv.."e de terre", MH3U = wyv .. " brute"},
 
vol = {def = wyv.."e volante", MH3U = wyv.." volant"},
 
vol = {def = wyv.."e volante", MH3U = wyv.." volant"},
}
 
 
-- Dictionnaire des jeux, n'a pas encore d'utilité, pas encore complet
 
local games = {
 
{names = {occ = mh .. " 3 Ultimate", jp = mh .. " 3G"}, short = {occ = "MH3U", jp = "MH3G"}, releases = {eu = "22 mars 2013"} },
 
{names = {occ = mh .. " 4 Ultimate", jp = mh .. " 4G"}, short = {occ = "MH4U", jp = "MH4G"}, releases = {eu = "13 février 2015"} },
 
{names = {occ = mh .. " Generations", jp = mh .. " X"}, short = {occ = "MHGen", jp = "MHX"}, releases = {eu = "15 juillet 2016"} },
 
 
}
 
}
   
Ligne 72 : Ligne 65 :
 
{name = {def = "Barioth des Sables", en = "Sand Barioth"}, spe = "vol"},
 
{name = {def = "Barioth des Sables", en = "Sand Barioth"}, spe = "vol"},
 
{name = {def = "Barioth gelé", en = "Frozen Barioth"}, spe = "vol"},
 
{name = {def = "Barioth gelé", en = "Frozen Barioth"}, spe = "vol"},
{name = {def = "Barnos", en = "Barnos"}, spe = "dra"},
+
{name = {def = "Barnos", en = "Barnos"}, spe = "ail"},
 
{name = {def = "Barroth", en = "Barroth"}, spe = "ter"},
 
{name = {def = "Barroth", en = "Barroth"}, spe = "ter"},
 
{name = {def = "Barroth de Jade", en = "Jade Barroth"}, spe = "ter"},
 
{name = {def = "Barroth de Jade", en = "Jade Barroth"}, spe = "ter"},
Ligne 338 : Ligne 331 :
 
{name = {def = "Rajang Furieux", en = "Furious Rajang"}, spe = "bet"},
 
{name = {def = "Rajang Furieux", en = "Furious Rajang"}, spe = "bet"},
 
{name = {def = "Rajang orage", en = "Furious Rajang"}, spe = "bet"},
 
{name = {def = "Rajang orage", en = "Furious Rajang"}, spe = "bet"},
{name = {def = "Raphinos", en = "Raphinos"}, spe = "dra"},
+
{name = {def = "Raphinos", en = "Raphinos"}, spe = "ail"},
 
{name = {def = "Rathalos", en = "Rathalos"}, spe = "vol"},
 
{name = {def = "Rathalos", en = "Rathalos"}, spe = "vol"},
 
{name = {def = "Rathalos azur", en = "Azure Rathalos"}, spe = "vol"},
 
{name = {def = "Rathalos azur", en = "Azure Rathalos"}, spe = "vol"},

Version du 25 mai 2020 à 08:00

Le module Monsters Database, en français la base de données des monstres est un module de définition et d'accès à la base de données. Il a pour but de standardiser et simplifier les usages sur le wiki, et doit être tenu à jour.

Important
Ne modifiez pas la base de données si vous n'êtes pas sûr de ce que vous faites !

Variables

  • species : une mini-base de données des types de monstres. Fonctionne avec des clefs uniques bien identifiées en trois lettres.
  • monstres : le cœur de la base de données.
    • name : nom du monstre (en français pour "def" → "default") et anglais sous "en". Un autre nom en français dans un opus spécifique peut être ajouté avec "MH3U = nom" par exemple
    • spe : specie, le type du monstre
    • g : games, le premier jeu de chaque génération' dans lequel apparaît le monstre.

Fonctions

Fonctions privées

  • load_monsters : remplace les valeurs compressées de la base de donnée par leur version en texte plein, modifie la base de données
  • get_value : permet d'obtenir la valeur d'un paramètre de façon intelligente
  • standard_filter : format pour un "filtre standard"

Méthodes publiques

  • check_data : vérifie l'intégrité de la base
  • existe : vérifie si un monstre existe
  • espece : donne le type d'un monstre
  • traduction : donne la traduction du nom d'un monstre
  • liste_jeux : donne les opus dans lesquels apparaît un monstre
  • liste_monstres : renvoie tous les monstres

Pour modifier cette page : Module:Monsters Database/doc.


--[[ Ce module a pour but de centraliser, standardiser et faciliter l'accès aux informations portant sur les monstre.

Il constitue une base de données avec des fonctions permettant d'accéder aux données, et doit donc être tenu à jour.]]
local p = {}
 
local wyv, mh = "Wyvern", "Monster Hunter"

-- Dictionnaire des espèces existantes, avec des noms raccourcis, et différentes versions. "def" pour "nom par défaut"
local species = {
    ["?"] = {def = "???"},
    ail = {def = "Drake ailé"},
    amp = {def = "Amphibien"},
    aqu = {def = wyv.."e aquatique"},
    bet = {def = "Bête à crocs", MH3U = "Pélagus"},
    car = {def = "Carapacéon"},
    cro = {def = wyv.."e à crocs"},
    dra = {def = "Dragon ancien"},
    her = {def = "Herbivore"},
    inc = {def = "Inclassable"},
    lev = {def = "Léviathan"},
    lyn = {def = "Lynien"},
    neo = {def = "Neopteron"},
    poi = {def = "Poisson"},
    rap = {def = wyv.."e rapace", MH4U = wyv.."e aviaire", MH3U = wyv.." aviaire"},
    rel = {def = "Relique"},
    ser = {def = wyv.."e reptile"},
    tem = {def = "Temnoceran"},
    ter = {def = wyv.."e de terre", MH3U = wyv .. " brute"},
    vol = {def = wyv.."e volante", MH3U = wyv.." volant"},
}

-- Banque de données des monstres 
-- Merci d'ajouter les monstres dans l'ordre alphabétique du nom en français, afin de faciliter la lecture
local monsters = {
    {name = {def = "Abiorugu", en = "Abiorugu"}, spe = "ter"},
    {name = {def = "Agnaktor", en = "Agnaktor"}, spe = "lev"},
    {name = {def = "Agnaktor du Purgatoire", en = "Purgatory Agnaktor"}, spe = "lev"},
    {name = {def = "Agnaktor Glacial", en = "Glacial Agnaktor"}, spe = "lev"},
    {name = {def = "Akantor", en = "Akantor"}, spe = "vol"},
    {name = {def = "Akura Jebia", en = "Akura Jebia"}, spe = "car"},
    {name = {def = "Akura Vashimu", en = "Akura Vashimu"}, spe = "car"},
    {name = {def = "Akura Vashimu Zénith", en = "Zenith Akura Vashimu"}, spe = "car"},
    {name = {def = "Alatreon", en = "Alatreon"}, spe = "dra"},
    {name = {def = "Altaroth", en = "Altaroth"}, spe = "neo"},
    {name = {def = "Amatsu", en = "Amatsu"}, spe = "dra"},
    {name = {def = "Anjanath", en = "Anjanath"}, spe = "ter"},
    {name = {def = "Anjanath tonnerre", en = "Fulgur Anjanath"}, spe = "ter"},
    {name = {def = "Anorupatisu", en = "Anorupatisu"}, spe = "vol"},
    {name = {def = "Anorupatisu Zénith", en = "Zenith Anorupatisu"}, spe = "vol"},
    {name = {def = "Anteka", en = "Anteka"}, spe = "her"},
    {name = {def = "Apceros", en = "Apceros"}, spe = "her"},
    {name = {def = "Apiposu", en = "Apiposu"}, spe = "rap"},
    {name = {def = "Aptonoth", en = "Aptonoth"}, spe = "her"},
    {name = {def = "Aruganosu", en = "Aruganosu"}, spe = "aqu"},
    {name = {def = "Arzuros", en = "Arzuros"}, spe = "bet"},
    {name = {def = "Arzuros Crâne-ardent", en = "Redhelm Arzuros"}, spe = "bet"},
    {name = {def = "Astalos", en = "Astalos"}, spe = "vol"},
    {name = {def = "Astalos Prince-orage", en = "Boltreaver Astalos"}, spe = "vol"},
    {name = {def = "Ahtal-Ka", en = "Ahtal-Ka"}, spe = "neo"},
    {name = {def = "Baelidae", en = "Baelidae"}, spe = "car"},
    {name = {def = "Baelidae d'effroi", en = "Dread Baelidae"}, spe = "car"},
    {name = {def = "Baggi", en = "Baggi"}, spe = "rap"},
    {name = {def = "Banbaro", en = "Banbaro"}, spe = "ter"},
    {name = {def = "Barioth", en = "Barioth"}, spe = "vol"},
    {name = {def = "Barioth des Sables", en = "Sand Barioth"}, spe = "vol"},
    {name = {def = "Barioth gelé", en = "Frozen Barioth"}, spe = "vol"},
    {name = {def = "Barnos", en = "Barnos"}, spe = "ail"},
    {name = {def = "Barroth", en = "Barroth"}, spe = "ter"},
    {name = {def = "Barroth de Jade", en = "Jade Barroth"}, spe = "ter"},
    {name = {def = "Baruragaru", en = "Baruragaru"}, spe = "lev"},
    {name = {def = "Basarios", en = "Basarios"}, spe = "vol"},
    {name = {def = "Basarios des sables", en = "Sandstone Basarios"}, spe = "vol"},
    {name = {def = "Basarios Cristal", en = "Crystal Basarios"}, spe = "vol"},
    {name = {def = "Basarios rubis", en = "Ruby Basarios"}, spe = "vol"},
    {name = {def = "Bazelgeuse", en = "Bazelgeuse"}, spe = "vol"},
    {name = {def = "Bazelgeuse vulcan", en = "Seething Bazelgeuse"}, spe = "vol"},
    {name = {def = "Berukyurosu", en = "Berukyurosu"}, spe = "vol"},
    {name = {def = "Beotodus", en = "Beotodus"}, spe = "aqu"},
    {name = {def = "Béhémoth", en = "Behemoth"}, spe = "dra"},
    {name = {def = "Blango", en = "Blango"}, spe = "bet"},
    {name = {def = "Blangonga", en = "Blangonga"}, spe = "bet"},
    {name = {def = "Blangonga Cuivré", en = "Copper Blangonga"}, spe = "bet"},
    {name = {def = "Blangonga de flamme", en = "Flame Blangonga"}, spe = "bet"},
    {name = {def = "Blangonga Zénith", en = "Zenith Blangonga"}, spe = "bet"},
    {name = {def = "Bnahabra", en = "Bnahabra"}, spe = "car"},
    {name = {def = "Boaboa", en = "Boaboa"}, spe = "lyn"},
    {name = {def = "Brachydios", en = "Brachydios"}, spe = "ter"},
    {name = {def = "Brachydios Evangelion", en = "Evangelion Brachydios"}, spe = "ter"},
    {name = {def = "Brachydios projection glaciale", en = "Iceblast Brachydios"}, spe = "ter"},
    {name = {def = "Brachydios tempête", en = "Raging Brachydios", MH3U = "Brachydios enragé", MH4U = "Brachydios enragé", MHGen = "Brachydios enragé", MHGU = "Brachydios enragé"}, spe = "ter"},
    {name = {def = "Bulldrome", en = "Bulldrome"}, spe = "bet"},
    {name = {def = "Bullfango", en = "Bullfango"}, spe = "bet"},
    {name = {def = "Burukku", en = "Burukku"}, spe = "her"},
    {name = {def = "Caeserber", en = "Caeserber"}, spe = "bet"},
    {name = {def = "Caeserber des Sables", en = "Yellow Caeserber"}, spe = "bet"},
    {name = {def = "Caeserber Fantôme", en = "Ghost Caeserber"}, spe = "bet"},
    {name = {def = "Ceadeus", en = "Ceadeus"}, spe = "dra"},
    {name = {def = "Ceadeus Barbedor", en = "Goldbeard Ceadeus"}, spe = "dra"},
    {name = {def = "Ceanataur", en = "Ceanataur"}, spe = "car"},
    {name = {def = "Ceanataur Brise-os", en = "Rustrazor Ceanataur"}, spe = "car"},
    {name = {def = "Ceanataur Shogun", en = "Shogun Ceanataur"}, spe = "car"},
    {name = {def = "Ceanataur Shogun Terre", en = "Terra Shogun Ceanataur"}, spe = "car"},
    {name = {def = "Ceanataur Shogun Maître-lame", en = "Swordmaster Shogun Ceanataur"}, spe = "car"},
    {name = {def = "Cephadrome", en = "Cephadrome"}, spe = "aqu"},
    {name = {def = "Cephalos", en = "Cephalos"}, spe = "aqu"},
    {name = {def = "Chameleos", en = "Chameleos"}, spe = "dra"},
    {name = {def = "Chramine", en = "Chramine"}, spe = "rap"},
    {name = {def = "Chramine glaciale", en = "Ice Chramine"}, spe = "rap"},
    {name = {def = "Conga", en = "Conga"}, spe = "bet"},
    {name = {def = "Congalala", en = "Congalala"}, spe = "bet"},
    {name = {def = "Congalala émeraude", en = "Emerald Congalala"}, spe = "bet"},
    {name = {def = "Congalala Doré", en = "Gold Congalala"}, spe = "bet"},
    {name = {def = "Cortos", en = "Cortos"}, spe = "dra"},
    {name = {def = "Dah'ren Mohran", en = "Dah'ren Mohran"}, spe = "dra"},
    {name = {def = "Dalamadur", en = "Dalamadur"}, spe = "dra"},
    {name = {def = "Dalamadur Shah", en = "Shah Dalamadur"}, spe = "dra"},
    {name = {def = "Delex", en = "Delex"}, spe = "aqu"},
    {name = {def = "Deviljho", en = "Deviljho "}, spe = "ter"},
    {name = {def = "Deviljho carnage", en = "Savage Deviljho"}, spe = "ter"},
    {name = {def = "Deviljho colossal", en = "Aberrant Deviljho "}, spe = "ter"},
    {name = {def = "Dhisufiroa", en = "Disufiroa"}, spe = "dra"},
    {name = {def = "Diablos", en = "Diablos"}, spe = "vol"},
    {name = {def = "Diablos armure d'acier", en = "Steel Armor Diablos"}, spe = "vol"},
    {name = {def = "Diablos Bain-de-sang", en = "Bloodbath Diablos"}, spe = "vol"},
    {name = {def = "Diablos doré", en = "Gilded Diablos"}, spe = "vol"},
    {name = {def = "Diablos noire", en = "Black Diablos"}, spe = "vol"},
    {name = {def = "Diorekkusu", en = "Diorekkusu"}, spe = "vol"},
    {name = {def = "Dire Miralis", en = "Dire Miralis"}, spe = "dra"},
    {name = {def = "Dodogama", en = "Dodogama"}, spe = "cro"},
    {name = {def = "Doragyurosu", en = "Doragyurosu"}, spe = "vol"},
    {name = {def = "Duramboros", en = "Duramboros"}, spe = "ter"},
    {name = {def = "Duramboros explosif", en = "Explosive Peak Duramboros"}, spe = "ter"},
    {name = {def = "Duramboros rouillé", en = "Rust Duramboros"}, spe = "ter"},
    {name = {def = "Duremudira", en = "Duremudira"}, spe = "inc"},
    {name = {def = "Dyuragaura", en = "Dyuragaura"}, spe = "vol"},
    {name = {def = "Egyurasu", en = "Egyurasu"}, spe = "vol"},
    {name = {def = "Eo Garudia", en = "Eo Garudia"}, spe = "dra"},
    {name = {def = "Epioth", en = "Epioth"}, spe = "her"},
    {name = {def = "Erupe", en = "Erupe"}, spe = "her"},
    {name = {def = "Eruzerion", en = "Eruzerion"}, spe = "dra"},
    {name = {def = "Espinas", en = "Espinas"}, spe = "vol"},
    {name = {def = "Espinas cendreuse", en = "Espinas Rare Species"}, spe = "vol"},
    {name = {def = "Espinas vermeille", en = "Espinas Subspecies"}, spe = "vol"},
    {name = {def = "Espinas Zénith", en = "Zenith Espinas"}, spe = "vol"},
    {name = {def = "Estrellian", en = "Estrellian"}, spe = "?"},
    {name = {def = "Estrellian suprême", en = "Arbiter Estrellian"}, spe = "?"},
    {name = {def = "Estrellian ténébreux", en = "Doom Estrellian"}, spe = "?"},
    {name = {def = "Farunokku", en = "Farunokku"}, spe = "rap"},
    {name = {def = "Fatalis", en = "Fatalis"}, spe = "dra"},
    {name = {def = "Fatalis blanc", en = "White Fatalis"}, spe = "dra"},
    {name = {def = "Fatalis pourpre", en = "Crimson Fatalis"}, spe = "dra"},
    {name = {def = "Felyne", en = "Felyne"}, spe = "lyn"},
    {name = {def = "Forokururu", en = "Forokururu"}, spe = "vol"},
    {name = {def = "Gajalaka", en = "Gajalaka"}, spe = "lyn"},
    {name = {def = "Gajau", en = "Gajau"}, spe = "aqu"},
    {name = {def = "Gammoth", en = "Gammoth"}, spe = "bet"},
    {name = {def = "Gammoth Givre-ancien", en = "Elderfrost Gammoth"}, spe = "bet"},
    {name = {def = "Gargwa", en = "Gargwa"}, spe = "her"},
    {name = {def = "Garuba Daora", en = "Garuba Daora"}, spe = "dra"},
    {name = {def = "Gastodon", en = "Gastodon"}, spe = "her"},
    {name = {def = "Gasurabazura", en = "Gasurabazura"}, spe = "ter"},
    {name = {def = "Gendrome", en = "Gendrome"}, spe = "rap"},
    {name = {def = "Genprey", en = "Genprey"}, spe = "rap"},
    {name = {def = "Giadrome", en = "Giadrome"}, spe = "rap"},
    {name = {def = "Giaprey", en = "Giaprey"}, spe = "rap"},
    {name = {def = "Giaorugu", en = "Giaorugu"}, spe = "ter"},
    {name = {def = "Giaorugu Zénith", en = "Zenith Giaorugu"}, spe = "ter"},
    {name = {def = "Giggi", en = "Giggi"}, spe = "vol"},
    {name = {def = "Gigginox", en = "Gigginox"}, spe = "vol"},
    {name = {def = "Gigginox Foudroyant", en = "Baleful Gigginox"}, spe = "vol"},
    {name = {def = "Gigginox virulent", en = "Virulent Gigginox"}, spe = "vol"},
    {name = {def = "Gigginox yoga", en = "Yoga Gigginox"}, spe = "vol"},
    {name = {def = "Girros", en = "Girros"}, spe = "cro"},
    {name = {def = "Glavenus", en = "Glavenus"}, spe = "ter"},
    {name = {def = "Glavenus acide", en = "Acidic Glavenus"}, spe = "ter"},
    {name = {def = "Glavenus Lame-chaos", en = "Hellblade Glavenus"}, spe = "ter"},
    {name = {def = "Gobul", en = "Gobul"}, spe = "lev"},
    {name = {def = "Gobul sorcière", en = "Witch Gobul"}, spe = "lev"},
    {name = {def = "Gogmazios", en = "Gogmazios"}, spe = "dra"},
    {name = {def = "Gogomoa", en = "Gogomoa"}, spe = "bet"},
    {name = {def = "Gonngenn Hermitaur", en = "Gonngenn Hermitaur"}, spe = "car"},
    {name = {def = "Gore Magala", en = "Gore Magala"}, spe = "?"},
    {name = {def = "Gore Magala Evangelion", en = "Evangelion Gore Magala"}, spe = "?"},
    {name = {def = "Gore Magala du chaos", en = "Chaotic Gore Magala"}, spe = "?"},
    {name = {def = "Goruganosu", en = "Goruganosu"}, spe = "aqu"},
    {name = {def = "Grand Apiposu", en = "Great Apiposu"}, spe = "rap"},
    {name = {def = "Grand Baggi", en = "Great Baggi"}, spe = "rap"},
    {name = {def = "Grand Foudrinsecte", en = "Great Thunderbug"}, spe = "neo"},
    {name = {def = "Grand Girros", en = "Great Girros"}, spe = "cro"},
    {name = {def = "Grand Jaggi", en = "Great Jaggi"}, spe = "rap"},
    {name = {def = "Grand Jagras", en = "Great Jagras"}, spe = "cro"},
    {name = {def = "Grand Maccao", en = "Great Maccao"}, spe = "rap"},
    {name = {def = "Grand Wroggi", en = "Great Wroggi"}, spe = "rap"},
    {name = {def = "Gravios", en = "Gravios"}, spe = "vol"},
    {name = {def = "Gravios onyx", en = "Black Gravios", MH2 = "Gravios Noir", MHF = "Gravios Noir", MHFU = "Gravios Noir"}, spe = "vol"},
    {name = {def = "Grimalkyne", en = "Grimalkyne"}, spe = "lyn"},
    {name = {def = "Guanzorumu", en = "Guanzorumu"}, spe = "dra"},
    {name = {def = "Gureadomosu", en = "Gureadomosu"}, spe = "vol"},
    {name = {def = "Guren Shen Gaoren", en = "Guren Shen Gaoren"}, spe = "car"},
    {name = {def = "Gurenzeburu", en = "Gurenzeburu"}, spe = "vol"},
    {name = {def = "Gypceros", en = "Gypceros"}, spe = "rap"},
    {name = {def = "Gypceros améthyste", en = "Purple Gypceros", MHF = "Gypceros Pourpre", MH2 = "Gypceros Pourpre", MHFU = "Gypceros Pourpre"}, spe = "rap"},
    {name = {def = "Halk", en = "Halk"}, spe = "vol"},
    {name = {def = "Harudomerugu", en = "Harudomerugu"}, spe = "dra"},
    {name = {def = "Hermitaur", en = "Hermitaur"}, spe = "car"},
    {name = {def = "Hermitaur Daimyo", en = "Daimyo Hermitaur"}, spe = "car"},
    {name = {def = "Hermitaur Daimyo prune", en = "Plum Daimyo Hermitaur"}, spe = "car"},
    {name = {def = "Hermitaur Daimyo Zénith", en = "Zenith Daimyo Hermitaur"}, spe = "car"},
    {name = {def = "Hermitaur Poing-fer", en = "Stonefist Hermitaur"}, spe = "car"},
    {name = {def = "Hornetaur", en = "Hornetaur"}, spe = "neo"},
    {name = {def = "Hypnocatrice", en = "Hypnocatrice"}, spe = "rap"},
    {name = {def = "Hypnocatrice azur", en = "Silver Hypnocatrice"}, spe = "rap"},
    {name = {def = "Hypnocatrice Dorée", en = "Gold Hypnocatrice"}, spe = "rap"},
    {name = {def = "Hypnocatrice Zénith", en = "Zenith Hypnocatrice"}, spe = "rap"},
    {name = {def = "Hypnocatrice saison des amours", en = "Breeding Season Hypnocatrice"}, spe = "rap"},
    {name = {def = "Hyujikiki", en = "Hyujikiki"}, spe = "vol"},
    {name = {def = "Hyujikiki Zénith", en = "Zenith Hyujikiki"}, spe = "vol"},
    {name = {def = "Inagami", en = "Inagami"}, spe = "dra"},
    {name = {def = "Inagami Zénith", en = "Zenith Inagami"}, spe = "dra"},
    {name = {def = "Inconnu (Wyverne volante noire)", en = "Unknown (Black Flying Wyvern)"}, spe = "vol"},
    {name = {def = "Iodrome", en = "Iodrome"}, spe = "rap"},
    {name = {def = "Ioprey", en = "Ioprey"}, spe = "rap"},
    {name = {def = "Jaggi", en = "Jaggi"}, spe = "rap"},
    {name = {def = "Jaggia", en = "Jaggia"}, spe = "rap"},
    {name = {def = "Jagras", en = "Jagras"}, spe = "cro"},
    {name = {def = "Jyuratodus", en = "Jyuratodus"}, spe = "aqu"},
    {name = {def = "Jhen Mohran", en = "Jhen Mohran"}, spe = "dra"},
    {name = {def = "Jhen Mohran Sacré", en = "Jhen Mohran Sacré"}, spe = "dra"},
    {name = {def = "Kamu Orugaron", en = "Kamu Orugaron"}, spe = "bet"},
    {name = {def = "Kecha Wacha", en = "Kecha Wacha"}, spe = "bet"},
    {name = {def = "Kecha Wacha blanc", en = "Ash Kecha Wacha"}, spe = "bet"},
    {name = {def = "Kelbi", en = "Kelbi"}, spe = "her"},
    {name = {def = "Keoaruboru", en = "Keoaruboru"}, spe = "dra"},
    {name = {def = "Kestodon", en = "Kestodon"}, spe = "her"},
    {name = {def = "Khezu", en = "Khezu"}, spe = "vol"},
    {name = {def = "Khezu grenat", en = "Red Khezu", MHF = "Khezu Rouge", MH2 = "Khezu Rouge", MHF2 = "Khezu Rouge", MHFU = "Khezu Rouge"}, spe = "vol"},
    {name = {def = "Khezu Zénith", en = "Zenith Khezu"}, spe = "vol"},
    {name = {def = "Kirin", en = "Kirin"}, spe = "dra"},
    {name = {def = "Kirin empereur de la Foudre", en = "Thunder emperor Kirin"}, spe = "dra"},
    {name = {def = "Kirin Oroshi", en = "Oroshi Kirin"}, spe = "dra"},
    {name = {def = "Konchu", en = "Konchu"}, spe = "neo"},
    {name = {def = "Kuarusepusu", en = "Kuarusepusu"}, spe = "lev"},
    {name = {def = "Kulu-Ya-Ku", en = "Kulu-Ya-Ku"}, spe = "rap"},
    {name = {def = "Kulve Taroth", en = "Kulve Taroth"}, spe = "dra"},
    {name = {def = "Kushala Daora", en = "Kushala Daora"}, spe = "dra"},
    {name = {def = "Kushala Daora rouillé", en = "Rusted Kushala Daora"}, spe = "dra"},
    {name = {def = "Kusubami", en = "Kusubami"}, spe = "car"},
    {name = {def = "Lagiacrus", en = "Lagiacrus"}, spe = "lev"},
    {name = {def = "Lagiacrus ivoire", en = "Ivory Lagiacrus"}, spe = "lev"},
    {name = {def = "Lagiacrus abyssal", en = "Abyssal Lagiacrus"}, spe = "lev"},
    {name = {def = "Lagombi", en = "Lagombi"}, spe = "bet"},
    {name = {def = "Lagombi Maître-neige", en = "Snowbaron Lagombi"}, spe = "bet"},
    {name = {def = "Lagombi sorcière", en = "Witch Lagombi"}, spe = "bet"},
    {name = {def = "Lao-Shan Lung", en = "Lao-Shan Lung"}, spe = "dra"},
    {name = {def = "Lao-Shan Lung gris", en = "Ashen Lao-Shan Lung"}, spe = "dra"},
    {name = {def = "Larinoth", en = "Larinoth"}, spe = "her"},
    {name = {def = "Lavasioth", en = "Lavasioth"}, spe = "aqu"},
    {name = {def = "Lavasioth rouge", en = "Red Lavasioth"}, spe = "aqu"},
    {name = {def = "Legiana", en = "Legiana"}, spe = "vol"},
    {name = {def = "Legiana blizzard", en = "Shrieking Legiana"}, spe = "vol"},
    {name = {def = "Leshen", en = "Leshen"}, spe = "rel"},
    {name = {def = "Lightenna", en = "Lightenna"}, spe = "neo"},
    {name = {def = "Lightenna Stygienne", en = "Poikilos Lightenna"}, spe = "neo"},
    {name = {def = "Lolo Gougarf", en = "Lolo Gougarf"}, spe = "bet"},
    {name = {def = "Ludroth", en = "Ludroth"}, spe = "lev"},
    {name = {def = "Ludroth Royal", en = "Royal Ludroth"}, spe = "lev"},
    {name = {def = "Ludroth Pourpre", en = "Purple Ludroth"}, spe = "lev"},
    {name = {def = "Lunastra", en = "Lunastra"}, spe = "dra"},
    {name = {def = "Maccao", en = "Maccao"}, spe = "rap"},
    {name = {def = "Malfestio", en = "Malfestio"}, spe = "rap"},
    {name = {def = "Malfestio Lune-noire", en = "Nightcloak Malfestio"}, spe = "rap"},
    {name = {def = "Melynx", en = "Melynx"}, spe = "lyn"},
    {name = {def = "Meraginasu", en = "Meraginasu"}, spe = "vol"},
    {name = {def = "Mernos", en = "Mernos"}, spe = "ail"},
    {name = {def = "Merphistophelin", en = "Merphistophelin"}, spe = "dra"},
    {name = {def = "Merphistophelin élémentaire", en = "Elemental Merphistophelin"}, spe = "dra"},
    {name = {def = "Mi Ru", en = "Mi Ru"}, spe = "vol"},
    {name = {def = "Midogaron", en = "Midogaron"}, spe = "bet"},
    {name = {def = "Midogaron Zénith", en = "Zenith Midogaron"}, spe = "bet"},
    {name = {def = "Mizutsune", en = "Mizutsune"}, spe = "lev"},
    {name = {def = "Mizutsune bulle de tonnerre", en = "Thunderbubble Mizutsune"}, spe = "lev"},
    {name = {def = "Mizutsune Perce-âme", en = "Soulseer Mizutsune"}, spe = "lev"},
    {name = {def = "Monoblos", en = "Monoblos"}, spe = "vol"},
    {name = {def = "Monoblos ivoire", en = "White Monoblos"}, spe = "vol"},
    {name = {def = "Monoblos déchu", en = "Shattered Monoblos"}, spe = "vol"},
    {name = {def = "Moofah", en = "Moofah"}, spe = "her"},
    {name = {def = "Morudomunto", en = "Morudomunto"}, spe = "dra"},
    {name = {def = "Mosswine", en = "Mosswine"}, spe = "her"},
    {name = {def = "Namielle", en = "Namielle"}, spe = "dra"},
    {name = {def = "Najarala", en = "Najarala"}, spe = "ser"},
    {name = {def = "Najarala du déluge", en = "Tidal Najarala"}, spe = "ser"},
    {name = {def = "Nakarkos", en = "Nakarkos"}, spe = "dra"},
    {name = {def = "Nargacuga", en = "Nargacuga"}, spe = "vol"},
    {name = {def = "Nargacuga fugace", en = "Blinking Nargacuga"}, spe = "vol"},
    {name = {def = "Nargacuga des marées", en = "Fiercewater Nargacuga"}, spe = "vol"},
    {name = {def = "Nargacuga Sélénite", en = "Lucent Nargacuga"}, spe = "vol"},
    {name = {def = "Nargacuga Vent-acier", en = "Silverwind Nargacuga"}, spe = "vol"},
    {name = {def = "Nargacuga Vert", en = "Green Nargacuga"}, spe = "vol"},
    {name = {def = "Nefu Garumudo", en = "Nefu Garumudo"}, spe = "dra"},
    {name = {def = "Nergigante", en = "Nergigante"}, spe = "dra"},
    {name = {def = "Nergigante chaos", en = "Ruiner Nergigante"}, spe = "dra"},
    {name = {def = "Nerscylla", en = "Nerscylla"}, spe = "tem"},
    {name = {def = "Nerscylla spectrale", en = "Shrouded Nerscylla"}, spe = "tem"},
    {name = {def = "Nibelsnarf", en = "Nibelsnarf"}, spe = "lev"},
    {name = {def = "Noios", en = "Noios"}, spe = "ail"},
    {name = {def = "Nono Orugaron", en = "Nono Orugaron"}, spe = "bet"},
    {name = {def = "Odibatorasu", en = "Odibatorasu"}, spe = "vol"},
    {name = {def = "Odogaron", en = "Odogaron"}, spe = "cro"},
    {name = {def = "Odogaron désastre", en = "Ebony Odogaron"}, spe = "cro"},
    {name = {def = "Onimusha", en = "Onimusha"}, spe = "car"},
    {name = {def = "Paolumu", en = "Paolumu"}, spe = "vol"},
    {name = {def = "Paolumu belladone", en = "Nightshade Paolumu"}, spe = "vol"},
    {name = {def = "Pariapuria", en = "Pariapuria"}, spe = "vol"},
    {name = {def = "Plesioth", en = "Plesioth"}, spe = "aqu"},
    {name = {def = "Plesioth dorade", en = "Seabream Plesioth"}, spe = "aqu"},
    {name = {def = "Plesioth émeraude", en = "Green Plesioth"}, spe = "aqu"},
    {name = {def = "Plesioth torrent", en = "Whitewater Plesioth"}, spe = "aqu"},
    {name = {def = "Plesioth Zénith", en = "Zenith Plesioth"}, spe = "aqu"},
    {name = {def = "Poborubarumu", en = "Poborubarumu"}, spe = "vol"},
    {name = {def = "Poisson", en = "Fish"}, spe = "poi"},
    {name = {def = "Pokara", en = "Pokara"}, spe = "bet"},
    {name = {def = "Pokaradon", en = "Pokaradon"}, spe = "bet"},
    {name = {def = "Popo", en = "Popo"}, spe = "her"},
    {name = {def = "Pukei-Pukei", en = "Pukei-Pukei"}, spe = "rap"},
    {name = {def = "Pukei-Pukei corail", en = "Coral Pukei-Pukei"}, spe = "rap"},
    {name = {def = "Qurupeco", en = "Qurupeco"}, spe = "rap"},
    {name = {def = "Qurupeco Vermillon", en = "Crimson Qurupeco"}, spe = "rap"},
    {name = {def = "Radobaan", en = "Radobaan"}, spe = "ter"},
    {name = {def = "Rajang", en = "Rajang"}, spe = "bet"},
    {name = {def = "Rajang Enma", en = "Enma Rajang"}, spe = "bet"},
    {name = {def = "Rajang Furieux", en = "Furious Rajang"}, spe = "bet"},
    {name = {def = "Rajang orage", en = "Furious Rajang"}, spe = "bet"},
    {name = {def = "Raphinos", en = "Raphinos"}, spe = "ail"},
    {name = {def = "Rathalos", en = "Rathalos"}, spe = "vol"},
    {name = {def = "Rathalos azur", en = "Azure Rathalos"}, spe = "vol"},
    {name = {def = "Rathalos de la destruction", en = "Destruction Wyvern Rathalos"}, spe = "vol"},
    {name = {def = "Rathalos d'argent", en = "Silver Rathalos"}, spe = "vol"},
    {name = {def = "Rathalos Roi-enfer", en = "Dreadking Rathalos"}, spe = "vol"},
    {name = {def = "Rathalos ardent", en = "Flame Rathalos"}, spe = "vol"},
    {name = {def = "Rathalos Zénith", en = "Zenith Rathalos"}, spe = "vol"},
    {name = {def = "Rathian", en = "Rathian"}, spe = "vol"},
    {name = {def = "Rathian sakura", en = "Pink Rathian", MH2 = "Rathian Rose", MHF = "Rathian Rose", MHFU = "Rathian Rose", MH3U = "Rathian Rose"}, spe = "vol"},
    {name = {def = "Rathian sécheresse", en = "Scorching Heat Rathian"}, spe = "vol"},
    {name = {def = "Rathian d'or", en = "Gold Rathian"}, spe = "vol"},
    {name = {def = "Rathian Reine-poison", en = "Dreadqueen Rathian"}, spe = "vol"},
    {name = {def = "Rathian infernale", en = "Conflagration Rathian"}, spe = "vol"},
    {name = {def = "Raviente", en = "Laviente"}, spe = "inc"},
    {name = {def = "Raviente agressif", en = "Violent Laviente"}, spe = "inc"},
    {name = {def = "Raviente berserk", en = "Berserk Laviente"}, spe = "inc"},
    {name = {def = "Ray Gougarf", en = "Ray Gougarf"}, spe = "bet"},
    {name = {def = "Rebidiora", en = "Rebidiora"}, spe = "dra"},
    {name = {def = "Reine Seltas", en = "Seltas Queen"}, spe = "neo"},
    {name = {def = "Reine Seltas du désert", en = "Desert Seltas Queen"}, spe = "neo"},
    {name = {def = "Reine Vespoid", en = "Vespoid Queen"}, spe = "neo"},
    {name = {def = "Remobra", en = "Remobra"}, spe = "ser"},
    {name = {def = "Rhenoplos", en = "Rhenoplos"}, spe = "her"},
    {name = {def = "Roi Shakalaka", en = "King Shakalaka"}, spe = "lyn"},
    {name = {def = "Rukodiora", en = "Rukodiora"}, spe = "dra"},
    {name = {def = "Rukodiora Zénith", en = "Zenith Rukodiora"}, spe = "dra"},
    {name = {def = "Safi'jiiva", en = "Safi'jiiva"}, spe = "dra"},
    {name = {def = "Seltas", en = "Seltas"}, spe = "neo"},
    {name = {def = "Seltas du désert", en = "Desert Seltas"}, spe = "neo"},
    {name = {def = "Seregios", en = "Seregios"}, spe = "vol"},
    {name = {def = "Seregios démoniaque", en = "Demonic Seregios"}, spe = "vol"},
    {name = {def = "Shagaru Magala", en = "Shagaru Magala"}, spe = "dra"},
    {name = {def = "Shakalaka", en = "Shakalaka"}, spe = "lyn"},
    {name = {def = "Shamos", en = "Shamos"}, spe = "cro"},
    {name = {def = "Shantien", en = "Shanthien"}, spe = "dra"},
    {name = {def = "Shara Ishvalda", en = "Shara Ishvalda"}, spe = "dra"},
    {name = {def = "Shen Gaoren", en = "Shen Gaoren"}, spe = "car"},
    {name = {def = "Slagtoth", en = "Slagtoth"}, spe = "her"},
    {name = {def = "Slicemargl", en = "Slicemargl"}, spe = "bet"},
    {name = {def = "Slicemargl pourpre", en = "Purple Slicemargl"}, spe = "bet"},
    {name = {def = "Taikun Zamuza", en = "Taikun Zamuza"}, spe = "car"},
    {name = {def = "Tartaronis", en = "Tartaronis"}, spe = "dra"},
    {name = {def = "Tartaronis infernal", en = "Infernal Tartaronis"}, spe = "dra"},
    {name = {def = "Teostra", en = "Teostra"}, spe = "dra"},
    {name = {def = "Teppeki Shen Gaoren", en = "Teppeki Shen Gaoren"}, spe = "car"},
    {name = {def = "Tetsucabra", en = "Tetsucabra"}, spe = "amp"},
    {name = {def = "Tetsucabra féroce", en = "Berserk Tetsucabra"}, spe = "amp"},
    {name = {def = "Tetsucabra Brise-roc", en = "Drilltusk Tetsucabra"}, spe = "amp"},
    {name = {def = "Tigrex", en = "Tigrex"}, spe = "vol"},
    {name = {def = "Tigrex berserk", en = "Brute Tigrex"}, spe = "vol"},
    {name = {def = "Tigrex magma", en = "Molten Tigrex"}, spe = "vol"},
    {name = {def = "Tigrex Griffe-sombre", en = "Grimclaw Tigrex"}, spe = "vol"},
    {name = {def = "Tigrex Zénith", en = "Zenith Tigrex"}, spe = "vol"},
    {name = {def = "Tigrex ardent", en = "Flame Tigrex"}, spe = "vol"},
    {name = {def = "Tigrex Unité-02", en = "Evangelion Tigrex"}, spe = "vol"},
    {name = {def = "Toa Tesukatora", en = "Toa Tesukatora"}, spe = "dra"},
    {name = {def = "Tobi-Kadachi", en = "Tobi-Kadachi"}, spe = "cro"},
    {name = {def = "Tobi-Kadachi vipère", en = "Viper Tobi-Kadachi"}, spe = "cro"},
    {name = {def = "Toridcless", en = "Toridcless"}, spe = "vol"},
    {name = {def = "Tzitzi-Ya-Ku", en = "Tzitzi-Ya-Ku"}, spe = "rap"},
    {name = {def = "Ukanlos", en = "Ukanlos"}, spe = "vol"},
    {name = {def = "Uragaan", en = "Uragaan"}, spe = "ter"},
    {name = {def = "Uragaan citrouille", en = "Pumpkin Uragaan"}, spe = "ter"},
    {name = {def = "Uragaan pastèque", en = "Watermelon Uragaan"}, spe = "ter"},
    {name = {def = "Uragaan d'Acier", en = "Steel Uragaan"}, spe = "ter"},
    {name = {def = "Uragaan rocher brillant", en = "Shiningrock Uragaan"}, spe = "ter"},
    {name = {def = "Uragaan Roi-cristal", en = "Crystalbeard Uragaan"}, spe = "ter"},
    {name = {def = "Uroktor", en = "Uroktor"}, spe = "lev"},
    {name = {def = "Uruki", en = "Uruki"}, spe = "lyn"},
    {name = {def = "Vaal Hazak", en = "Vaal Hazak"}, spe = "dra"},
    {name = {def = "Vaal Hazak fléau", en = "Blackveil Vaal Hazak"}, spe = "dra"},
    {name = {def = "Valstrax", en = "Valstrax"}, spe = "dra"},
    {name = {def = "Varusaburosu", en = "Varusaburosu"}, spe = "vol"},
    {name = {def = "Velkhana", en = "Velkhana"}, spe = "dra"},
    {name = {def = "Velocidrome", en = "Velocidrome"}, spe = "rap"},
    {name = {def = "Velociprey", en = "Velociprey"}, spe = "rap"},
    {name = {def = "Vespoid", en = "Vespoid"}, spe = "neo"},
    {name = {def = "Vieux Leshen", en = "Ancient Leshen"}, spe = "rel"},
    {name = {def = "Voljang", en = "Voljang"}, spe = "bet"},
    {name = {def = "Volvidon", en = "Volvidon"}, spe = "bet"},
    {name = {def = "Volvidon de Noël", en = "Christmas Volvidon"}, spe = "bet"},
    {name = {def = "Volvidon étoile noire", en = "Black Star Beast Volvidon"}, spe = "bet"},
    {name = {def = "Wroggi", en = "Wroggi"}, spe = "rap"},
    {name = {def = "Wulg", en = "Wulg"}, spe = "bet"},
    {name = {def = "Xeno'jiiva", en = "Xeno'jiiva"}, spe = "dra"},
    {name = {def = "Yama Tsukami", en = "Yama Tsukami"}, spe = "dra"},
    {name = {def = "Yama Kurai", en = "Yama Kurai"}, spe = "dra"},
    {name = {def = "Yian Garuga", en = "Yian Garuga"}, spe = "rap"},
    {name = {def = "Yian Garuga balafré", en = "Scarred Yian Garuga"}, spe = "rap"},
    {name = {def = "Yian Garuga Œil-mort", en = "Deadeye Yian Garuga"}, spe = "rap"},
    {name = {def = "Yian Garuga une-oreille", en = "One-Eared Yian Garuga"}, spe = "rap"},
    {name = {def = "Yian Kut-Ku", en = "Yian Kut-Ku"}, spe = "rap"},
    {name = {def = "Yian Kut-Ku bleu", en = "Blue Yian Kut-Ku"}, spe = "rap"},
    {name = {def = "Zamite", en = "Zamite"}, spe = "amp"},
    {name = {def = "Zamtrios", en = "Zamtrios"}, spe = "amp"},
    {name = {def = "Zamtrios tigré", en = "Tigerstripe Zamtrios"}, spe = "amp"},
    {name = {def = "Zenaserisu", en = "Zenaserisu"}, spe = "vol"},
    {name = {def = "Zerureusu", en = "Zerureusu"}, spe = "vol"},
    {name = {def = "Zinogre", en = "Zinogre"}, spe = "cro"},
    {name = {def = "Zinogre FFBE", en = "FFBE Zinogre"}, spe = "cro"},
    {name = {def = "Zinogre stygien", en = "Stygian Zinogre"}, spe = "cro"},
    {name = {def = "Zinogre hurleur", en = "Howling Zinogre"}, spe = "cro"},
    {name = {def = "Zinogre immortel", en = "Immortal Zinogre"}, spe = "cro"},
    {name = {def = "Zinogre Feu-du-ciel", en = "Thunderlord Zinogre"}, spe = "cro"},
    {name = {def = "Zorah Magdaros", en = "Zorah Magdaros"}, spe = "dra"},
}
-- Fonctions utiles au code

-- Trouve le monstre par son nom on peut préciser le jeu ou la langue. Renvoie la clé dans le tableau monsters
local function find_monster(name, game, la) 
    for k, v in pairs(monsters) do
        if la then
            if v.name[la] == name then
                return v
            end
        end
        if v.name[game] == name or v.name.def == name then
            return v
        end
    end
end

-- Remplace les valeurs compressées de la base de donnée par leur version en texte plein, modifie la base de données
local function load_monsters(game)
   for _, mon in pairs(monsters) do 
       if mon.spe then
            mon.spe = species[mon.spe][game] or species[mon.spe].def
        end
        mon.name.def = mon.name[game] or mon.name.def
    end
end

-- Fonctions accessibles par l'utilisateur

-- Vérifie l'intégrité de la base de données
function p.check_data() 
    local err, war = "Erreurs : ", "Avertissements : "
    for k, v in pairs(monsters) do
        if v.name then
            if not v.name.def then
                err = err .. "\n* Pas de nom par défaut défini ! (ligne " .. k .. ")"
            end
            if not v.name.en then
                war = war .. "\n* Pas de nom en anglais défini ! (ligne " .. k ")"
                if v.name.def then err = err .. " (" .. v.name.def .. ")" end
            end
            if v.spe then
                if not species[v.spe] then
                    err = err .. "\n* L'espèce n'est pas reconnue ! (ligne " .. k .. ")"
                    if v.name.def then err = err .. " (" .. v.name.def .. ")" end
                end
            else
                err = err .. "\n* Pas d'espèce définie ! (ligne " .. k .. ")"
                if v.name.def then err = err .. " (" .. v.name.def .. ")" end
            end
        else
            err = err .. "\n* Pas de nom défini ! (ligne " .. k .. ")"
        end
    end
    return war .. "\n" .. err .. "\nRemarque : les indices de ligne comptent le numéro des l'entrées dans la table (la première entrée porte le numéro 0). Ces indices peuvent être différents de ceux vus dans le code."
end

-- Renvoie son nom par défaut si le monstre en argument d'entré est référencé et rien sinon. Possibilité d'ajouter un opus en perticulier ou une langue différente
function p.existe(a)
    local val = find_monster(a.args["1"], a.args.jeu, a.args.langue)
    if val 
        then return val.name.def
        else return ""
    end
end

-- Renvoie l'espèce d'un monstre, son premier argument anonyme est le nom du monstre, et "jeu" (optionnel), "noerror" (optionnel)
function p.espece(a)
    local monster, r_mon, spe = a.args["1"]
    r_mon = find_monster(monster, a.args.jeu)
    if not r_mon then
        if a.args["noerror"] then
            return ""
        else 
            error("Le monstre " .. monster .. " n'est pas dans le base de données !")
        end
    end
    if not r_mon.spe then
        if a.args["noerror"] then 
            return ""
        else
            error("Le monstre " .. monster .. " n'a pas d'espèce enregistrée !")
        end
    end
    spe = species[r_mon.spe]
    
    if spe[a.args.jeu]
        then return spe[a.args.jeu]
        else return spe.def
    end
end

-- Renvoie le nom du monstre dans une autre langue, son premier argument anonyme est le nom du monstre en français. Prend l'argument "langue"
function p.traduction(a)
    local monster, lan, jeu = a.args["1"], a.args.langue, a.args.jeu
    local r_mon = find_monster(monster, jeu)
    if not r_mon then
        if a.args["noerror"] then
            return ""
        else 
            error("Le monstre " .. monster .. " n'est pas dans le base de données !")
        end
    end
    if not r_mon.name[lan] then
        if a.args["noerror"] then 
            return ""
        else
            error("Le monstre " .. monster .. " n'a pas de traduction enregistrée dans la langue désirée ("..lan..")")
        end
    end
    return r_mon.name[lan]
end

--[[ Renvoie tous les monstres de la base de donnée passant un certain critère, les résultats ne sont pas triés. Les résultats sont séparés par "sep" (un espace par défaut).

Les critères son définis tels que "paramètre = valeur". Par exemple pour tous les monstres se nommant "Rathian", utilisez | name/def = Rathian.
]]
function p.liste_monstres(a)
    local out, sep, _, k, mon, arg, val, m, sub_m, sub_mon
    sep = a.args.sep or " "
    out = ""
    --load_monsters(a.args.jeu)
    for _, mon in pairs(monsters) do
        for arg, val in pairs(a.args) do
           if arg ~= "sep" and arg ~= "jeu" then 
               -- On va aller d'un tableau à un sous-élément en suivant les "/"
               sub_mon = mon
               for sub_m in mw.ustring.gmatch(arg, "[^/]+") do
                    if sub_mon == nil then
                        break
                    end
                    sub_mon = sub_mon[sub_m]
                end
                -- Si on a passé tous les critères de sélection, on garde le nom du monstre si la valeur est conforme
                if mw.ustring.match(sub_mon, val) then
                    out = out .. sep .. mon.name.def
                end
            end
        end
    end
    -- On supprime le séparateur initial
    out = mw.ustring.sub(out, #sep + 1)
    return out
end

return p