Module:Types de mots
Documentation for this module may be created at Module:Types de mots/doc
-- 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