Module:Mymr-translit
ការរចនា
Documentation for this module may be created at Module:Mymr-translit/doc
local export = {}
local gsub = mw.ustring.gsub
local u = mw.ustring.char
local letter_with_mark = "(.["..u(0x0300).."-"..u(0x036F).."]?)"
local tt = {
-- consonants
["က"] = "ក", ["ခ"] = "ខ", ["ဂ"] = "គ", ["ဃ"] = "ឃ", ["င"] = "ង",
["စ"] = "ច", ["ဆ"] = "ឆ", ["ဇ"] = "ជ", ["ဈ"] = "ឈ", ["ဉ"] = "ញ", ["ည"] = "ញ្ញ",
["ဋ"] = "ដ", ["ဌ"] = "ឋ", ["ဍ"] = "ឌ", ["ဎ"] = "ឍ", ["ဏ"] = "ណ",
["တ"] = "ត", ["ထ"] = "ថ", ["ဒ"] = "ទ", ["ဓ"] = "ធ", ["န"] = "ន",
["ပ"] = "ប", ["ဖ"] = "ផ", ["ဗ"] = "ព", ["ဘ"] = "ភ", ["မ"] = "ម",
["ယ"] = "យ", ["ရ"] = "រ", ["လ"] = "ល", ["ဝ"] = "វ",
["သ"] = "ស", ["ဟ"] = "ហ", ["ဠ"] = "ឡ", ["အ"] = "អ",
["ဢ"] = "ឣ", ["ဿ"] = "ស្ស", ["ၐ"] = "ឝ", ["ၑ"] = "ឞ",
["ၚ"] = "ង", ["ၛ"] = "ឈ", ["ၜ"] = "ប", ["ၝ"] = "ម្ប", ["ၡ"] = "ឝ",
["ၥ"] = "ថ", ["ၦ"] = "ប្វ", ["ၮ"] = "ណ្ណ", ["ၯ"] = "យ្វ", ["ၰ"] = "ឃ្វ",
["ၵ"] = "ក", ["ၶ"] = "ខ", ["ၷ"] = "គ", ["ၸ"] = "ច", ["ၹ"] = "ហ្ស",
["ၺ"] = "ញ", ["ၻ"] = "ទ", ["ၼ"] = "ន", ["ၽ"] = "ផ",
["ၾ"] = "ហ្វ", ["ၿ"] = "ព", ["ႀ"] = "ថ", ["ႁ"] = "ហ",
["ႎ"] = "ហ្វ",
["ꩠ"] = "ឃ", ["ꩡ"] = "ច", ["ꩢ"] = "ឆ", ["ꩣ"] = "ជ", ["ꩤ"] = "ឈ", ["ꩥ"] = "ញ",
["ꩦ"] = "ដ", ["ꩧ"] = "ឋ", ["ꩨ"] = "ឌ", ["ꩩ"] = "ឍ", ["ꩪ"] = "ធ", ["ꩫ"] = "ន",
["ꩬ"] = "ស", ["ꩭ"] = "ហ", ["ꩮ"] = "ហ្ហ", ["ꩯ"] = "ហ្វ",
["ꩱ"] = "គ", ["ꩲ"] = "ហ្ស", ["ꩳ"] = "រ", ["ꩴ"] = "�", ["ꩵ"] = "�", ["ꩶ"] = "�",
["ꩺ"] = "រ",
["ꩾ"] = "ឆ", ["ꩿ"] = "ឝ",
["ꧠ"] = "ខ", ["ꧡ"] = "ឆ", ["ꧢ"] = "ឈ", ["ꧣ"] = "ណ", ["ꧤ"] = "ភ",
["ꧧ"] = "ញ", ["ꧨ"] = "ហ្វ", ["ꧩ"] = "គ", ["ꧪ"] = "ឃ",
["ꧫ"] = "ជ", ["ꧬ"] = "ឈ", ["ꧭ"] = "ឌ", ["ꧮ"] = "ឍ", ["ꧯ"] = "ណ",
["ꧺ"] = "ឡ", ["ꧻ"] = "ទ", ["ꧼ"] = "ធ", ["ꧽ"] = "ព", ["ꧾ"] = "ភ",
-- independent vowels
["ဣ"] = "ឥ", ["ဤ"] = "ឦ", ["ဥ"] = "ឧ", ["ဦ"] = "ឩ",
["ဧ"] = "ឯ", ["ဨ"] = "ឯ", ["ဩ"] = "ឱ", ["អោៈ"] = "เอาะ",
["ၒ"] = "ឫ", ["ၓ"] = "ឬ", ["ၔ"] = "ឭ", ["ၕ"] = "ឮ",
-- dependent vowels and diacritics (excluding front type)
["ါ"] = "ា", ["ာ"] = "ា", ["ိ"] = "ិ", ["ီ"] = "ឹ", ["ု"] = "ុ", ["ူ"] = "ូ",
["ဳ"] = "ី", ["ံ"] = "ំ", ["့"] = "̥", ["း"] = "ៈ", ["္"] = "្", ["်"] = "៑",
["ျ"] = "្យ", ["ြ"] = "្រ", ["ွ"] = "្វ", --["ှ"] = "្ហ",
["ၖ"] = "្ឫ", ["ၗ"] = "្ឬ", ["ၘ"] = "្ឭ", ["ၙ"] = "្ឮ",
["ၞ"] = "្ន", ["ၟ"] = "្ម", ["ၠ"] = "្ល",
["ၢ"] = "ា", ["ၣ"] = "�", ["ၤ"] = "�",
["ၧ"] = "�", ["ၨ"] = "ឹ", ["ၩ"] = "¹", ["ၪ"] = "²", ["ၫ"] = "³", ["ၬ"] = "⁴", ["ၭ"] = "⁵",
["ၱ"] = "ិ", ["ၳ"] = "ុ",
["ႂ"] = "្វ", ["ႃ"] = "ា", ["ႆ"] = "យ",
["ႇ"] = "²", ["ႈ"] = "³", ["ႉ"] = "⁵", ["ႊ"] = "⁶", ["ႋ"] = "²", ["ႌ"] = "³", ["ႍ"] = "̲",
["ႏ"] = "⁵",
["ႚ"] = "¹", ["ႛ"] = "³", ["ႜ"] = "ៈ", ["ႝ"] = "ា",
["ꩻ"] = "¹", ["ꩼ"] = "²", ["ꩽ"] = "⁵",
["ꧥ"] = "�",
-- marks
["၊"] = ",", ["။"] = "។",
["၌"] = "@", ["၍"] = ";", ["၎"] = "�", ["၏"] = "។",
["႟"] = "!", ["ꩰ"] = "ៗ", ["꩷"] = "!", ["ꧦ"] = "ៗ",
-- numerals
["၀"] = "០", ["၁"] = "១", ["၂"] = "២", ["၃"] = "៣", ["၄"] = "៤",
["၅"] = "៥", ["၆"] = "៦", ["၇"] = "៧", ["၈"] = "៨", ["၉"] = "៩",
["႐"] = "0", ["႑"] = "1", ["႒"] = "2", ["႓"] = "3", ["႔"] = "4",
["႕"] = "5", ["႖"] = "6", ["႗"] = "7", ["႘"] = "8", ["႙"] = "9",
["႞"] = "1",
["꩸"] = "១", ["꩹"] = "២",
["꧰"] = "០", ["꧱"] = "១", ["꧲"] = "២", ["꧳"] = "៣", ["꧴"] = "៤",
["꧵"] = "៥", ["꧶"] = "៦", ["꧷"] = "៧", ["꧸"] = "៨", ["꧹"] = "៩",
-- zero-width space (display it if it hides in a word)
[u(0x200B)] = "‼",
}
local adjust1 = {
-- dependent vowels (front type)
["ေ"] = "េ", ["ဲ"] = "ែ", ["ဴ"] = "ោ", ["ဵ"] = "េ",
["ၲ"] = "េ%1ុ", ["ၴ"] = "េ", ["ႄ"] = "េ", ["ႅ"] = "េ",
-- other
["ှ"] = "ហ្%1",
}
function export.tr(text, lang, sc, debug_mode)
if type(text) == "table" then -- called directly from a template
text = text.args[1]
end
if lang == "my" then
text = gsub(text, "ရ([ျြွ]?)ှ", "ၡ%1") -- ហ្រ -> ឝ
end
text = gsub(text, "(့)([ါ-ှ])", "%2%1") -- swap tone-3 mark and vowel
text = gsub(text, ".", tt)
for k, v in pairs(adjust1) do
text = gsub(text, letter_with_mark..k, v)
end
end
return export