มอดูล:Mtei-translit

จาก วิกิพจนานุกรม พจนานุกรมเสรี
local export = {}
local gsub = mw.ustring.gsub
local u = mw.ustring.char

local tt = {
	-- consonants
	['ꯀ'] = 'ก', ['ꯈ'] = 'ข', ['ꯒ'] = 'ค', ['ꯘ'] = 'ฆ', ['ꯉ'] = 'ง',
	['ꯆ'] = 'จ', ['ꫢ'] = 'ฉ', ['ꯖ'] = 'ช', ['ꯓ'] = 'ฌ', ['ꫣ'] = 'ญ',
	['ꫤ'] = 'ฏ', ['ꫥ'] = 'ฐ', ['ꫦ'] = 'ฑ', ['ꫧ'] = 'ฒ', ['ꫨ'] = 'ณ',
	['ꯇ'] = 'ต', ['ꯊ'] = 'ถ', ['ꯗ'] = 'ท', ['ꯙ'] = 'ธ', ['ꯅ'] = 'น',
	['ꯄ'] = 'ป', ['ꯐ'] = 'ผ', ['ꯕ'] = 'พ', ['ꯚ'] = 'ภ', ['ꯃ'] = 'ม',
	['ꯌ'] = 'ย', ['ꯔ'] = 'ร', ['ꯂ'] = 'ล', ['ꯋ'] = 'ว',
	['ꫩ'] = 'ศ', ['ꫪ'] = 'ษ', ['ꯁ'] = 'ส', ['ꯍ'] = 'ห',
	-- finals
	['ꯛ'] = 'กฺ', ['ꯜ'] = 'ลฺ', ['ꯝ'] = 'มฺ', ['ꯞ'] = 'ปฺ',
	['ꯟ'] = 'นฺ', ['ꯠ'] = 'ตฺ', ['ꯡ'] = 'งฺ', ['ꯢ'] = 'ยฺ',
	-- independent vowels
	['ꯑ'] = 'อ', ['ꯏ'] = 'อิ', ['ꯎ'] = 'อุ', ['ꫠ'] = 'เอ', ['ꫡ'] = 'โอ',
	-- dependent vowels and diacritics (excluding front type)
	['ꯥ'] = 'า', ['ꯤ'] = 'ิ', ['ꫫ'] = 'ี', ['ꯨ'] = 'ุ', ['ꫬ'] = 'ู',
	['ꯪ'] = 'ํ', ['ꫵ'] = 'ห์', ['꫶'] = 'ฺ',
	-- marks
	['꯫'] = '๚', ['꫰'] = 'ฯ', ['꫱'] = '?', ['ꫳ'] = 'ๆ็', ['ꫴ'] = 'ๆ', ['꯭'] = '๎',
	-- numerals
	["꯰"] = "0", ["꯱"] = "1", ["꯲"] = "2", ["꯳"] = "3", ["꯴"] = "4",
	["꯵"] = "5", ["꯶"] = "6", ["꯷"] = "7", ["꯸"] = "8", ["꯹"] = "9",
	-- zero-width space (display it if it hides in a word)
	[u(0x200B)] = "‼",
	-- zero-width non-joiner and joiner (display it if it hides in a word)
	[u(0x200C)] = "₋",
	[u(0x200D)] = "₊",
}

local adjust1 = {
	-- dependent vowels (front type)
	['ꯦ'] = 'เ%1', ['ꯩ'] = 'ไ%1', ['ꫭ'] = '%1ายฺ',
	['ꯣ'] = 'โ%1', ['ꯧ'] = 'เ%1า', ['ꫮ'] = 'เ%1า', ['ꫯ'] = '%1าวฺ',
}

function export.tr(text, lang, sc, debug_mode)

	if type(text) == 'table' then -- called directly from a template
		text = text.args[1]
	end

	text = gsub(text, '.', tt)

	for k, v in pairs(adjust1) do
		text = gsub(text, '(.)'..k, v)
	end

	return text

end

return export