Модул:Tale-translit
Документацију овог модула можете да направите на страници Модул:Tale-translit/док
local export = {}
local gsub = mw.ustring.gsub
local u = mw.ustring.char
-- pattern ([ᥐ-ᥢ])([ᥣ-ᥬ]?)([ᥐᥒᥖᥙᥛᥝᥢᥭ{m}]?)([ᥰ-ᥴ{dia-tones}]?)
local tt = {
-- consonants
['ᥐ'] = 'k', ['ᥑ'] = 'x', ['ᥒ'] = 'ng', ['ᥓ'] = 'ts', ['ᥔ'] = 's', ['ᥕ'] = 'y',
['ᥖ'] = 't', ['ᥗ'] = 'th', ['ᥘ'] = 'l', ['ᥙ'] = 'p', ['ᥚ'] = 'ph', ['ᥛ'] = 'm',
['ᥜ'] = 'f', ['ᥝ'] = 'v', ['ᥞ'] = 'h', ['ᥟ'] = '’', ['ᥠ'] = 'kh', ['ᥡ'] = 'tsh', ['ᥢ'] = 'n',
-- vowels
['ᥣ'] = 'aa', ['ᥤ'] = 'i', ['ᥥ'] = 'e', ['ᥦ'] = 'ae', ['ᥧ'] = 'u',
['ᥨ'] = 'o', ['ᥩ'] = 'oa', ['ᥪ'] = 'ue', ['ᥫ'] = 'oe', ['ᥬ'] = 'aue',
['ᥭ'] = 'y', [u(0x030A)] = 'm', [u(0x02DA)] = 'm',
-- tones (different order from Unicode) http://www.seasite.niu.edu/tai/TaiDehong/index.htm
['ᥰ'] = '<sup>2</sup>', [u(0x0308)] = '<sup>2</sup>', [u(0x00A8)] = '<sup>2</sup>',
['ᥱ'] = '<sup>3</sup>', [u(0x030C)] = '<sup>3</sup>', [u(0x02C7)] = '<sup>3</sup>',
['ᥲ'] = '<sup>4</sup>', [u(0x0300)] = '<sup>4</sup>', [u(0x0060)] = '<sup>4</sup>', [u(0x02CB)] = '<sup>4</sup>',
['ᥳ'] = '<sup>5</sup>', [u(0x0307)] = '<sup>5</sup>', [u(0x02D9)] = '<sup>5</sup>',
['ᥴ'] = '<sup>1</sup>', [u(0x0301)] = '<sup>1</sup>', [u(0x00B4)] = '<sup>1</sup>', [u(0x02CA)] = '<sup>1</sup>',
-- tone 6 unmarked
}
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, '([ᥐ-ᥢ])([ᥐᥒᥖᥙᥛᥝᥢᥭ'..u(0x030A)..u(0x02DA)..'])', '%1a%2')
text = gsub(text, '.', tt)
text = gsub(text, '([aeiou])v', '%1w')
return text
end
return export