Module:bku-translit
Jump to navigation
Jump to search
Documentation for this module may be created at Module:bku-translit/doc
local export = {}
local consonants = {
['ᝃ']='k', ['ᝄ']='g', ['ᝅ']='ng',
['ᝆ']='t', ['ᝇ']='d', ['ᝈ']='n',
['ᝉ']='f', ['ᝊ']='b', ['ᝋ']='m',
['ᝌ']='y', ['ᝎ']='l', ['ᝏ']='w',
['ᝐ']='s', ['ᝑ']='h', ['ᝍ']='r',
}
local diacritics = {
['ᝒ']='i', ['ᝓ']='u', ['᜴']='',
}
local tt = {
-- vowels
['ᝀ']='a', ['ᝁ']='i', ['ᝂ']='u',
--punctuation
['᜶']='.', -- kulit and pamudpod
['᜵']=',' -- single kulit and pamudpod
}
function export.tr(text, lang, sc, override)
if sc ~= "Buhd" then
return nil
end
text = mw.ustring.gsub(text,'([ᝃ-ᝑ][᜴])'..'([ᝀ-ᝂ])','%1-%2')
text = mw.ustring.gsub(
text,
'([ᝃ-ᝑ])'..
'([ᝒᝓ᜴]?)'..
'([ᝀ-ᝂ]?)',
function(c, d, e)
if d == "" and e ~= "" then
if tt[e] == "i" or tt[e] == "u" then return consonants[c] .. 'a' .. tt[e]
else return consonants[c] .. 'a' .. tt[e] end
elseif e ~= "" then
return consonants[c] .. diacritics[d] .. tt[e] .. ''
elseif d == "" then
return consonants[c] .. 'a'
else
return consonants[c] .. diacritics[d]
end
end)
text = mw.ustring.gsub(text, '.', tt)
--remove hyphen between vowels
text = mw.ustring.gsub(text,"([aiu])-([aiu])","%1%2")
-- add missing consonant placeholder after vowels
text = mw.ustring.gsub(text,"([aeiou])","%1_")
text = mw.ustring.gsub(text,
'([ᝒᝓ᜴])',
function(c)
return '-' .. diacritics[c]
end)
text = mw.ustring.gsub(text, "◌", "-a")
text = mw.ustring.gsub(text, " ([,.])", "%1")
return text
end
return export