Módulo:generar-pron/yua

Hola, es más que probable que has llegado hasta aquí buscando la definición de Módulo:generar-pron/yua. En Dictious no solo dispondrás de la posibilidad de hallar la totalidad de las acepciones reconocidas de la palabra Módulo:generar-pron/yua, sino que además también te hablaremos de su etimología, sus peculiaridades y aprenderás la manera en que se dice la palabra Módulo:generar-pron/yua en singular y en plural. Todo aquello que se debe conocer en referencia a la palabra Módulo:generar-pron/yua lo tienes aquí. La definición de Módulo:generar-pron/yua contribuirá a ser más concreto y idóneo cuando llegue el momento de hablar o componer tus enunciados. Conocer la definición deMódulo:generar-pron/yua, de la misma forma que las de otras palabras, amplían nuestro vocabulario y nos brindan mayores y mejores herramientas lingüísticas.

La documentación para este módulo puede ser creada en Módulo:generar-pron/yua/doc

-- PRONUNCIACIÓN PARA EL MAYA YUCATECO
-- Autor: Tmagc
-- Revisado por 26agcp

local export = {}

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

local m_str = require("Módulo:String")

local u = m_str.char
local strfind = m_str.find
local strsubn = m_str.gsub
local strsubb = m_str.gsubb
local strsubrep = m_str.gsub_rep
local strlower = m_str.lower
local strstrip = m_str.strip
local strsplit = m_str.split
local strhtml = m_str.encode_html

--CONVENCION: mayúscula para patrones encerrados entre corchetes, minúscula para todo lo demás
local ac_primario = u(0x02C8)
local ac_secundario = u(0x02CC)

local acentos_ipa = ac_primario..ac_secundario
local ACENTOS_IPA = ""

local divsil = u(0xFFF0)
local sepsil = "%-." .. divsil
local SEPARADORES_SILABICOS = ""
local SALVO_SEPARADORES_SILABICOS = ""
local seppal = "# "
local separador_excepto_palabras = acentos_ipa .. sepsil
local separador = separador_excepto_palabras .. seppal
local SEPARADOR = ""

local PUNTUACION = "%{%}¡!¿?.,;:–—]"
local PUNTUACION_EXTRA = "%{%}¡!¿?.,;:–—\"“”„‟‘’«»»«‹››‹]"

local apostrofe = "'ʼꞌꞋ’" -- son distintos
local APOSTROFE = ""

local vocales = "aeiouáéíóúAEIOUÁÉÍÓÚ"
local VOCAL = ""
local consonantes = "bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ"
local CONS = ""

local vocal_ipa = "aeiouáéíóúàèìòù"

local permitido = vocales..consonantes..apostrofe..separador.."·|%s" --asumo que limpié la puntuación

local quitar_tilde = {
	 = "a",
	 = "e",
	 = "i",
	 = "o",
	 = "u",
	 = "a",
	 = "e",
	 = "i",
	 = "o",
	 = "u"
}

-- single characters that map to IPA sounds
local mapeo_1c = {
     = "t͡ʃ",
     = "t͡s",
     = "t͡ʃʼ",
     = "t͡sʼ",
     = "kʼ",
     = "pʼ",
     = "tʼ",
	 = "j",
}

local mapeo_1b = {
	 = "ʔ",
	-- = "a",
	 = "ɓ",
	-- = "e",
	-- = "i",
	 = "h",
	-- = "k",
	-- = "l",
	-- = "m",
	-- = "n",
	-- = "o",
	-- = "p",
	 = "ɾ",
	-- = "s",
	-- = "t",
	-- = "u",
	-- = "w",
	 = "ʃ",
}

local mapeo_1 = {
	 = "áa̰",
	 = "éḛ",
	 = "íḭ",
	 = "óo̰",
	 = "úṵ",
}

-- character sequences of two that map to IPA sounds
local mapeo_2 = {
	 = "àː",
	 = "áː",
	 = "èː",
	 = "éː",
	 = "ìː",
	 = "íː",
	 = "òː",
	 = "óː",
	 = "ùː",
	 = "úː",
	 = "C",
	 = "S",
}

