Module:types de mots — Wiktionnaire, le dictionnaire libre
Définition, traduction, prononciation, anagramme et synonyme sur le dictionnaire libre Wiktionnaire.
Ce module renvoie le nom standardisé des types de mots.
Ce module contient trois fonctions exportables avec les trois mêmes paramètres : un nom de type de mot ('nom' par exemple), et deux booléens pour savoir s'il s'agit d'une locution et d'une flexion.
- get_nom_singulier(code, locution, flexion)
- Renvoi le nom standardisé au singulier du type de mot correspondant, s'il existe. get_nom_pluriel(code, locution, flexion)
- Renvoi le nom standardisé au pluriel du type de mot correspondant, s'il existe. Utile pour les catégories. get_abrev(code, locution, flexion)
- Renvoi la version abrégée du type de mot. Utile pour les ancres vers les sections de mot.
La définition des types de mots standardisés et des alias autorisés est écrite dans Module:types de mots/data. Les types de mot autorisés sont affichés grâce aux fonctions de Module:types de mots/analyse.
-- Page de test : Utilisateur:Darkdadaah/Test:Sections b = require('Module:bases') local p = {} -- Charge la table une fois pour toutes pour ce module p.types = mw.loadData('Module:types de mots/data') -- S'agit-il d'un type de mot reconnu (ou d'un alias) ? function p.is_type(nom) if nom == nil then return nil end nom = b.lcfirst(nom) if (p.types['alias'][nom] or p.types['texte'][nom]) then return true else return false end end -- S'agit-il d'un alias? function p.is_alias(nom) if nom == nil then return nil end nom = b.lcfirst(nom) if (p.types['alias'][nomb]) then return true else return false end end -- Crée un nom de flexion selon que le nom commence par une voyelle ou pas function flexion_de(nom, pluriel) local flexnom = '' -- Forme: pluriel ou singulier local forme = 'forme' if (pluriel) then forme = 'formes' end if b.is_elidable(nom) then flexnom = forme .. ' d’' .. nom else flexnom = forme .. ' de ' .. nom end return flexnom end -- Fonction de récupération du nom standard à partir de son code et de ses propriétés function p.get_nom(code, locution, flexion, pluriel) if (code == nil) then return nil end -- Pour chercher dans les listes, le texte doit être en minuscule et sans tirets code = b.lcfirst(code); -- Alias? if (p.types['alias'][code]) then code = p.types['alias'][code] end local idlocution = 'locution' local idmot = 'mot' if (pluriel) then idlocution = 'locution_pl' idmot = 'mot_pl' end -- Type défini? if (p.types['texte'][code] ~= nil) then local nom = '' if (locution and p.types['texte'][code][idlocution] ~= nil) then nom = p.types['texte'][code][idlocution] else nom = p.types['texte'][code][idmot] end -- Flexion if (flexion) then nom = flexion_de(nom, pluriel) end return nom; else return 'type indéfini' end return nil end function p.get_nom_singulier(code, locution, flexion) pluriel = false return p.get_nom(code, locution, flexion, pluriel) end function p.get_nom_pluriel(code, locution, flexion) pluriel = true return p.get_nom(code, locution, flexion, pluriel) end -- Fonction qui créé une version abrégée du nom function p.get_abrev(nom, locution, flexion) if nom == nil then return 'indef' end nom = b.lcfirst(nom) -- Alias? if p.types['alias'][nom] then nom = p.types['alias'][nom] end if (p.types['texte'][nom]) then local abrev = p.types['texte'][nom]['abrev'] if (flexion) then abrev = 'flex-' .. abrev end return abrev else return 'indef' end end return p