Module:pine-pron: Difference between revisions

No edit summary
No edit summary
Line 23: Line 23:
["ỏ"] = "oː", ["ủ"] = "uː", ["ỷ"] = "yː",
["ỏ"] = "oː", ["ủ"] = "uː", ["ỷ"] = "yː",
}
}
-- version of gsub() that returns a 2nd argument boolean indicating whether
-- a substitution was made.
local function gsubb(term, foo, bar)
local retval, nsubs = gsub(term, foo, bar)
return retval, nsubs > 0
end


local export = {}
local export = {}
local word_internal_clusters = m_table.listToSet({
"m·pp", "m·p", "m·b", "n·tt", "n·t", "n·d", "n·dv",
"n·ts", "n·tsv", "n·tsġ", "n·tsġv", "n·ttṡ", "n·tṡ",
"n·tṡv", "n·ƛƛ", "n·ƛ", "n·ƛv", "n·kk", "n·kkv", "n·k", "n·kv",
"p·ṃ",
})
--[[m ṃ p b v
t d ḍ s ṡ ts tṡ r ṛ l ḷ ƛ lį ḷį n ṇ nį ṇį dn ng kn
k g ġ h hį ḥ kṇ tġ]]


function export.crux(term)
function export.crux(term)
-- default to short lax vowels
-- default to short lax vowels
term = term:gsub("[aeiou]", laxen); term = term:gsub("ů", "œ")
term = term:gsub("[aeiouy]", laxen); term = term:gsub("ů", "œ")
-- long vowels
-- long vowels
local nfd_term = mw.ustring.toNFD(term)
local nfd_term = mw.ustring.toNFD(term)
Line 39: Line 57:
term = term:gsub("ʊɔ", "ʊu"); term = term:gsub("œɑ", "øy"); term = term:gsub("œɛ", "ʏy")
term = term:gsub("ʊɔ", "ʊu"); term = term:gsub("œɑ", "øy"); term = term:gsub("œɛ", "ʏy")
-- labiodiphthongized vowels
-- labiodiphthongized vowels
term = term:gsub("vʏy", "ᶣy"); term = term:gsub("vøy", "ᶣø"); term = term:gsub("vʊu", "ʷu")
term = term:gsub("vʏy", "ᶣy"); term = term:gsub("vøy", "ᶣø"); term = term:gsub("vʊu", "ʷu") -- different in eastern
term = term:gsub("^ᶣ", "ɥ"); term = term:gsub("^ʷ", "w")
term = term:gsub("^ᶣ", "ɥ"); term = term:gsub("^ʷ", "w")
-- diphthongs
-- diphthongs