Modul ini akan mentransliterasi Bahasa Odia teks. Ia juga digunakan untuk mentransliterasi Sambalpuri. 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:or-translit/testcases.

Functions

sunting
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', ['ଵ']='v', ['ଭ']='bh', ['ମ']='m',
	['ଯ']='j', ['ୟ']='y', ['ର']='r', ['ଲ']='ḷ', ['ଳ']='l', ['ୱ']='w',
	['ଶ']='ś', ['ଷ']='ṣ', ['ସ']='s', ['ହ']='h',
	['ଡ଼']='ṛ', ['ଢ଼']='ṛh',
}

local diacritics = {
	['ା']='ā', ['ି']='i', ['ୀ']='ī', ['ୁ']='u', ['ୂ']='ū', ['ୃ']='ru', ['ୄ']='rū', 
	['ୢ']='lu', ['ୣ']='lū', ['େ']='e', ['ୈ']='ôi', ['ୖ']='ôi', ['ୋ']='o', ['ୌ']='ôu', ['ୗ']='ôu',
	['୍']='',
}

local tt = {
	-- vowels
	['ଅ']='ô', ['ଆ']='ā', ['ଇ']='i', ['ଈ']='ī', ['ଉ']='u', ['ଊ']='ū', ['ଋ']='ru', ['ୠ']='rū',
	['ଌ']='lu', ['ୡ']='lū', ['ଏ']='e', ['ଐ']='ôi', ['ଓ']='o', ['ଔ']='ôu', 
	-- chandrabindu    
	['ଁ']='m̐', --until a better method is found
	-- anusvara    
	['ଂ']='ṃ', --until a better method is found
	-- visarga    
	['ଃ	']='ḥ',
	-- avagraha
	['ଽ']='’',
	--numerals
	['୦']='0', ['୧']='1', ['୨']='2', ['୩']='3', ['୪']='4', ['୫']='5', ['୬']='6', ['୭']='7', ['୮']='8', ['୯']='9',
	['୲']='¼', ['୳']='½', ['୴']='¾', ['୵']='¹⁄₁₆', ['୶']='⅛', ['୷']='³⁄₁₆',
	--punctuation        
	['।']='.', --danda
}

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)
	
	return text
end
 
return export