Módulu:Utilidaes

De Wikipedia

La documentación pa esti módulu pue crease en Módulu:Utilidaes/usu

local export = {}

-- Converteix una llista en una taula amb valor true per cada element
function export.llista (list)
	local set = {}
	for _, l in ipairs(list) do set[l] = true end
	return set
end

-- Afegeix una subplantilla de rastreig
function export.rastreu(key)
	if type(key) == "table" then key = key.args[1] end -- des de plantilles via invoke o des de mòduls via require
	local frame = mw.getCurrentFrame()
	pcall(frame.expandTemplate, frame, { title = 'rastreu/' .. key })
end

-- Función p'apostrofar siguiendo les normes de la llingua asturiana
function export.apostrofar(articulu, pallabra)
	if articulu == nil or pallabra == nil then return '' end

	-- entama por vocal o hache muda + vocal
	local vocal = string.match(pallabra, '^(h?[aeiouáéíóúàèìòùäëïöüâêîôûAEIOUÁÉÍÓÚÀÈÌÒÙÄËÏÖÜÂÊÎÔÛ])')

	if not vocal then
		return articulu .. ' ' .. pallabra
	end

	local articuluminuscules = string.lower(articulu)

	if articulu == 'el' then
		return 'l' .. '\'' .. pallabra
	elseif articulu == 'El' then
		return 'L' .. '\'' .. pallabra
	elseif articulu == 'en' then
		return 'n' .. '\'' .. pallabra
	elseif articulu == 'En' then
		return 'N' .. '\'' .. pallabra
	elseif articuluminuscules == 'que' then
		return string.sub(articulu, 1, 2) .. '\'' .. pallabra
	elseif (articuluminuscules == 'la' or articuluminuscules == 'pa') and string.match(string.lower(pallabra), '^h?[aáàäâAÁÄÂ]') then
		return string.sub(articulu, 1, 1) .. '\'' .. pallabra
	elseif articuluminuscules == 'de' or articuluminuscules == 'me' or articuluminuscules == 'te' or articuluminuscules == 'se' then
		return string.sub(articulu, 1, 1) .. '\'' .. pallabra
	end

	return articulu .. ' ' .. pallabra
end

return export