Ir al contenido

Módulo:lengua

De Wikcionario, el diccionario libre

La documentación para este módulo puede ser creada en Módulo:lengua/doc

local export = {}

local insert = table.insert
local concat = table.concat

local generar_error = require("Módulo:traza")

function export.main(frame)
	local params = {
		[1] = {},
		["escritura"] = {lista = true},
		["e"] = {alias_de = "escritura"},
		["transliteración"] = {lista = true}, -- obsoleto
		["transliteracion"] = {alias_de = "transliteración"}, -- obsoleto
		["tl"] = {alias_de = "transliteración"}, -- obsoleto
		["alt"]= {}, --obsoleto
		["alf"]= {}, --obsoleto
	}
	local pframe = frame:getParent()
	local args = require("Módulo:parámetros").obtener_parametros(pframe.args, params)
	local ns = mw.title.getCurrentTitle().namespace
	local code = args[1]
	
	if not code then
		error("Falta especificar el código de idioma. Visite [[Wikcionario:Códigos de idioma]] para encontrar el correcto")	
	end
	
	local ucode = string.upper(code)
	local ucfirst = require("Módulo:String").ucfirst
	local nombre = ucfirst(require('Módulo:lenguas').cod_a_nombre(code))
	
	if #args["transliteración"] > 0 then
		error("No agregue entradas con transliteraciones. Sólo se permiten transliteraciones dentro de pron-graf o etimología")
	end
	
	if args["alt"] and #args["alt"] > 0 then
		generar_error("seccionalt")
	end

	if args["alf"] and #args["alf"] > 0 then
		generar_error("seccionalf")
	end
	
	local escritura = ""
	local cat = "[[Categoría:"..nombre.."]]"
	if #args["escritura"] > 0 then
		local ct = {}
		local ec = {}
		local m_e = require("Módulo:lengua/escrituras")
		
		for i,e_ in ipairs(args["escritura"]) do
			local e = ucfirst(e_)
			local en = m_e[e]
			if en then
				insert(ec, en)
				insert(ct, "[[Categoría:"..ucode..":"..ucfirst(en).."]]")
			else
				insert(ec, e)
				insert(ct, "[[Categoría:"..ucode..":"..ucfirst(e).."]]")
			end
		end
		escritura = " "..tostring(mw.html.create('small'):wikitext("("..concat(ec, ", ")..")"))
		cat = cat..concat(ct)
	end
	
	local span = mw.html.create('span')
		:attr('id', code)
		:addClass('headline-lang')
	
	local header = {tostring(span:wikitext(header))}
	
	local reference_page = mw.title.new( 'Wikcionario:Referencia/' .. ucode )
	if reference_page.exists then
		insert(header,'[['..reference_page.fullText..'|'..nombre..']]')
	else
		insert(header, nombre)
	end
	
	insert(header, escritura)
	
	if ns == 0 then
		insert(header, cat)
	end
	
	return concat(header)
end

return export