Module:kxu-translit

local export = {}

local consonants = { --common ["କ"]="k", ["ଖ"]="kh", ["ଗ"]="g", ["ଘ"]="gh", ["ଙ"]="ṅ", ["ଚ"]="c", ["ଛ"]="ch", ["ଜ"]="j", ["ଝ"]="jh", ["ଞ"]="ñ", ["ଟ"]="ṭ", ["ଠ"]="ṭh", ["ଡ"]="ḍ", ["ଢ"]="ḍh", ["ଣ"]="ṇ", ["ତ"]="t", ["ଥ"]="th", ["ଦ"]="d", ["ଧ"]="dh", ["ନ"]="n", ["ପ"]="p", ["ଫ"]="ph", ["ବ"]="b", ["ଭ"]="bh", ["ମ"]="m", ["ଯ"]="j", ["ୟ"]="y", ["ର"]="r", ["ଲ"]="l", ["ଳ"]="ḷ", ["ଵ"]="v", ["ୱ"]="w", ["ଶ"]="ś", ["ଷ"]="ṣ", ["ସ"]="s", ["ହ"]="h", --nuktas ["କ଼"]="q", ["ଖ଼"]="x", ["ଗ଼"]="ġ", ["ଜ଼"]="z", ["ଝ଼"]="ź", ["ଡ଼"]="ṛ", ["ଢ଼"]="ṛh", ["ଫ଼"]="f", }

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

local tt = { -- vowels ["ଅ"]="a", ["ଆ"]="ā", ["ଇ"]="i", ["ଈ"]="ī", ["ଉ"]="u", ["ଊ"]="ū", ["ଋ"]="ru", ["ୠ"]="rū", ["ଌ"]="lu", ["ୡ"]="lū", ["ଏ"]="e", ["ଐ"]="ai", ["ଓ"]="o", ["ଔ"]="au", -- 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 not consonants[c] then				return c			end			if d == "" then				return consonants[c] .. "a"			else				return consonants[c] .. diacritics[d]			end		end)

text = mw.ustring.gsub(text, ".", tt) -- anusvara text = mw.ustring.gsub(text, 'ṁ([kqxgġṅ])', 'ṅ%1') text = mw.ustring.gsub(text, 'ṁ([cjźñ])', 'ñ%1') text = mw.ustring.gsub(text, 'ṁ([ṭḍṇ])', 'ṇ%1') text = mw.ustring.gsub(text, 'ṁ([tdnz])', 'n%1') text = mw.ustring.gsub(text, 'ṁ([pfbm])', 'm%1') return text end return export