Module:lemme

Définition, traduction, prononciation, anagramme et synonyme sur le dictionnaire libre Wiktionnaire.
Sauter à la navigation Sauter à la recherche

La documentation pour ce module peut être créée à Module:lemme/Documentation

local l = {}
local typ = require("Module:types de mots")
local lg = require("Module:langues")

-- Critères basés sur [[Wiktionnaire:Prise de décision/Catégories de lemmes]]

local ok_langs = {
	['fr'] = true,
	['de'] = true,
	['en'] = true,
	['es'] = true,
	['it'] = true,
	['ru'] = true,
	['bg'] = true,
 	['ga'] = true, 
	['gallo'] = true,
 	['se'] = true, 
	['la'] = true, 
	['sl'] = true, 
	['cs'] = true, 
	['sv'] = true, 
	['nl'] = true, 
	['pt'] = true, 
	['fi'] = true
}
local not_ok_types = {
	['faute d’orthographe'] = true,
	['variante par contrainte typographique'] = true,
	['nom propre'] = true,
	['prénom'] = true,
	['nom de famille'] = true,
	['nom scientifique'] = true,
	['infixe'] = true,
	['interfixe'] = true,
	['préfixe'] = true,
	['suffixe'] = true,
	['circonfixe'] = true,
	['symbole'] = true
}

function l.is_lemme(lang, type, flexion, loc)
	if not lang then
		return false
	end
	
	if not ok_langs[lang] then
		return false
	end
	
	if flexion then
		return false
	end
	
	if not type or not typ.is_type(type) or not_ok_types[typ.get_nom(type)] then
		return false
	end
	
	if loc then
		return false
	end
	
	return true
end

function l.cat_lemme(lang, type, flexion, loc)
	if lang == nil  or type == nil or flexion == nil  or loc == nil then
		return ''
	end
	
	if l.is_lemme(lang, type, flexion, loc) then
		nom_langue = lg.get_nom(lang)
		if nom_langue then
			return  "Lemmes en " .. nom_langue
		else
			return ''
		end
	end
end

return l