မဝ်ဂျူ:Dogr-translit

နူ ဝိက်ရှေန်နရဳ

Documentation for this module may be created at မဝ်ဂျူ:Dogr-translit/doc

local export = {}
 
local consonants = {
	['𑠊']='k', ['𑠋']='kh', ['𑠌']='g', ['𑠍']='gh', ['𑠎']='ṅ', 
	['𑠏']='c', ['𑠐']='ch', ['𑠑']='j', ['𑠒']='jh', ['𑠓']='ñ', 
	['𑠔']='ṭ', ['𑠕']='ṭh', ['𑠖']='ḍ',['𑠗']='ḍh', ['𑠘']='ṇ', 
	['𑠙']='t', ['𑠚']='th', ['𑠛']='d', ['𑠜']='dh', ['𑠝']='n', 
	['𑠞']='p', ['𑠟']='ph', ['𑠠']='b', ['𑠡']='bh', ['𑠢']='m', 
	['𑠣']='y', ['𑠤']='r', ['𑠥']='l', ['𑠦']='v',
	['𑠧']='ś', ['𑠨']='ṣ', ['𑠩']='s',
	['𑠪']='h', ['𑠫']='ṛ',
	['क'] = 'k', ['ख'] = 'kh', ['ग'] = 'g', ['घ'] = 'gh', ['ङ'] = 'ṅ', 
	['च'] = 'c', ['छ'] = 'ch', ['ज'] = 'j', ['झ'] = 'jh', ['ञ'] = 'ñ', 
	['ट'] = 'ṭ', ['ठ'] = 'ṭh', ['ड'] = 'ḍ', ['ढ'] = 'ḍh', ['ण'] = 'ṇ',
	['त'] = 't', ['थ'] = 'th', ['द'] = 'd', ['ध'] = 'dh', ['न'] = 'n',
	['प'] = 'p', ['फ'] = 'ph', ['ब'] = 'b', ['भ'] = 'bh', ['म'] = 'm', 
	['य'] = 'y', ['र'] = 'r', ['ल'] = 'l', ['व'] = 'v', ['ळ'] = 'ḷ',
	['श'] = 'ś', ['ष'] = 'ṣ', ['स'] = 's', ['ह'] = 'h',
	['क़'] = 'q', ['ख़'] = 'x', ['ग़'] = 'ġ', ['ऴ'] = 'ḻ',
	['ज़'] = 'z', ['ष़'] = 'ḻ', ['झ़'] = 'ž', ['ड़'] = 'ṛ', ['ढ़'] = 'ṛh',
	['फ़'] = 'f', ['थ़'] = 'θ', ['ऩ'] = 'ṉ', ['ऱ'] = 'ṟ',
	-- ['ज्ञ'] = 'gy',


--consonants with nukta
	["𑠊𑠺"] = "q",
	["𑠋𑠺"] = "x",
	["𑠌𑠺"] = "ġ",
	["𑠑𑠺"] = "z",
	["𑠟𑠺"] = "f",
	["𑠗𑠺"] = "ṛh",
	["𑠖𑠺"] = "ṛ",
	['ॐ'] = 'om',
	['ँ'] = '̃',
	['ं'] = '̃',
	['ः'] = 'ḥ',
	['्'] = '',
}

local diacritics = {
	['𑠬']= 'ā', ['𑠭']='i', ['𑠮']='ī', ['𑠯']='u', ['𑠰']='ū',
	['𑠱']='r̥', ['𑠲']='r̥̄',  
	['𑠳']='e', ['𑠴']='ai', ['𑠵']='o', ['𑠶']='au', ['𑠹']='', 
}

local nonconsonants = {
	-- vowels
	['𑠀']='a', ['𑠁']='ā', ['𑠂']='i', ['𑠃']='ī', ['𑠄']='u', ['𑠅']='ū', 
	['𑠆']='e', ['𑠇']='ai', ['𑠈']='o',['𑠉']='au',
	['ि'] = 'i', ['ु'] = 'u', ['े'] = 'e', ['ो'] = 'o',
    ['ॊ'] = 'ǒ', ['ॆ'] = 'ě',
	['ा'] = 'ā', ['ी'] = 'ī', ['ू'] = 'ū', 
	['ृ'] = 'ŕ',
	['ै'] = 'ai', ['ौ'] = 'au',
	['ॉ'] = 'ŏ',
	['ॅ'] = 'ĕ',
	['अ'] = 'a', ['इ'] = 'i', ['उ'] = 'u', ['ए'] = 'e', ['ओ'] = 'o',
	['आ'] = 'ā', ['ई'] = 'ī', ['ऊ'] = 'ū', ['ऎ'] = 'ě', ['ऒ'] = 'ǒ',
	['ऋ'] = 'ŕ', 
	['ऐ'] = 'ai', ['औ'] = 'au', 
	['ऑ'] = 'ŏ',
	['ऍ'] = 'ĕ',
	-- other symbols
	['𑠷']='ṁ', -- anusvara
	['𑠸']='ḥ', -- visarga
	['𑠻']='.', -- abbreviation sign
	['।'] = '.', -- danda
	['॥'] = '.', -- double danda
	-- digits
	['०'] = '0', ['१'] = '1', ['२'] = '2', ['३'] = '3', ['४'] = '4',
	['५'] = '5', ['६'] = '6', ['७'] = '7', ['८'] = '8', ['९'] = '9',
}

local nasal_assim = {
	["[kg]h?"] = "ṅ",
	["[cj]h?"] = "ñ",
	["[ṭḍ]h?"] = "ṇ",
	["[td]h?"] = "n",
	["[pb]h?"] = "m",
	["n"] = "n",
	["m"] = "m",
    ["s"] = "n",
}

-- translit any words or phrases
function export.tr(text, lang, sc)
	local nukta = "([𑠊𑠋𑠌𑠑𑠟]𑠺)"
	text = mw.ustring.gsub(
		text,
		'([𑠊-𑠫][𑠺]?)'..
		'([𑠬-𑠶𑠹]?)',
		function(c, d)
			-- mw.log('match', c, d)
			c = consonants[c] or c
			if d == "" then        
				return c .. 'a'
			else
				return c .. (diacritics[d] or d)
			end
		end)
	
	text = mw.ustring.gsub(text,nukta,consonants)
	text = mw.ustring.gsub(text, '.', nonconsonants)
	for key,val in pairs(nasal_assim) do
		text = mw.ustring.gsub(text,"ṁ("..key..")",val.."%1")
	end
	text = mw.ustring.gsub(text,"([aiueēoāīū])ṁ ", "%1̃ ")
	text = mw.ustring.gsub(text,"(.?)ṁ", "%1̃")
	text = mw.ustring.gsub(text, 'a([iu])̃', 'a͠%1')

	return text
end
 
return export