মডিউল:hi-translit

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

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

-- বাংলা লিপিতে হিন্দি (এবং সংস্কৃত ব্যতীত দেবনাগরী লিপি ব্যবহারকারী অন্যান্য ভাষা) লিপ্যন্তর

local export = {}

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

	['क़']='ক়', ['ख़']='খ়', ['ग़']='গ়', ['ज़']='জ়', ['झ़']='ঝ়',
	['ड़']='ড়', ['ढ़']='ঢ়', ['फ़']='ফ়',
}

local diacritics = {
	-- স্বরবর্ণের মাত্রা
	['ा']='া', ['ि']='ি', ['ी']='ী', ['ु']='ু', ['ू']='ূ', ['ृ']='ৃ',
	['े']='ে', ['ै']='ৈ', ['ो']='ো', ['ौ']='ৌ',  ['्']='্',

	['ॊ'] = 'ো', ['ॆ'] = 'ে', ['ॉ'] = '', ['ॅ'] = '্যা',
}

local tt = {
	-- স্বরবর্ণ
	['अ']='অ', ['आ']='আ', ['इ']='ই', ['ई']='ঈ', ['उ']='উ', ['ऊ']='ঊ', ['ऋ']='‌ঋ',
	['ए']='এ', ['ऐ']='ঐ', ['ओ']='ও', ['औ']='ঔ',

	['ऒ'] = 'ও', ['ऎ'] = 'এ', ['ऑ'] = 'অ', ['ऍ'] = 'অ্যা',

	-- চন্দ্রবিন্দু    
	['ँ']='ঁ',
	-- অনুস্বার    
	['ं']='ং',
	-- বিসর্গ    
	['ः']='ঃ',
	-- অবগ্রহ
	['ऽ']='ঽ',
	-- সংখ্যা
	['०']='০', ['१']='১', ['२']='২', ['३']='৩', ['४']='৪', ['५']='৫', ['६']='৬', ['७']='৭', ['८']='৮', ['९']='৯',
    -- ওঁ
    ['ॐ']='ওঁ',
    -- 
    ['*'] = '',
}

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, 'ং[(চছজঝঞ)]', 'ঞ্%1')
	text = mw.ustring.gsub(text, 'ং[(টঠডঢণ)]', 'ণ্%1')
	text = mw.ustring.gsub(text, 'ং[(তথদধনস)]', 'ন্%1')
	text = mw.ustring.gsub(text, 'ং[(পফবভম)]', 'ম্%1')

	-- বাগ সংশোধন, বাগের কারণ অজানা
	text = mw.ustring.gsub(text, 'ঙ্ং', 'ঙ্')
	text = mw.ustring.gsub(text, 'ঞ্ং', 'ঞ্')
	text = mw.ustring.gsub(text, 'ণ্ং', 'ণ্')
	text = mw.ustring.gsub(text, 'ন্ং', 'ন্')
	text = mw.ustring.gsub(text, 'ম্ং', 'ম্')

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

	-- বাংলা লিপিতে "য়" কোনো ব্যঞ্জনবর্ণের সঙ্গে যুক্তাক্ষর গঠন করতে পারে না, তাই ব্যঞ্জনবর্ণ ও "য়" এর মাঝে ZWNJ যোগ করা হল
	text = mw.ustring.gsub(text, '্য়', '্‌য়')

	return text
end
 
return export