Module:sêbakarî

Alöndö na Wiktionary

La documentation pour ce module peut être créée à Module:sêbakarî/doc

b = require('Module:bases')
lang = require('Module:âyângâködörö')

local p = {}
-- Charge la table une fois pour toutes pour ce module
p.types = mw.loadData('Module:sêbakarî/data')

local lien_aide_section = "[[Wiktionary:Liste des sections|<span title=\"Section inconnue\">*</span>]]"
local lien_aide_type = "[[Wiktionary:Types de mots|<span title=\"Section inconnue\">*</span>]]"
local lien_aide_langue = "[[WT:Liste des langues|<span title=\"Langue inconnue\">*</span>]]"
local lien_aide_numero = "<span title=\"Numéro incorrect\">*</span>"

function p.SB(frame)
    local categories = {}
    local erreurs = {}
    local textes_final = {}
    local langue1=""
    local langue =""

    function _ajoute_categorie(categorie, titre)
		categorie=string.gsub(categorie,"{{lang}}",langue)
		categorie=string.gsub(categorie,"{{lang1}}",langue1)
    	table.insert(categories, "[[Category:"..categorie.."|"..titre.."]]")
	end

    function _ajoute_erreur(erreur)
    	table.insert(erreurs, erreur)
	end

    local args = frame:getParent().args
    -- On s'occupe du code langue à la fin
    local idxlang=-1
    local codelang=""
    for idxlang1,codelang1 in pairs(args) do
    	idxlang =idxlang1
    	codelang=codelang1
    end
	langue1= b.ucfirst(lang.get_nom(codelang))
	if langue1=='' then
		idxlang=idxlang+1
	else
		langue= " na "..langue1
	end
	local texte_final = ""
	for idx,titre in pairs(args) do
		titre=b.lcfirst(titre)
		texte_final = titre
		if idx==idxlang then
			texte_final="IGNORE"
		elseif titre == nil or titre == '' then
			_ajoute_categorie('Wiktionary:sêbakarî sans titre',"")
		    texte_final = 'sêbakarî sans titre'
	    elseif (p.types['alias'][titre]) then
		    -- Alias?
	        texte_final = p.types['alias'][titre]['mot']
	        _ajoute_categorie('Wiktionary:sêbakarî utilisant un alias', titre)
			if (p.types['alias'][titre]['cat'] ~= nil) then
    			for i, cat in ipairs(p.types['alias'][titre]['cat']) do
        			_ajoute_categorie(cat,titre)
    			end
			end
			if (texte_final == nil) then
				texte_final=titre
				_ajoute_erreur('[[Category:Wiktionary:sêbakarî avec erreur alias sans titre]]')
			end
		elseif (p.types['texte'][titre]) then
			texte_final = p.types['texte'][titre]['mot']
			if (p.types['texte'][titre]['cat'] ~= nil) then
    			for i, cat in ipairs(p.types['texte'][titre]['cat']) do
        			_ajoute_categorie(cat,titre)
    			end
			end
			if (texte_final == nil) then
				texte_final=titre
				_ajoute_erreur('[[Category:Wiktionary:sêbakarî avec erreur titre sans titre final]]')
			end
		else
			_ajoute_erreur('[[Category:Wiktionary:sêbakarî avec titre inconnu]]')
    		texte_final = titre
		end
		if texte_final~="IGNORE" then
    		texte_final = b.ucfirst(texte_final)
			table.insert(textes_final, texte_final)
		end
	end

    -- Finalise les catégories
    return "''("..table.concat(textes_final, ", ") ..")''" .. table.concat(categories) .. table.concat(erreurs)
end

return p