This module will transliterate Sanskrit language text per WT:SA TR.
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:sa-Beng-translit/testcases.
tr(text, lang, sc)
text
written in the script specified by the code sc
, and language specified by the code lang
.nil
.local export = {}
local consonants = {
='k', ='kh', ='g', ='gh', ='ṅ',
='c', ='ch', ='j', ='jh', ='ñ',
='ṭ', ='ṭh', ='ḍ', ='ḍh', ='ṇ',
='t', ='th', ='d', ='dh', ='n',
='p', ='ph', ='b', ='bh', ='m',
='y', ='y', ='r', ='r', ='l', ='ḷ', ='v',
='ś', ='ṣ', ='s', ='ḣ', ='ẏ',
}
local diacritics = {
='ā', ='i', ='ī', ='u', ='ū', ='ṛ', ='ṝ',
='ḷ', ='ḹ', ='e', ='ai', ='o', ='au', ='',
}
local tt = {
-- vowels
='a', ='ā', ='i', ='ī', ='u', ='ū', ='ṛ', ='ṝ',
='ḷ', ='ḹ', ='e', ='aì', ='o', ='aù',
-- chandrabindu
='m̐', --until a better method is found
-- anusvara
='ṃ', --until a better method is found
-- visarga
='ḥ',
--
='t',
-- avagraha
='’',
--numerals
='০', ='১', ='২', ='৩', ='৪', ='৫', ='৬', ='৭', ='৮', ='৯',
--punctuation
='.', --double danda
='.', --danda
--Vedic extensions
-- ='x', ='f',
--Om
='oṃ',
--reconstructed
= '',
}
function export.tr(text, lang, sc)
text = string.gsub(text, '্ব', '্ৱ')
text = mw.ustring.gsub(
text,
'(়?)'.. -- য় and ল় are composition exclusions!
'(?)',
function(c, d)
if d == "" then
return consonants .. 'a'
else
return consonants .. diacritics
end
end)
text = mw.ustring.gsub(text, '.', tt)
text = string.gsub(text, "()v", "%1b")
text = string.gsub(text, "ḣ", "h")
text = string.gsub(text, "ai", "aï")
text = string.gsub(text, "au", "aü")
text = string.gsub(text, "aì", "ai")
text = string.gsub(text, "aù", "au")
return text
end
return export