Module:lac-flexion
Apparence
Ce module regroupe les fonctions pour afficher les infoboites de flexion en lacandon.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis la page Module:lac-flexion/Documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
--========================================================================================
-- Module:lac-flexion
-- (fr) génération des tableaux de flexions des mots en lacandon
-- (en) module building inflexion tables for Lacandon
------------------------------------------------------------------------------------------
-- basé sur le module it-flexion
-- licence / license : CC-BY-SA 3.0
--========================================================================================
local bases = require('Module:bases')
local exports = {}
------------------------------------------------------
-- lien vers une page en lacandon
function lien_lac(page)
--return '[['..page..'#lac|'..page..']]'
return bases.lien_modele(page, 'lac')
end
-- catégorie pluriel manquant
function pluriel_manquant(mot, page)
if mot and mot ~= '' and mot ~= page and (not bases.page_existe(mot)) then
return '[[Catégorie:Pluriels manquants en lacandon]]'
end
return ''
end
------------------------------------------------------
-- tableau de flexions générique à 2 formes (habituellement singulier/pluriel)
-- prm.titre : titre du tableau
-- prm.s : forme au singulier
-- prm.p : forme au pluriel
-- prm.page : nom de la page (doit être le singulier ou le pluriel)
function tableau_simple_2(prm)
-- génération tableau
local txt = '{| class="flextable"\n'
if prm.titre then
txt = txt..'|+'..prm.titre..'\n'
end
txt = txt..
'|-\n'..
'!scope="col"| Singulier\n'..
'!scope="col"| Pluriel\n'..
'|-\n'..
'|'..lien_lac(prm.s)..'\n'..
'|'..lien_lac(prm.p)..'\n'..
'|-\n'..
'|}'
-- catégorie pluriels manquants
txt = txt .. pluriel_manquant(prm.p, prm.page)
return txt
end
------------------------------------------------------
------------------------------------------------------------------------
function exports.boite_sp(frame) -- pour Modèle:lac-flexion
------------------------------------------------------------------------
-- récupération des paramètres passés au modèle
local args = frame:getParent().args
local page_particuliere = args['mot']
local flexion = args['f']
local singulier = args['s']
local pluriel = args['p']
-- chaîne vide si les paramètres n'existent pas
if flexion == nil then
flexion = ''
end
-- construction de la structure de paramètres pour les tableaux
local params = {}
params.titre = args['titre']
params.flexion = flexion
params.s = ''
params.p = ''
-- récupération du nom de la page
local page = mw.title.getCurrentTitle().text
params.page = page
local mot = page
-- prise en charge du singulier ou du pluriel non régulier
local mot_p = mot
if singulier then
mot = singulier
end
if pluriel then
mot_p = pluriel
end
-- cas simple où singulier(s) et pluriel(s) sont spécifiés sans flexion
if (singulier or pluriel) and (flexion == '') then
params.s = mot
params.p = mot_p
-- tableau 2
return tableau_simple_2(params)
end
-- construction du tableau
-- deux dernières lettres de la page
local len_page = mw.ustring.len(page)
local deux_dernieres_lettres = mw.ustring.sub(page, len_page - 1, len_page)
if flexion == 'ob' then
-- pluriel avec suffixe ob
if deux_dernieres_lettres == 'ob' then
-- mot sans le suffixe 'ob'
local prefixe = mw.ustring.sub(page, 1, len_page - 2)
params.s = prefixe
params.p = mot
else
-- rajout du suffixe 'ob' pour le pluriel
params.s = mot
params.p = mot..'ob'
end
return tableau_simple_2(params)
end
-- erreur
if flexion ~= '' and page ~= 'Module:lac-flexion' and page ~= 'Modèle:lac-flexion' then
return '<strong class="error">Flexion: "'..flexion..'" non reconnue</strong>'
end
end
-- publication des fonctions publiques
return exports