Module:sa-Beng-translit

Hello, you have come here looking for the meaning of the word Module:sa-Beng-translit. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:sa-Beng-translit, but we will also tell you about its etymology, its characteristics and you will know how to say Module:sa-Beng-translit in singular and plural. Everything you need to know about the word Module:sa-Beng-translit you have here. The definition of the word Module:sa-Beng-translit will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:sa-Beng-translit, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.

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.

Functions

tr(text, lang, sc)
Transliterates a given piece of text written in the script specified by the code sc, and language specified by the code lang.
When the transliteration fails, returns 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