Module:tcy-Tutg-translit
Documentation for this module may be created at Module:tcy-Tutg-translit/doc
local export = {}
local gsub = mw.ustring.gsub
local consonants = {
[''] = 'k', [''] = 'kh', [''] = 'g', [''] = 'gh', ['']='ṅ',
[''] = 'c', [''] = 'ch', [''] = 'j', [''] = 'jh', ['']='ñ',
[''] = 'ṭ', [''] = 'ṭh', [''] = 'ḍ', [''] = 'ḍh', ['']='ṇ',
[''] = 't', [''] = 'th', [''] = 'd', [''] = 'dh', ['']='n',
[''] = 'p', [''] = 'ph', [''] = 'b', [''] = 'bh' , ['']='m',
[''] = 'y', [''] = 'r', [''] = 'r', [''] = 'l', [''] = 'ḷ', [''] = 'v', [''] = 'ś', [''] = 'ṣ', [''] = 's', [''] = 'h',
}
local diacritics = {
[''] = 'ā', [''] = 'i', [''] = 'ī',[''] = 'u', [''] = 'ū',
[''] = 'r̥', [''] ='r̥̄', [''] ='l̥', [''] = 'l̥̄', [''] = 'ē', [''] = 'ai', [''] = 'ō', [''] = 'au', [''] = '', [''] = '',
}
local tt = {
-- vowels
[''] = 'a', [''] ='ā' , [''] ='i' , [''] = 'ī' , [''] = 'u' , [''] = 'ū' ,
[''] = 'r̥', [''] ='r̥̄', [''] ='l̥', [''] = 'l̥̄', [''] = 'ē', [''] ='ai', [''] ='ō', [''] = 'au',
-- other symbols
[''] = 'ṁ',-- avagraha
[''] = 'ṁ',-- anusvara
[''] = 'ḥ' , -- visarga
[''] = 'ōm' , -- om
}
-- translit any words or phrases
function export.tr(text, lang, sc)
local VIRAMA = ''
-- final virama rules
if lang == "tcy" then
text = gsub(text, VIRAMA .. "([%,%.%!%?%:%;]?)$", VIRAMA .. "ŭ%1")
text = gsub(text, VIRAMA .. "([%,%.%!%?%:%;]?) ", VIRAMA .. "ŭ%1 ")
end
text = gsub(
text,
'([])'..
'([]?)',
function(c, d)
if d == "" then
return consonants[c] ..'a'
else
return consonants[c] .. diacritics[d]
end
end)
text = gsub(text,'.', tt)
-- anusvara
text = gsub(text,'ṁ([kgṅ])','ṅ%1')
text = gsub(text,'ṁ([cjñ])','ñ%1')
text = gsub(text,'ṁ([ṭḍṇ])','ṇ%1')
text = gsub(text,'ṁ([tdn])','n%1')
text = gsub(text,'ṁ([pbm])','m%1')
return text
end
return export