Modulus:partes orationis
Appearance
Usus
[+/-]Usurpatur in “Module:sectio”
-- Copy of the [[:fr:Module:types de words]]
-- 2016-08-04 — Modified and extended by Usor:YaganZ
-- Modified and maintained by: Usor:DenisWasRight
-- Page de test : Utilisateur:Darkdadaah/Test:Sections
b = require('Module:basis')
local p = {}
-- Charge la table une fois pour toutes pour ce module
p.types = mw.loadData('Module:partes orationis/data')
-- S'agit-il d'un type de mot reconnu (ou d'un alias) ?
function p.is_type(name)
if name == nil then return nil end
name = b.lcfirst(name)
if (p.types['alias'][name] or p.types['text'][name]) then
return true
else
return false
end
end
-- S'agit-il d'un alias?
function p.is_alias(name)
if name == nil then return nil end
name = b.lcfirst(name)
if (p.types['alias'][nameb]) 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(name, plural)
local flexname = ''
-- Forme: pluriel ou singulier
local form = 'forma'
if (plural) then form = 'Formae' end
if b.is_elidable(name) then
flexname = form .. ' de ' .. name
else
flexname = form .. ' de ' .. name
end
return flexname
end
-- Fonction de récupération du nom standard à partir de son code et de ses propriétés
function p.get_name(code, phrase, flexion, plural)
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 idphrase = 'phrase'
local idword = 'word'
if (plural) then
idphrase = 'phrase_pl'
idword = 'word_pl'
end
-- Type défini?
if (p.types['text'][code] ~= nil) then
local name = ''
if (phrase and p.types['text'][code][idphrase] ~= nil) then
name = p.types['text'][code][idphrase]
else
name = p.types['text'][code][idword]
end
-- Flexion
if (flexion) then
name = flexion_de(name, plural)
end
return name;
else
return 'undefined type'
end
return nil
end
function p.get_name_singular(code, phrase, flexion)
plural = false
return p.get_name(code, phrase, flexion, plural)
end
function p.get_name_plural(code, phrase, flexion)
plural = true
return p.get_name(code, phrase, flexion, plural)
end
-- Fonction qui créé une version abrégée du nom
function p.get_abrev(name, phrase, flexion)
if name == nil then return 'undef' end
name = b.lcfirst(name)
-- Alias?
if p.types['alias'][name] then
name = p.types['alias'][name]
end
if (p.types['text'][name]) then
local abrev = p.types['text'][name]['abrev']
if (flexion) then abrev = 'flex-' .. abrev end
return abrev
else
return 'undef'
end
end
return p