local mapeo_3 = {
	 = "H",
	 = "Z",
	 = "K",
	 = "P",
	 = "T",
}

local function normalizar(texto)
	texto = strlower(texto)
	texto = strsubrep(texto, PUNTUACION, " | ") -- convierto lo que delimite fragmentos a los IPA foot boundaries |
	texto = strsubrep(texto, PUNTUACION_EXTRA, "") -- elimino la puntuación restante que haya quedado
	texto = strsubrep(texto, "", " ") --los guiones pasan a ser espacios (austro-húngaro, franco-italiano)
	
	if strfind(texto, "") then
		error("caracteres no permitidos en el título")
	end

    texto = strsubrep(texto, "%s*|%s*|%s*", " | ") --finalmente, elimino las barras y espacios de más
    texto = strsubrep(texto, "%s+", " ")
	texto = strstrip(texto, "+")
	
	return texto
end

local function silabear(p)
	-- 1. Separo si hay un único caracter de consonante entre dos vocales
	p = strsubrep(p, "(" .. VOCAL .. APOSTROFE ..  "?)(" .. CONS  .. VOCAL .. ")", "%1"..divsil.."%2")
	
	-- 2. Separo ch, ch', ts, ts'
	p = strsubrep(p, "(" .. VOCAL .. APOSTROFE .. "?" .. CONS .. "?" .. CONS .. "?" .. APOSTROFE .. "?)(" .. "" .. APOSTROFE .. "?"  .. VOCAL .. ")", "%1"..divsil.."%2")
	p = strsubrep(p, "(" .. VOCAL .. APOSTROFE .. "?" .. CONS .. "?" .. CONS .. "?" .. APOSTROFE .. "?)(" .. "" .. APOSTROFE .. "?"  .. VOCAL .. ")", "%1"..divsil.."%2")
	p = strsubrep(p, "(" .. VOCAL .. APOSTROFE .. "?" .. "" .. APOSTROFE .. "?)(" .. CONS .. "?" .. CONS .. "?" .. APOSTROFE .. "?" .. VOCAL .. ")", "%1"..divsil.."%2")
	p = strsubrep(p, "(" .. VOCAL .. APOSTROFE .. "?" .. "" .. APOSTROFE .. "?)(" .. CONS .. "?" .. CONS .. "?" .. APOSTROFE .. "?" .. VOCAL .. ")", "%1"..divsil.."%2")
	
	-- 3. Separo p', t', k'
	p = strsubrep(p, "(" .. VOCAL .. APOSTROFE .. "?" .. CONS .. "?" .. CONS .. "?" .. APOSTROFE .. "?)(" .. "" .. APOSTROFE  .. VOCAL .. ")", "%1"..divsil.."%2")
	p = strsubrep(p, "(" .. VOCAL .. APOSTROFE .. "?" .. "" .. APOSTROFE .. ")(" .. CONS .. CONS .. "?" .. APOSTROFE .. "?" .. VOCAL .. ")", "%1"..divsil.."%2")
	
	-- 4. Separo el apóstrofe con la vocal anterior siempre y cuando sean vocales diferentes (el apóstrofe en los demás casos se contempló en 1.)
	p = strsubn(p, "()(" .. APOSTROFE .. ")()", function(a,b,c) return a == c and a..b..c or a..b..divsil..c end)
	
	-- 5. Separo el resto de consonantes
	p = strsubrep(p, "(" .. VOCAL .. APOSTROFE .. "?" .. CONS .. CONS .. "?" .. APOSTROFE .. "?)(" .. CONS .. CONS .. "?" .. APOSTROFE .. "?" .. VOCAL .. ")", "%1"..divsil.."%2")
	
	-- 6. Separo el resto de vocales (siempre y cuando no formen un único grupo, ie, sean distintas sin considerar tildes)
	p = strsubn(p, "("..VOCAL..")("..VOCAL..")", function(a,b) return quitar_tilde == quitar_tilde and a..b or a..divsil..b end)
	
	p = strsubn(p, "+", divsil)
	p = strstrip(p, "+")
	
	return p
