Content deleted Content added
No edit summary |
No edit summary |
||
Line 525:
end
local
local PHONETIC_GLIDE
local PHONETIC_IPA
Line 639 ⟶ 631:
else
-- Represent vowels neighboring pseudo-glides
text = string_gsub(text,
"(_)([jGw])/([aEei])(@?)(.)([jGw])", substDiphthong)
Line 645 ⟶ 637:
"(.)([jGw])/([aEei])(@?)(_)([jGw])", substDiphthong)
-- Vowels between two non-glides have the most predictable reflexes.▼
-- [f1]
▲ if not CVC_VOWEL then
-- [F2[secondaryR]][f1]
local hGv_X = { AV7M, AV7M, AV7M }
local _wv_X = { AV7u, AOou, QOou }
local hjvtX = { aEei, aEei, QOou }
local hwv_X = { AV7M, AOou, QOou }
local hwvtX = { AV7M, AV7u, QOou }
local _Xv__ = { _jv_X, _Gv_X, _wv_X }
local nXv__ = { njv_X, _Gv_X, hwv_X }
local hXv__ = { _jv_X, hGv_X, hwv_X }
local hXvt_ = { hjvtX, hGv_X, hwvtX }
local hXvr_ = { hjvtX, hGv_X, hwv_X }
-- [primaryR][F2[secondaryL]][F2[secondaryR]][f1]
local __vX_ = {
["p"] = _Xv__, ["t"] = _Xv__, ["k"] = _Xv__,
["m"] = _Xv__, ["n"] = _Xv__, ["N"] = _Xv__,
["r"] = _Xv__, ["l"] = _Xv__
}▼
local n_vX_ = {
["p"] = nXv__, ["t"] = nXv__, ["k"] = nXv__,
["m"] = nXv__, ["n"] = nXv__, ["N"] = nXv__,
["r"] = nXv__, ["l"] = nXv__
local h_vX_ = {
["p"] = hXv__, ["t"] = hXvt_, ["k"] = hXv__,
["m"] = hXv__, ["n"] = hXv__, ["N"] = hXv__,
["r"] = hXvr_, ["l"] = hXv__
-- [primaryL][primaryR][F2[secondaryL]][F2[secondaryR]][f1]
VOWEL_REFLEX = {
["p"] = __vX_, ["t"] = __vX_, ["k"] = __vX_,
["m"] = __vX_, ["n"] = n_vX_, ["N"] = __vX_,
["r"] = __vX_, ["l"] = n_vX_, ["h"] = h_vX_
}
end
▲ -- Vowels between two non-glides have the most predictable reflexes.
text = string_gsub2(text, "([ptkmnNrl])(.)/([aEei])(@?)([ptkmnNrl])(.)",
function(primaryL, secondaryL, vowel, epenth, primaryR, secondaryR)
VOWEL_REFLEX[primaryL][primaryR]
[F2[secondaryL]][F2[secondaryR]][F1[vowel]]..▼
▲ )
▲ vowel = CVC_VOWEL[F2[secondaryL]][F2[secondaryR]][F1[vowel]]
▲ end
▲ return primaryL..secondaryL..vowel..epenth..primaryR..secondaryR
end
)
Line 752 ⟶ 771:
-- Untag certain sequences, exempting them from special reflexes.
text = string_gsub(text, "hj/([aEei][knNrl]w)", "hj%1")
-- Special reflexes.
▲ }
text = string_gsub(text, "([jw])/("..V..")(.)([jGw])",
function(secondaryL, vowel, primaryR, secondaryR)
return secondaryL..
VOWEL_REFLEX["h"][primaryR]
▲ [F2[secondaryL]]
[F2[secondaryL]][F2[secondaryR]][F1[vowel]]..
end
)
|