This module will transliterate Tulu language text.
The module should preferably not be called directly from templates or other modules.
To use it from a template, use {{xlit}}
.
Within a module, use Module:languages#Language:transliterate.
For testcases, see Module:tcy-Tutg-translit/testcases.
tr(text, lang, sc)
text
written in the script specified by the code sc
, and language specified by the code lang
.nil
.Module:tcy-Tutg-translit/testcases:
All tests passed. (refresh)
Text | Expected | Actual | Comments | |
---|---|---|---|---|
![]() | | pavaḷa | pavaḷa | |
![]() | | pañji | pañji | |
![]() | | kaḍalŭ | kaḍalŭ | virama ŭ |
![]() | | aḍakkŭ | aḍakkŭ | virama ŭ and regular virama |
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 ..'a'
else
return consonants .. diacritics
end
end)
text = gsub(text,'.', tt)
-- anusvara
text = gsub(text,'ṁ()','ṅ%1')
text = gsub(text,'ṁ()','ñ%1')
text = gsub(text,'ṁ()','ṇ%1')
text = gsub(text,'ṁ()','n%1')
text = gsub(text,'ṁ()','m%1')
return text
end
return export