Modul:0sa-translit

A Wikiszótárból, a nyitott szótárból

A modult a Modul:0sa-translit/doc lapon tudod dokumentálni

local export = {}

local consonants = {
	['ka']='k', ['kha']='kh', ['ga']='g', ['gha']='gh', ['ṅa']='ṅ',
	['cha']='c', ['chha']='ch', ['ja']='j', ['jha']='jh', ['ña']='ñ', 
	['ṭa']='ṭ', ['ṭha']='ṭh', ['ḍa']='ḍ', ['ḍha']='ḍh', ['ṇa']='ṇ', 
	['ta']='t', ['tha']='th', ['da']='d', ['dha']='dh', ['na']='n', 
	['pa']='p', ['pha']='ph', ['ba']='b', ['bha']='bh', ['ma']='m',
	['ya']='y', ['ra']='r', ['la']='l', ['va']='v', ['ळ']='ḷ',
	['sha']='ś', ['ṣa']='ṣ', ['sa']='s', ['ha']='h',
}

local diacritics = {
	['aa']='ā', ['i']='i', ['ee']='ī', ['u']='u', ['oo']='ū', ['ri']='ṛ', ['ॄ']='ṝ', 
	['ॢ']='ḷ', ['ॣ']='ḹ', ['e']='e', ['ai']='ai', ['o']='o', ['au']='au',  ['']='',
}

local tt = {
	-- vowels
	['a']='a', ['aa']='ā', ['i']='i', ['ee']='ī', ['u']='u', ['oo']='ū', ['ri']='ṛ', ['ॠ']='ṝ',
	['ऌ']='ḷ', ['ॡ']='ḹ', ['e']='e', ['ai']='ai', ['o']='o', ['au']='au', 
	-- chandrabindu    
	['']='m̐', --until a better method is found
	-- anusvara    
	['n']='ṃ', --until a better method is found
	-- visarga    
	['ha']='ḥ',
	-- avagraha
	['ऽ']='’',
	--numerals
	['0']='0', ['1']='1', ['2']='2', ['3']='3', ['4']='4', ['5']='5', ['6']='6', ['7']='7', ['8']='8', ['9']='9',
	--punctuation        
    ['॥']='.', --double danda
	['।']='.', --danda
    --Vedic extensions
    ['ᳵ']='x', ['ᳶ']='f',
    --Om
    ['ॐ']='oṃ',
    --reconstructed
    ['*'] = '',
}

function export.tr(text, lang, sc)
	text = mw.ustring.gsub(
		text,
		'([kakhagaghaṅachachhajajhañaṭaṭhaḍaḍhaṇatathadadhanapaphababhamayaralaळvashaṣasaha])'..
		'([aaieeuooriॄॢॣeaioau]?)',
		function(c, d)
			if d == "" then        
				return consonants[c] .. 'a'
			else
				return consonants[c] .. diacritics[d]
			end
		end)

	text = mw.ustring.gsub(text, '.', tt)
	
	return text
end
 
return export