মডিউল:sa-translit

উইকিঅভিধান, মুক্ত অভিধান থেকে

এই মডিউলের জন্য মডিউল:sa-translit/নথি-এ নথিপত্র তৈরি করা হয়ে থাকতে পারে

local export = {}

local consonants = {
	['क']='ক', ['ख']='খ', ['ग']='গ', ['घ']='ঘ', ['ङ']='ঙ',
	['च']='চ', ['छ']='ছ', ['ज']='জ', ['झ']='ঝ', ['ञ']='ঞ', 
	['ट']='ট', ['ठ']='ঠ', ['ड']='ড', ['ढ']='ঢ', ['ण']='ণ', 
	['त']='ত', ['थ']='থ', ['द']='দ', ['ध']='ধ', ['न']='ন', 
	['प']='প', ['फ']='ফ', ['ब']='ব', ['भ']='ভ', ['म']='ম',
	['य']='য়', ['र']='র', ['ल']='ল', ['व']='ৱ', ['ळ']='ল়',
	['श']='শ', ['ष']='ষ', ['स']='স', ['ह']='হ',
}

local diacritics = {
	['ा']='া', ['ि']='ি', ['ी']='ী', ['ु']='ু', ['ू']='ূ', ['ृ']='ৃ', ['ॄ']='ৄ', 
	['ॢ']='ৢ', ['ॣ']='ৣ', ['े']='ে', ['ै']='ৈ', ['ो']='ো', ['ौ']='ৌ',  ['्']='্',
}

local tt = {
	-- vowels
	['अ']='অ', ['आ']='আ', ['इ']='ই', ['ई']='ঈ', ['उ']='উ', ['ऊ']='ঊ', ['ऋ']='‌ঋ', ['ॠ']='ৠ',
	['ऌ']='ঌ', ['ॡ']='ৡ', ['ए']='এ', ['ऐ']='ঐ', ['ओ']='ও', ['औ']='ঔ',
	-- chandrabindu    
	['ँ']='ঁ', --until a better method is found
	-- anusvara    
	['ं']='ং', --until a better method is found
	-- visarga    
	['ः']='ঃ',
	-- avagraha
	['ऽ']='ঽ',
	--numerals
	['०']='০', ['१']='১', ['२']='২', ['३']='৩', ['४']='৪', ['५']='৫', ['६']='৬', ['७']='৭', ['८']='৮', ['९']='৯',
	--punctuation        
    ['॥']='।।', --double danda
	['।']='।', --danda
    --Vedic extensions
    ['ᳵ']='ক়', ['ᳶ']='ফ়',
    --Om
    ['ॐ']='ওঁ',
    --reconstructed
    ['*'] = '',
    --accentuation (needs to be handled)
    ['॑'] = '', ['॒'] = ''
}

function export.tr(text, lang, sc)
	text = mw.ustring.gsub(
		text,
		'([कखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशषसह])'..
		'([ािीुूृॄॢॣेैोौ्]?)',
		function(c, d)
			if d == "" then        
				return consonants[c]
			else
				return consonants[c] .. diacritics[d]
			end
		end)

	text = mw.ustring.gsub(text, '.', tt)

	-- বাংলা লিপিতে "ত" সব ব্যঞ্জনবর্ণের সঙ্গে যুক্তাক্ষর গঠন করতে পারে না, তাই যাদের সঙ্গে যুক্তাক্ষর সম্ভব নয় তাদের ক্ষেত্রে "ত" কে "ৎ" দিয়ে প্রতিস্থাপন করা হয়েছে
	text = mw.ustring.gsub(text, 'ত্[(কখগঘঙচছজঝঞটঠডঢণদধপফভৱশষসহ)়?]', 'ৎ%1')

	-- বাংলা লিপিতে "য়" কোনো ব্যঞ্জনবর্ণের সঙ্গে যুক্তাক্ষর গঠন করতে পারে না, তাই ব্যঞ্জনবর্ণের পরে এলে "য়" কে "্য" দিয়ে প্রতিস্থাপন করা হয়েছে
	text = mw.ustring.gsub(text, '্য়', '্য')
	
	return text
end
 
return export