Mòdul:diccionaris

De Viccionari
Salta a la navegació Salta a la cerca

La documentació d'ús d'aquest mòdul es pot crear a Mòdul:diccionaris/ús

local p = {}
local latin1 = require("Mòdul:urlencode").latin1

local function diec_link(id)
	return "[https://dlc.iec.cat/Results?DecEntradaText=" .. id .. '&AccentSen=True <span title="Diccionari de l\'Institut d\'Estudis Catalans">DIEC</span>]'
end

local function diec1_link(id)
	return "[http://diec1.iec.cat/diec1/entrada/resultats_DIEC.asp?txtSearch=" .. id .. ' <span title="Diccionari de l\'Institut d\'Estudis Catalans 1995">DIEC1</span>]'
end

local function dnv_link(id)
	return "[http://www.avl.gva.es/lexicval/xhtml/dnv.xhtml?paraula=" .. id .. ' <span title="Diccionari normatiu valencià">DNV</span>]'
end

local function gdlc_link(id)
	return "[http://www.diccionari.cat/cgi-bin/AppDLC3.exe?APP=CERCADLC&GECART=" .. id .. ' <span title="Gran Diccionari de la llengua catalana">GDLC</span>]'
end

local function dcvb_link(id)
	return "[http://dcvb.iec.cat/results.asp?word=" .. id .. ' <span title="Diccionari català-valencià-balear, Alcover-Moll">DCVB</span>]'
end

local function optimot_link(id)
	return "[https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?action=Principal&method=cerca_generica&tipusCerca=cerca.queSignifica&input_cercar=" .. id .. " <span title=\"Optimot, consultes lingüístiques\">Optimot</span>]"
end

local function termcat_link(id)
	return "[http://www.termcat.cat/ca/cercaterm/" .. id .. '?type=advanced&language=ca&condition=match&fields=denominacio <span title="Termcat, centre de terminologia">Termcat</span>]'
end

local function ptv_link(id)
	return "[http://www.avl.gva.es/lexicval/ptv?paraula=" .. id .. ' <span title="Portal Terminològic Valencià">PTV</span>]'
end

local function gec_link(id)
	if string.match(id, "^%d+$") then
		return "[http://www.enciclopedia.cat/EC-GEC-" .. id .. '.xml <span title="Gran Enciclopèdia Catalan">GEC</span>]'
	else
		return '[http://www.enciclopedia.cat/search/obrae/GEC/label:' .. id .. ' <span title="Gran Enciclopèdia Catalan">GEC</span>]'
	end
	return ''
end

local function dem_link(id)
	return "[https://www.demcat.cat/ca/diccionaris-portal/183/search/" .. id .. '?type=basic&condition=match <span title="Diccionari enciclopèdic de medicina">DEM</span>]'
end

local function eeif_link(id)
	return "[http://www.eeif.cat/veus/" .. id .. '/ <span title="Enciclopèdia d\'Eivissa i Formetera">EEiF</span>]'
end

local function dalg_link(id)
	return "[http://www.algueres.net/busca.aspx?busca=" .. id .. ' <span title="Diccionari d\'Alguerés">DAlg</span>]'
end

local function faraudo_link(id)
	return "[http://www.iec.cat/faraudo/results.asp?search=" .. id .. '&optCriteria=0&optSearchType=2 <span title="Vocabulari de la llengua catalana medieval, Lluís Faraudo">Faraudo</span>]'
end

local function esadir_link(id)
	return "[http://esadir.cat/Cerca?cerca=" .. id .. '&criteri=General <span title="Portal lingüístic de la Corporació Catalana de Mitjans Audiovisuals">ésAdir</span>]'
end

local function wikisign_link(id)
	return "[http://lsc.wikisign.org/wiki/" .. id .. ' Wikisign]'
end

local function sematos_link(id)
	return "[http://www.sematos.eu/lsc-r-" .. id .. "-ca.html Sematos]"
end

local function process(frame, args, dicos)
	local pagename = mw.title.getCurrentTitle().subpageText
	if dicos[1][3] == 'lowercase' then
		pagename = mw.ustring.lower(pagename)
	end
	local params = {}
	local valid_dict = {}
	for _, dic in ipairs(dicos) do
		valid_dict[dic[1]] = true
	end
	for name, val in pairs(args) do
		if type(name) == "number" then
			if valid_dict[val] and not params[val] then
				params[val] = pagename
			elseif valid_dict[val] and params[val] then
				error("El paràmetre \"" .. val .. "\" està duplicat.")
			else
				error("El paràmetre \"" .. val .. "\" no és usat per aquesta plantilla.")
			end
		else
			if valid_dict[name] and not params[name] then
				params[name] = val
			elseif valid_dict[name] and params[name] then
				error("El paràmetre \"" .. name .. "\" està duplicat.")
			else
				error("El paràmetre \"" .. name .. "\" no és usat per aquesta plantilla.")
			end
		end
	end
	
	local links = {}
	for _, dic in ipairs(dicos) do
		if params[dic[1]] then
			if dic[3] == 'latin1' then
				table.insert(links, dic[2](latin1(params[dic[1]])))
			else
				table.insert(links, dic[2](frame:callParserFunction('urlencode', params[dic[1]])))
			end
		end
	end
				
	return table.concat(links, ", ")
end

function p.ca_diccionaris(frame)
	local args = frame:getParent().args
	local dicos = {
		{'diec', diec_link, ''},
		{'diec1', diec1_link, 'latin1'},
		{'dnv', dnv_link, ''},
		{'gdlc', gdlc_link, 'latin1'},
		{'dcvb', dcvb_link, 'latin1'},
		{'termcat', termcat_link, ''},
		{'ptv', ptv_link, ''},
		{'gec', gec_link, ''},
		{'dem', dem_link, ''},
		{'optimot', optimot_link, 'latin1'},
		{'esadir', esadir_link, ''},
		{'eeif', eeif_link, ''},
		{'dalg', dalg_link, ''},
		{'faraudo', faraudo_link, 'latin1'},
	}
	
	return "''Obres de referència'': " .. process(frame, args, dicos)
end

function p.csc_diccionaris(frame)
	local args = frame:getParent().args
	local dicos = {
		{'wikisign', wikisign_link, 'lowercase'},
		{'sematos', sematos_link, 'lowercase'},
	}
	
	return "''Altres llocs'': " .. process(frame, args, dicos)
end

return p