Module:sa-utilities/translit/SLP1-to-IAST

From Wiktionary, the free dictionary
Jump to navigation Jump to search
This module needs documentation.
Please document this module by describing its purpose and usage on the documentation page.

local export = {}

local U = require("Module:string/char")

local acute = U(0x301) -- combining acute
local grave = U(0x300) -- combining grave

local tt = {
	[1] = {
		-- consonants
		['K'] = 'kh', ['G'] = 'gh', ['N'] = 'ṅ',
		['C'] = 'ch', ['J'] = 'jh', ['Y'] = 'ñ',
		['w'] = 'ṭ', ['W'] = 'ṭh', ['q'] = 'ḍ', ['Q'] = 'ḍh', ['R'] = 'ṇ',
		['T'] = 'th', ['D'] = 'dh', ['P'] = 'ph', ['B'] = 'bh',
		['L'] = 'ḷ', ['S'] = 'ś', ['z'] = 'ṣ',
		
		-- vowels
		['A'] = 'ā',
		['I'] = 'ī',
		['U'] = 'ū',
		['f'] = 'ṛ', ['F'] = 'ṝ',
		['x'] = 'ḷ', ['X'] = 'ḹ',
		['E'] = 'ai',
		['O'] = 'au',
		
		-- chandrabindu
		['~'] = 'm̐', --until a better method is found
		
		-- anusvara
		['M'] = 'ṃ', --until a better method is found
		
		-- visarga
		['H'] = 'ḥ',
		
		-- avagraha
		["'"] = '’',
		
		--Vedic extensions
		['/'] = acute,
		['\\'] = grave,
	},
	[2] = {
		--Vedic extensions
		['Z'] = 'x',
		['V'] = 'f',
	},
}

function export.tr(text, lang, sc)
	
	text = mw.ustring.gsub(text, '.', tt[1])
	text = mw.ustring.gsub(text, '.', tt[2])
	
	return mw.ustring.toNFC(text)
end

return export