Module:User:Santi2222/nv-pron

Hello, you have come here looking for the meaning of the word Module:User:Santi2222/nv-pron. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:User:Santi2222/nv-pron, but we will also tell you about its etymology, its characteristics and you will know how to say Module:User:Santi2222/nv-pron in singular and plural. Everything you need to know about the word Module:User:Santi2222/nv-pron you have here. The definition of the word Module:User:Santi2222/nv-pron will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:User:Santi2222/nv-pron, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.


local export = {}

local m_script_utils = require("Module:script utilities")
local U = mw.ustring.char
local long = "ː"
local nasal = U(0x0303)
local high = U(0x0301)
local low = U(0x0300)
local desc = U(0x0302)
local asc = U(0x030C)

-- single characters that map to IPA sounds (except vowels) (the characters h, l, m, n, w, x and z represent the same sound as in the IPA)
local simple_char = {="ʔ", ="p", ="t", ="k", ="t͡ʃ", ="kʰ", ="ɬ", ="tʰ", ="j" }
local three_char = {="ñ͡ʃf", ="ñ͡ɬf", ="ñ͡sf", } 
local multiple_char = { ="ñ͡ʃʰ", ="ñˡ", ="ñ͡s", ="ɣ", ="xʷ", ="qf", ="qʰʷ", ="ʃ", ="ñf", ="ñ͡ɬʰ",  ="ñ͡sʰ", ="ʒ"}--ñ and q substitute temporarily t and k.

local simple_oral = {="à", ="á", ="ɛ"..low, ="ɛ"..high, ="ɪ"..low, ="ɪ"..high, ="ò", ="ó"}
local multiple_oral = {="àː", ="áː", ="âː", ="ǎː", 
	="зː", ="бː", ="вː", ="дː", 
	="ùː", ="úː", ="ûː", ="ǔː", 
	="òː", ="óː", ="ôː", ="ǒː"}

local final_c = {="k", ="t", ="ʼ"}--undo the previous substitutions
local final_v=  {="ì", ="í", ="î", ="ǐ", 
	="ê", ="ě", ="é", ="è"}--undo the previous substitutions

local simple_nasal = {="ã"..low, ="ã"..high, ="ẽ"..low, ="ẽ"..high, ="ĩ"..low, ="ĩ"..high, ="õ"..low, ="õ"..high}
local multiple_nasal = {
	="ã"..low..long, ="ã"..high..long, ="ã"..desc..long, ="ã"..asc..long, 
	="ẽ"..low..long, ="ẽ"..high..long, ="ẽ"..desc..long, ="ẽ"..asc..long, 
	="ĩ"..low..long, ="ĩ"..high..long, ="ĩ"..desc..long, ="ĩ"..asc..long, 
	="õ"..low..long, ="õ"..high..long, ="õ"..desc..long, ="õ"..asc..long}

function export.pronunciation(word)
	if type(word) == "table" then
		word = word.args or word:getParent().args
	end
	if not word or (word == "") then
		error("Please put the word as the first positional parameter!")
	end
	word = mw.ustring.lower(word)

	local phonetic = word

	--initial glottal stop
	phonetic = mw.ustring.gsub(phonetic, " ()", " ʔ%1")
	local sy = mw.text.split(phonetic, "")
	if mw.ustring.find(sy, "") then
		sy = "ʔ"..sy
	end
	phonetic = table.concat(sy,"")
	
	--vowels
	for pat, repl in pairs(multiple_oral) do
		phonetic = mw.ustring.gsub(phonetic, pat, repl)
	end
	phonetic = mw.ustring.gsub(phonetic, '.', simple_oral)
	for pat, repl in pairs(multiple_nasal) do
		phonetic = mw.ustring.gsub(phonetic, pat, repl)
	end
	phonetic = mw.ustring.gsub(phonetic, '.', simple_nasal)
	for pat, repl in pairs(final_v) do
		phonetic = mw.ustring.gsub(phonetic, pat, repl)
	end
	
	--consonants
	for pat, repl in pairs(three_char) do
		phonetic = mw.ustring.gsub(phonetic, pat, repl)
	end
	for pat, repl in pairs(multiple_char) do
		phonetic = mw.ustring.gsub(phonetic, pat, repl)
	end
	phonetic = mw.ustring.gsub(phonetic, '.', simple_char)
	for pat, repl in pairs(final_c) do
		phonetic = mw.ustring.gsub(phonetic, pat, repl)
	end
	--changes to the notation
	phonetic = mw.ustring.gsub(phonetic, 'á', "ɑ"..high)
	phonetic = mw.ustring.gsub(phonetic, 'à', "ɑ"..low)
	phonetic = mw.ustring.gsub(phonetic, 'â', "ɑ"..desc)
	phonetic = mw.ustring.gsub(phonetic, 'ǎ', "ɑ"..asc)
	phonetic = mw.ustring.gsub(phonetic, 'a', "ɑ")
	phonetic = mw.ustring.gsub(phonetic, 'ã', "ɑ"..nasal)

	return phonetic
end
 
return export