Jump to content

Module:my-translit

From Wiktionary, the free dictionary

This module will transliterate Burmese language text per the MLCTS scheme per WT:MY TR. The module should preferably not be called directly from templates or other modules. To use it from a template, use {{xlit}}. Within a module, use Module:languages#Language:transliterate.

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

Functions

tr(text, lang, sc)
Transliterates a given piece of text written in the script specified by the code sc, and language specified by the code lang.
When the transliteration fails, returns nil.

local export = {}
local gsub = mw.ustring.gsub

local symbols = {
	["၀"] = "0", ["၁"] = "1", ["၂"] = "2", ["၃"] = "3", ["၄"] = "4", 
	["၅"] = "5", ["၆"] = "6", ["၇"] = "7", ["၈"] = "8", ["၉"] = "9", 
	["၊"] = "|", ["။"] = "||"
}

function export.tr(text, lang, sc)
	local m_pron = require("Module:my-pron").get_romanisation
	text = gsub(text, ".", symbols)
	for word in mw.ustring.gmatch(text, "[က-႟ꩠ-ꩻ]+") do
		local success, translit = pcall(m_pron, word, nil, { 2, ["type"] = "orthographic", ["name"] = "MLCTS" }, 2, "translit_module")
		if success then
			text = gsub(text, word, translit, 1)
		else
			return nil
		end
	end
	return text
end

return export