Jump to content

မေႃႇၵျူး:or-translit

လုၵ်ႉတီႈ ဝိၵ်ႇသျိၼ်ႇၼရီႇ မႃး

This module will transliterate ၽႃႇသႃႇOdia text. It is also used to transliterate Sambalpuri.

The module should preferably not be called directly from templates or other modules. To use it from a template, use Lua error in မေႃႇၵျူး:parameters at line 600: attempt to index local 'param' (a boolean value).. Within a module, use Module:languages#Language:transliterate.

For testcases, see Module:or-translit/testcases.

လၢႆးႁဵတ်းၵၢၼ်

[မႄးထတ်း]
Lua error in မေႃႇၵျူး:parameters at line 600: attempt to index local 'param' (a boolean value).
Transliterates a given piece of Lua error in မေႃႇၵျူး:parameters at line 600: attempt to index local 'param' (a boolean value). written in the script specified by the code Lua error in မေႃႇၵျူး:parameters at line 600: attempt to index local 'param' (a boolean value)., and language specified by the code Lua error in မေႃႇၵျူး:parameters at line 600: attempt to index local 'param' (a boolean value).. When the transliteration fails, returns Lua error in မေႃႇၵျူး:parameters at line 600: attempt to index local 'param' (a boolean value)..

Lua error in မေႃႇၵျူး:module_categorization at line 173: This template should only be used in the Module namespace, not on page 'မေႃႇၵျူး:or-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 = {
	["ା"]="a", ["ି"]="i", ["ୀ"]="i", ["ୁ"]="u", ["ୂ"]="u", ["ୃ"]="ru", ["ୄ"]="ru", 
	["ୢ"]="lu", ["ୣ"]="lu", ["େ"]="e", ["ୈ"]="ôi", ["ୖ"]="ôi", ["ୋ"]="o", ["ୌ"]="ôu", ["ୗ"]="ôu",
	["୍"]="",
}

local tt = {
	-- vowels
	["ଅ"]="ô", ["ଆ"]="a", ["ଇ"]="i", ["ଈ"]="i", ["ଉ"]="u", ["ଊ"]="u", ["ଋ"]="ru", ["ୠ"]="ru",
	["ଌ"]="lu", ["ୡ"]="lu", ["ଏ"]="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 not consonants[c] then
				return c
			end
			if d == "" then
				return consonants[c] .. "ô"
			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