Module:tcy-Tutg-translit

From Linguifex
Revision as of 12:46, 21 April 2026 by Sware (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Documentation for this module may be created at Module:tcy-Tutg-translit/doc

local export = {}
local gsub = mw.ustring.gsub
 
local consonants = {
	['𑎒'] = 'k', ['𑎓'] = 'kh', ['𑎔'] = 'g', ['𑎕'] = 'gh', ['𑎖']='ṅ',
	['𑎗'] = 'c', ['𑎘'] = 'ch', ['𑎙'] = 'j', ['𑎚'] = 'jh', ['𑎛']='ñ',
	['𑎜'] = 'ṭ', ['𑎝'] = 'ṭh', ['𑎞'] = 'ḍ', ['𑎟'] = 'ḍh', ['𑎠']='ṇ',
	['𑎡'] = 't',  ['𑎢'] = 'th', ['𑎣'] = 'd', ['𑎤'] = 'dh', ['𑎥']='n',
	['𑎦'] = 'p', ['𑎧'] = 'ph', ['𑎨'] = 'b', ['𑎩'] = 'bh' , ['𑎪']='m',
	['𑎫'] = 'y', ['𑎬'] = 'r', ['𑏑'] = 'r', ['𑎭'] = 'l',  ['𑎳'] = 'ḷ', ['𑎮'] = 'v',  ['𑎯'] = 'ś',  ['𑎰'] = 'ṣ', ['𑎱'] = 's', ['𑎲'] = 'h', 
}

local diacritics = {
	['𑎸'] = 'ā', ['𑎹'] = 'i',  ['𑎺'] =  'ī',['𑎻'] = 'u', ['𑎼'] = 'ū',
	['𑎽'] = 'r̥', ['𑎾'] ='r̥̄', ['𑎿'] ='l̥', ['𑏀'] = 'l̥̄', ['𑏂'] = 'ē', ['𑏅'] = 'ai', ['𑏇'] = 'ō', ['𑏈'] = 'au', ['𑏎'] = '', ['𑏏'] = '',
}
local tt = {
	-- vowels
	['𑎀'] = 'a', ['𑎁'] ='ā' , ['𑎂'] ='i' , ['𑎃'] = 'ī' , ['𑎄'] = 'u' , ['𑎅'] = 'ū' , 
	['𑎆'] = 'r̥', ['𑎇'] ='r̥̄', ['𑎈'] ='l̥', ['𑎉'] = 'l̥̄', ['𑎋'] = 'ē', ['𑎎'] ='ai', ['𑎐'] ='ō', ['𑎑'] = 'au',
	-- other symbols
	['𑎷'] = 'ṁ',-- avagraha
	['𑏌'] = 'ṁ',-- anusvara
	['𑏍'] = 'ḥ' ,  -- visarga
	['𑏗'] = 'ōm' , -- om
}

-- translit any words or phrases
function export.tr(text, lang, sc)
	local VIRAMA = '𑏎'
	
	-- final virama rules
	if lang == "tcy" then
		text = gsub(text, VIRAMA .. "([%,%.%!%?%:%;]?)$", VIRAMA .. "ŭ%1")
		text = gsub(text, VIRAMA .. "([%,%.%!%?%:%;]?) ", VIRAMA .. "ŭ%1 ")
	end
	text = gsub(
		text,
		'([𑎒𑎓𑎔𑎕𑎖𑎗𑎘𑎙𑎚𑎛𑎜𑎝𑎞𑎟𑎠𑎡𑎢𑎣𑎤𑎥𑎦𑎧𑎨𑎩𑎪𑎫𑎬𑎭𑎮𑎯𑎰𑎱𑎲𑎳𑎴])'..
		'([𑎸𑎹𑎺𑎻𑎼𑎽𑎾𑎿𑏀𑏅𑏅𑎸𑏈𑏎𑏏]?)',
		function(c, d)
			if d == "" then        
				return consonants[c] ..'a'
			else
				return consonants[c] .. diacritics[d]
			end
		end)
	
	text = gsub(text,'.', tt)
	
	-- anusvara
	text = gsub(text,'ṁ([kgṅ])','ṅ%1')
	text = gsub(text,'ṁ([cjñ])','ñ%1')
	text = gsub(text,'ṁ([ṭḍṇ])','ṇ%1')
	text = gsub(text,'ṁ([tdn])','n%1')
	text = gsub(text,'ṁ([pbm])','m%1')
	
	return text
end
 
return export