Aller au contenu

Module:lac-flexion

Définition, traduction, prononciation, anagramme et synonyme sur le dictionnaire libre Wiktionnaire.

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

Ce module regroupe les fonctions pour afficher les infoboites de flexion en lacandon.


--========================================================================================
-- 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
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy