Module:types de mots

Bonjour, vous êtes venu ici pour chercher la signification du mot Module:types de mots. Dans DICTIOUS, vous trouverez non seulement toutes les significations du dictionnaire pour le mot Module:types de mots, mais vous apprendrez également son étymologie, ses caractéristiques et comment dire Module:types de mots au singulier et au pluriel. Tout ce que vous devez savoir sur le mot Module:types de mots est ici. La définition du mot Module:types de mots vous aidera à être plus précis et correct lorsque vous parlerez ou écrirez vos textes. Connaître la définition deModule:types de mots, ainsi que celles d'autres mots, enrichit votre vocabulaire et vous fournit des ressources linguistiques plus nombreuses et de meilleure qualité.

 Documentation[voir] [modifier] [historique] [purger]

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 or p.types) 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) 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) then
        code = p.types
    end
    
    local idlocution = 'locution'
    local idmot = 'mot'
    if (pluriel) then
        idlocution = 'locution_pl'
        idmot = 'mot_pl'
    end
    
    -- Type défini?
    if (p.types ~= nil) then
        local nom = ''
        if (locution and p.types ~= nil) then
            nom = p.types
        else
            nom = p.types
        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 then
    	nom = p.types
    end
    
    if (p.types) then
    	local abrev = p.types
        if (flexion)  then abrev = 'flex-' .. abrev end
        
        return abrev
    else
        return 'indef'
    end
end

return p