Module:Mni-translit

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

local tt = { -- consonants ['ꯀ'] = 'kᵃ', ['ꯈ'] = 'khᵃ', ['ꯒ'] = 'gᵃ', ['ꯘ'] = 'ghᵃ', ['ꯉ'] = 'ngᵃ', ['ꯆ'] = 'chᵃ', ['ꫢ'] = 'chhᵃ', ['ꯖ'] = 'jᵃ', ['ꯓ'] = 'jhᵃ', ['ꫣ'] = 'nyᵃ', ['ꫤ'] = 'ttᵃ', ['ꫥ'] = 'tthᵃ', ['ꫦ'] = 'ddᵃ', ['ꫧ'] = 'ddhᵃ', ['ꫨ'] = 'nnᵃ', ['ꯇ'] = 'tᵃ', ['ꯊ'] = 'thᵃ', ['ꯗ'] = 'dᵃ', ['ꯙ'] = 'dhᵃ', ['ꯅ'] = 'nᵃ', ['ꯄ'] = 'pᵃ', ['ꯐ'] = 'phᵃ', ['ꯕ'] = 'bᵃ', ['ꯚ'] = 'bhᵃ', ['ꯃ'] = 'mᵃ', ['ꯌ'] = 'yᵃ', ['ꯔ'] = 'rᵃ', ['ꯂ'] = 'lᵃ', ['ꯋ'] = 'wᵃ', ['ꫩ'] = 'shᵃ', ['ꫪ'] = 'ssᵃ', ['ꯁ'] = 'sᵃ', ['ꯍ'] = 'hᵃ', -- finals ['ꯛ'] = 'k', ['ꯜ'] = 'l', ['ꯝ'] = 'm', ['ꯞ'] = 'p', ['ꯟ'] = 'n', ['ꯠ'] = 't', ['ꯡ'] = 'ng', ['ꯢ'] = 'i', --ending -- independent vowels ['ꯑ'] = 'ʼᵃ', ['ꯏ'] = 'ʼi', ['ꯎ'] = 'u', ['ꫠ'] = 'ʼe', ['ꫡ'] = 'ʼo', -- dependent vowels and diacritics ['ꯥ'] = 'aa', ['ꯤ'] = 'ee', ['ꫫ'] = 'ī', ['ꯨ'] = 'oo', ['ꫬ'] = 'ū', ['ꯦ'] = 'e', ['ꯩ'] = 'ei', ['ꫭ'] = 'āi', ['ꯣ'] = 'o', ['ꯧ'] = 'ou', ['ꫮ'] = 'au', ['ꫯ'] = 'āu', ['ꯪ'] = 'ng', ['ꫵ'] = 'ḥ', ['꫶'] = '¤', -- 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)] = "₊", }

function export.tr(text, lang, sc)

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

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

text = gsub(text, 'ᵃ([aeiouāīū])', '%1') text = gsub(text, 'ᵃ¤', '') text = gsub(text, 'ᵃ͟', '͟') text = gsub(text, 'ᵃ', 'a') text = gsub(text, '¤', '') return text

end

return export