end

local function generar_pron(text)
	text = normalizar(text)
	local convertido = {}
	local fragmentos = strsplit(text, "%s*|%s*")
	
	for _,fragmento in ipairs(fragmentos) do
	    local palabras = strsplit(fragmento, "%s")
		local palabras_convertidas = {}
	    for _,p in ipairs(palabras) do
	    	p = silabear(p)
			p = strsubn(p, divsil, ".")
	    	
	    	-- mapeo fonológico
	    	for a,b in pairs(mapeo_3) do
	    		p = strsubn(p, a, b)
	    	end
	    	for a,b in pairs(mapeo_2) do
	    		p = strsubn(p, a, b)
	    	end
	    	for a,b in pairs(mapeo_1) do
	    		p = strsubn(p, a, b)
	    	end
	    	for a,b in pairs(mapeo_1b) do
	    		p = strsubn(p, a, b)
	    	end
	    	for a,b in pairs(mapeo_1c) do
	    		p = strsubn(p, a, b)
	    	end
	    	
	    	-- Si empieza por vocal, agrego la glotal
	    	p = strsubn(p, "^()", "ʔ%1")
	    	
	    	insert(palabras_convertidas, p)
	    end
	    insert(convertido, concat(palabras_convertidas, " "))
	end
	
	local conservador = concat(convertido, " | ")
	
	-- variante reducida: 
	-- 1. Al final de palabra, la letra L se transcribe /h/.
	local reducido = strsubn(conservador, "l ", "h ")
	reducido = strsubn(reducido, "l$", "h")
	-- 2. Al final de sílaba, la letra B se transcribe /ʔ/.
	reducido = strsubn(reducido, "ɓ ", "ʔ ")
	reducido = strsubn(reducido, "ɓ$", "ʔ")
	reducido = strsubn(reducido, "ɓ%.", "ʔ.")
	
	if reducido == conservador then
    	return {{"pronunciación"}}, {{strhtml(conservador)}}
	end
		
	return {{"conservador"}, {"reducido"}}, {{strhtml(conservador)}, {strhtml(reducido)}}
end

-- Punto de entrada externo, recibe el título de página y los argumentos de plantilla
function export.procesar_pron_args(titulo, args)
	if #args < 1 then
		args = titulo
	end

	if #args < 1 and #args < 1 then
		local A = #args
		local j = 1 -- indice de la ayuda
		local k = 1 -- cantidad de pronunciaciones insertadas (máximo 9)
		local rims = {} -- rimas
		while k <= 9 and j <= A do
			local pron, fono = generar_pron(args)
			for i,_ in ipairs(fono) do
				table.insert(args, pron)
				table.insert(args, fono)
				
				local rim = fono
				rim = strsubn(rim, "^.*"..SEPARADOR.."(.-)$", "%1")
				rim = strsubn(rim, ".-(.*)$", "%1")
				rims = true
				
				k = k + 1
				if k > 9 then
					break
				end
			end
			j = j + 1
		end
		
		local tiene_espacios = strfind(titulo, " ")
		if not tiene_espacios then
			if not args then
				local aux = silabear(args)
				args = strsubn(aux, divsil, "-")
			end
		end
		
		for r,_ in pairs(rims) do
			insert(args, r)
		end
	end

	return args

end
 
return export

Separar Módulo:generar-pron/yua en sílabas

Tal vez de que a parte todo aquello que ahora ya sabes en referencia a la palabra Módulo:generar-pron/yua, ahora también te mostremos la manera de cómo se divide en sílabas. Para ello si quieres aprender a dividir Módulo:generar-pron/yua en sílabas.

Listado de errores ortográficos de Módulo:generar-pron/yua

A continuación puedes ir al link que te lleva a una lista con los principales errores ortográficos, con el fin de que los tomes en consideración y no los cometas.Sin más dilación, aquí tienes el listado de errores ortográficos de Módulo:generar-pron/yua