Módulo:generar-pron/gn

¡Saludos!, estás en esta página web explorando la definición de Módulo:generar-pron/gn. En esta web no solo podrás descubrir el total de las acepciones reconocidas por el diccionario para la palabra Módulo:generar-pron/gn, sino que también podrás conocer su etimología, sus características y podrás saber cómo se dice Módulo:generar-pron/gn en singular y en plural. Todo aquello que necesitas saber referente a la palabra Módulo:generar-pron/gn aquí lo tienes. La definición de la palabra Módulo:generar-pron/gn te servirá de ayuda a que tengas más acierto e idoneidad cuando sea la hora de conversar o redactar tus piezas. Saber la definición deMódulo:generar-pron/gn, de la misma manera que las definiciones de otros términos, amplían nuestro léxico y nos confieren de mayores y mejores herramientas lingüísticas.

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

-- PRONUNCIACIÓN PARA EL GUARANÍ
-- Autor: Tmagc (inspirado en la versión de en.wikt pero reimplementado desde CERO)

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 puso = "'ʼꞌꞋ" -- son distintos
local PUSO = "" 

local vocal_fuerte_atona = "aAãÃeEẽẼoOõÕ"
local vocal_debil_atona = "iIĩĨuUũŨyYỹỸ"
local vocal_fuerte_tildada = "áÁâÂéÉêÊóÓôÔ"
local vocal_debil_tildada = "íÍîÎúÚûÛýÝŷŶ"

local CONS = ""
local VOCAL = ""
local VOCAL_TILDADA = ""

local R_ESPECIAL = "℟"

local quitar_tilde = {
	 = "a",
	 = "e",
	 = "i",
	 = "o",
	 = "u",
	 = "y",
	 = "ã",
	 = "ẽ",
	 = "ĩ",
	 = "õ",
	 = "ũ",
	 = "ỹ",
}

-- single characters that map to IPA sounds   
local phonetic_chars_map = {
	 = "f",
	 = "ɰ",
	 = "ɰ̃",
	 = "h",
	 = "d͡ʒ",
	 = "k",
	 = "l",
	 = "m",
	 = "n",
	 = "ɲ",
	 = "p",
	 = "ɾ",
	 = "s",
	 = "t",
	 = "ʋ",
	 = "ʔ",
	 = "a",
	 = "ã",
	 = "e",	
	 = "ẽ",
	 = "i",
	 = "ĩ",
	 = "o",
	 = "õ",
	 = "u",
	 = "ũ",
	 = "ɨ",
	 = "ɨ̃",
}

-- character sequences of two that map to IPA sounds
local phonetic_2chars_map = {
	 = "ʃ",
	 = "ᵐb",
	 = "ⁿd",
	 = "ᵑɡ",
	 = "ⁿt",
	 = R_ESPECIAL,
	 = "j%1",
	 = "ʷ%1",
}

