Aller au contenu

Module:io-flexions

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

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

local p = {}
local m_bases = require('Module:bases')
local pronon = require('Module:prononciation')

function p.getTenseAndRoot(verb)
	if verb:sub(-string.len("ar")) == "ar" then
		return verb, "Présent de l’infinitif"
	elseif verb:sub(-string.len("abis")) == "abis" then
		return string.match(verb, '^(.+)abis$') .. "ar", "Passé parfait de l’indicatif"
	elseif verb:sub(-string.len("abos")) == "abos" then
		return string.match(verb, '^(.+)abos$') .. "ar", "Futur parfait de l’indicatif"
	elseif verb:sub(-string.len("abez")) == "abez" then
		return string.match(verb, '^(.+)abez$') .. "ar", "Passé de l’impératif"
	elseif verb:sub(-string.len("abus")) == "abus" then
		return string.match(verb, '^(.+)abus$') .. "ar", "Passé du conditionnel"
	elseif verb:sub(-string.len("as")) == "as" then
		return string.match(verb, '^(.+)as$') .. "ar", "Présent de l’indicatif"
	elseif verb:sub(-string.len("is")) == "is" then
		return string.match(verb, '^(.+)is$') .. "ar", "Passé de l’indicatif"
	elseif verb:sub(-string.len("os")) == "os" then
		return string.match(verb, '^(.+)os$') .. "ar", "Futur de l’indicatif"
	elseif verb:sub(-string.len("ir")) == "ir" then
		return string.match(verb, '^(.+)ir$') .. "ar", "Passé de l’infinitif"
	elseif verb:sub(-string.len("or")) == "or" then
		return string.match(verb, '^(.+)or$') .. "ar", "Futur de l’infinitif"
	elseif verb:sub(-string.len("ez")) == "ez" then
		return string.match(verb, '^(.+)ez$') .. "ar", "Présent de l’impératif"
	elseif verb:sub(-string.len("us")) == "us" then
		return string.match(verb, '^(.+)us$') .. "ar", "Présent du conditionnel"
	else
		error("Unknown verb tense")
	end
end

function p.verbe(frame)
  local args = frame:getParent().args
  local verb = args['verb'] or mw.title.getCurrentTitle().text
  local label = args['label'] or mw.title.getCurrentTitle().text
  local root, tense = p.getTenseAndRoot(verb)
  
  local cat = ""
  
  if not m_bases.page_existe("Conjugaison:ido/" .. root) and mw.ustring.sub(root, -1) == "i" then
    	cat = "[[Catégorie:Wiktionnaire:Conjugaisons manquantes en ido]]"
  end
  
  return "{| class=\"flextable\"\n"..
	"! colspan=\"2\"|<small>[[Conjugaison:ido/" .. root .. "|Voir la conjugaison du verbe ''" .. root .. "'']]</small>\n"..
	"|-\n"..
	"| style=\"font-variant:small-caps;text-align:center;vertical-align:top\"|" .. tense .. "\n" ..
	"| " .. label .. "\n" ..
	"|}" .. cat
end

return p