685
edits
(add diphthong mark in VF sequences) |
(Support diphthong reform) |
||
Line 58: | Line 58: | ||
["diphthong"] = "", | ["diphthong"] = "", | ||
[""] = "", | [""] = "", | ||
-- diphthong reform | |||
["aı"] = "", -- DERANI LETTER DUDEO | |||
["ao"] = "", -- DERANI LETTER PIPOQ | |||
["eı"] = "", -- DERANI LETTER ZOZEO | |||
["oı"] = "", -- DERANI LETTER NHANHOQ | |||
} | } | ||
Line 72: | Line 77: | ||
["_"] = "", -- compatibility nbsp | ["_"] = "", -- compatibility nbsp | ||
} | } | ||
local reform = false | |||
function deranize_word(word) | function deranize_word(word) | ||
Line 95: | Line 102: | ||
end | end | ||
local di = deranimap[media..final] | |||
if di and reform then medial = di final = "" end | |||
local glyphs = {initial, tone, medial} | local glyphs = {initial, tone, medial} | ||
if initial == "" and is_first_syllable then glyphs[1] = "'" end | if initial == "" and is_first_syllable then glyphs[1] = "'" end | ||
Line 102: | Line 111: | ||
glyphs[2], glyphs[3] = glyphs[3], glyphs[2] | glyphs[2], glyphs[3] = glyphs[3], glyphs[2] | ||
end | end | ||
if di and not reform then | |||
if | |||
glyphs[#glyphs+1] = "diphthong" | glyphs[#glyphs+1] = "diphthong" | ||
elseif final ~= "" then | elseif final ~= "" then | ||
glyphs[#glyphs+1] = "hiatus" | glyphs[#glyphs+1] = "hiatus" | ||
end | end | ||
for j, fin in ipairs(mw.text.split(final, "")) do | if reform then | ||
glyphs[#glyphs+1] = final | |||
else | |||
for j, fin in ipairs(mw.text.split(final, "")) do | |||
if j > 1 then glyphs[#glyphs+1] = "diphthong" end | |||
glyphs[#glyphs+1] = fin | |||
end | |||
end | end | ||
if coda ~= "" then | if coda ~= "" then | ||
Line 128: | Line 140: | ||
function deranize(frame) | function deranize(frame) | ||
assert(frame.args[1] ~ | assert(frame.args[1] ~= nil, "This function requires at least one argument") | ||
reform = frame.args[2] ~= nil | |||
local text = u.gsub(u.lower(u.toNFD(frame.args[1])), "i", "ı") | local text = u.gsub(u.lower(u.toNFD(frame.args[1])), "i", "ı") | ||
local converted = u.gsub(text, "(%S+)", deranize_word) | local converted = u.gsub(text, "(%S+)", deranize_word) |