local pron_abc = {
	 = "a",
	 = "ã",
	 = "che",
	 = "e",
	 = "ẽ",
	 = "ge",
	 = "g̃e",
	 = "he",
	 = "i",
	 = "ĩ",
	 = "je",
	 = "ke",
	 = "le",
	 = "me",
	 = "mbe",
	 = "ne",
	 = "nde",
	 = "nge",
	 = "nte",
	 = "ñe",
	 = "o",
	 = "õ",
	 = "pe",
	 = "re",
	 = "rre",
	 = "se",
	 = "te",
	 = "u",
	 = "ũ",
	 = "ve",
	 = "y",
	 = "ỹ",
	 = "a",
	 = "ã",
	 = "che",
	 = "e",
	 = "ẽ",
	 = "ge",
	 = "g̃e",
	 = "he",
	 = "i",
	 = "ĩ",
	 = "je",
	 = "ke",
	 = "le",
	 = "me",
	 = "mbe",
	 = "ne",
	 = "nde",
	 = "nge",
	 = "nte",
	 = "ñe",
	 = "o",
	 = "õ",
	 = "pe",
	 = "re",
	 = "rre",
	 = "se",
	 = "te",
	 = "u",
	 = "ũ",
	 = "ve",
	 = "y",
	 = "ỹ",
	 = "puso",
	 = "puso",
}

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)

    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 separar_en_silabas(p)
	p = divsil .. p .. divsil
	
	p = strsubrep(p, "(" .. VOCAL .. ")(" .. CONS .. "+" .. VOCAL .. ")", "%1"..divsil.."%2")
	p = strsubrep(p, "(" .. VOCAL .. CONS .. "+)(" .. CONS .. VOCAL .. ")", "%1"..divsil.."%2")

	for cc, fono in pairs(phonetic_2chars_map) do
		local a, b = cc:sub(1,1), cc:sub(2,2)
		local A, B = a:upper(), b:upper()
		p = strsubrep(p, "()"..divsil.."("..VOCAL..")", divsil.."%1%2")
		p = strsubrep(p, "()"..divsil.."("..VOCAL..")", divsil.."%1%2")
		p = strsubrep(p, "()"..divsil.."()("..CONS..")", "%1%2"..divsil.."%3")
	end
	
	p = strsubn(p, PUSO..divsil, divsil.."'")
	
	p = strsubn(p, "()("..VOCAL..")", "%1"..divsil.."%2")
	p = strsubn(p, "("..VOCAL..")()", "%1"..divsil.."%2")
	p = strsubn(p, "()()"..divsil.."*$", "%1"..divsil.."%2")
	p = strsubn(p, "()()", "%1"..divsil.."%2")
	
	-- correcciones finales
	p = strsubn(p, "+", divsil)
	p = strsubrep(p, SEPARADORES_SILABICOS.."("..CONS.."+)"..SEPARADORES_SILABICOS.."("..SALVO_SEPARADORES_SILABICOS.."-"..VOCAL..")", divsil.."%1%2")
	p = strsubrep(p, SEPARADORES_SILABICOS.."("..SALVO_SEPARADORES_SILABICOS.."-)"..SEPARADORES_SILABICOS.."("..CONS.."+)"..SEPARADORES_SILABICOS, divsil.."%1%2"..divsil)

	
	p = strsubn(p, "+", divsil)
	p = strstrip(p, "+")
	
	return p
end

local function acentuar(p)
	local sust
	p = strsubn(p, PUSO, "ʔ")
	p, sust = strsubb(p, "*"..VOCAL_TILDADA.."*", ac_primario.."%0")
	if not sust then
		p, sust = strsubb(p, "+$", ac_primario.."%0")	-- por defecto es la última sílaba
	end
	assert(sust)
	p = strsubn(p, "%."..ac_primario, ac_primario)
	return p
end

local function generar_pron(text)
	if strfind(text, "") then
		error("Por favor, utilice los caracteres 0xA78C (ꞌ) o 0xA78B (Ꞌ) para el PUSO, GRACIAS")	
	end
	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 = separar_en_silabas(p)
			p = strsubn(p, divsil, ".")
	    	p = acentuar(p)
	    	p = strsubn(p, VOCAL_TILDADA, quitar_tilde)
	    	
	    	-- mapeo fonológico
	    	for a,b in pairs(phonetic_2chars_map) do
	    		p = strsubn(p, a, b)
	    	end
	    	p = strsubn(p, ".", phonetic_chars_map)
	    	p = strsubn(p, R_ESPECIAL, "r")
	    	
	    	insert(palabras_convertidas, p)
	    end
	    insert(convertido, concat(palabras_convertidas, " "))
	end
	
    return {{strhtml(concat(convertido, " | "))}}
    
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 x = pron_abc]
		if x then
			args = x
			args = x
		end
		local A = #args
		local j = 1 -- indice de la ayuda
		local k = 1 -- cantidad de pronunciaciones insertadas (máximo 9)
		while k <= 9 and j <= A do
			local fono = generar_pron(args)
			for i,_ in ipairs(fono) do
				table.insert(args, fono)
				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 = separar_en_silabas(args)
				args = strsubn(aux, divsil, "-")
			end
		end	
		
		local rim = args
		rim = strsubn(rim, "^.*ˈ(.-)$", "%1")
		args = strsubn(rim, ".-".."(.*"..")".."$", "%1")

	end

	return args

end
 
return export

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

Puede ser de que además toda la información que te hemos dado en referencia a la palabra Módulo:generar-pron/gn, también te enseñemos la manera de cómo separarla en sílabas. Si te interesa si deseas aprender a dividir Módulo:generar-pron/gn en sílabas.

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

A continuación te presentamos un listado con los principales errores ortográficos, con la finalidad de que los tomes en consideración y sepas la forma de no incurrir en ellos.Sin más dilación, aquí tienes el listado de errores ortográficos de Módulo:generar-pron/gn