มอดูล:pi-alt
หน้าตา
- This มอดูล lacks a documentation subpage. Please create it.
- Useful links: subpage list • links • transclusions • testcases • sandbox
-- For Lao script, see https://www.unicode.org/charts/PDF/U0E80.pdf (Unicode 12.0+)
local export = {}
local gsub = mw.ustring.gsub
local match = mw.ustring.match
local sub = mw.ustring.sub
local u = mw.ustring.char
local links = require("Module:links")
local labels = require("Module:labels")
local scripts = require("Module:scripts")
local Array = require("Module:array")
local lang = require("Module:languages").getByCode("pi")
local PAGENAME = mw.title.getCurrentTitle().text
local currentScript = lang:findBestScript(PAGENAME)
-- ordered by [[Module:languages/data2]]
local sc_table = {"Thai", "Brah", "Deva", "Beng", "Sinh", "Mymr", "Lana", "Laoo", "Khmr", "Latn"}
-- whatever ordering
local c = {
["Deva"] = {
["ก"] = "क", ["ข"] = "ख", ["ค"] = "ग", ["ฆ"] = "घ", ["ง"] = "ङ",
["จ"] = "च", ["ฉ"] = "छ", ["ช"] = "ज", ["ฌ"] = "झ", ["ญ"] = "ञ",
["ฏ"] = "ट", ["ฐ"] = "ठ", ["ฑ"] = "ड", ["ฒ"] = "ढ", ["ณ"] = "ण",
["ต"] = "त", ["ถ"] = "थ", ["ท"] = "द", ["ธ"] = "ध", ["น"] = "न",
["ป"] = "प", ["ผ"] = "फ", ["พ"] = "ब", ["ภ"] = "भ", ["ม"] = "म",
["ย"] = "य", ["ร"] = "र", ["ล"] = "ल", ["ว"] = "व", ["ส"] = "स",
["ห"] = "ह", ["ฬ"] = "ळ",
["ํ"] = "ं",
[""] = "",
},
["Beng"] = {
["ก"] = "ক", ["ข"] = "খ", ["ค"] = "গ", ["ฆ"] = "ঘ", ["ง"] = "ঙ",
["จ"] = "চ", ["ฉ"] = "ছ", ["ช"] = "জ", ["ฌ"] = "ঝ", ["ญ"] = "ঞ",
["ฏ"] = "ট", ["ฐ"] = "ঠ", ["ฑ"] = "ড", ["ฒ"] = "ঢ", ["ณ"] = "ণ",
["ต"] = "ত", ["ถ"] = "থ", ["ท"] = "দ", ["ธ"] = "ধ", ["น"] = "ন",
["ป"] = "প", ["ผ"] = "ফ", ["พ"] = "ব", ["ภ"] = "ভ", ["ม"] = "ম",
["ย"] = "য", ["ร"] = "র", ["ล"] = "ল", ["ว"] = "ৰ", ["ส"] = "স",
["ห"] = "হ", ["ฬ"] = "ল়",
["ํ"] = "ং",
[""] = "",
},
["Brah"] = {
["ก"] = "𑀓", ["ข"] = "𑀔", ["ค"] = "𑀕", ["ฆ"] = "𑀖", ["ง"] = "𑀗",
["จ"] = "𑀘", ["ฉ"] = "𑀙", ["ช"] = "𑀚", ["ฌ"] = "𑀛", ["ญ"] = "𑀜",
["ฏ"] = "𑀝", ["ฐ"] = "𑀞", ["ฑ"] = "𑀟", ["ฒ"] = "𑀠", ["ณ"] = "𑀡",
["ต"] = "𑀢", ["ถ"] = "𑀣", ["ท"] = "𑀤", ["ธ"] = "𑀥", ["น"] = "𑀦",
["ป"] = "𑀧", ["ผ"] = "𑀨", ["พ"] = "𑀩", ["ภ"] = "𑀪", ["ม"] = "𑀫",
["ย"] = "𑀬", ["ร"] = "𑀭", ["ล"] = "𑀮", ["ว"] = "𑀯", ["ส"] = "𑀲",
["ห"] = "𑀳", ["ฬ"] = "𑀴",
["ํ"] = "𑀁",
[""] = "",
},
["Khmr"] = {
["ก"] = "ក", ["ข"] = "ខ", ["ค"] = "គ", ["ฆ"] = "ឃ", ["ง"] = "ង",
["จ"] = "ច", ["ฉ"] = "ឆ", ["ช"] = "ជ", ["ฌ"] = "ឈ", ["ญ"] = "ញ",
["ฏ"] = "ដ", ["ฐ"] = "ឋ", ["ฑ"] = "ឌ", ["ฒ"] = "ឍ", ["ณ"] = "ណ",
["ต"] = "ត", ["ถ"] = "ថ", ["ท"] = "ទ", ["ธ"] = "ធ", ["น"] = "ន",
["ป"] = "ប", ["ผ"] = "ផ", ["พ"] = "ព", ["ภ"] = "ភ", ["ม"] = "ម",
["ย"] = "យ", ["ร"] = "រ", ["ล"] = "ល", ["ว"] = "វ", ["ส"] = "ស",
["ห"] = "ហ", ["ฬ"] = "ឡ",
["ํ"] = "ំ",
[""] = "",
},
["Mymr"] = {
["ก"] = "က", ["ข"] = "ခ", ["ค"] = "ဂ", ["ฆ"] = "ဃ", ["ง"] = "င",
["จ"] = "စ", ["ฉ"] = "ဆ", ["ช"] = "ဇ", ["ฌ"] = "ဈ", ["ญ"] = "ဉ",
["ฏ"] = "ဋ", ["ฐ"] = "ဌ", ["ฑ"] = "ဍ", ["ฒ"] = "ဎ", ["ณ"] = "ဏ",
["ต"] = "တ", ["ถ"] = "ထ", ["ท"] = "ဒ", ["ธ"] = "ဓ", ["น"] = "န",
["ป"] = "ပ", ["ผ"] = "ဖ", ["พ"] = "ဗ", ["ภ"] = "ဘ", ["ม"] = "မ",
["ย"] = "ယ", ["ร"] = "ရ", ["ล"] = "လ", ["ว"] = "ဝ", ["ส"] = "သ",
["ห"] = "ဟ", ["ฬ"] = "ဠ",
["ํ"] = "ံ",
[""] = "",
},
["Sinh"] = {
["ก"] = "ක", ["ข"] = "ඛ", ["ค"] = "ග", ["ฆ"] = "ඝ", ["ง"] = "ඞ",
["จ"] = "ච", ["ฉ"] = "ඡ", ["ช"] = "ජ", ["ฌ"] = "ඣ", ["ญ"] = "ඤ",
["ฏ"] = "ට", ["ฐ"] = "ඨ", ["ฑ"] = "ඩ", ["ฒ"] = "ඪ", ["ณ"] = "ණ",
["ต"] = "ත", ["ถ"] = "ථ", ["ท"] = "ද", ["ธ"] = "ධ", ["น"] = "න",
["ป"] = "ප", ["ผ"] = "ඵ", ["พ"] = "බ", ["ภ"] = "භ", ["ม"] = "ම",
["ย"] = "ය", ["ร"] = "ර", ["ล"] = "ල", ["ว"] = "ව", ["ส"] = "ස",
["ห"] = "හ", ["ฬ"] = "ළ",
["ํ"] = "ං",
[""] = "",
},
["Lana"] = {
["ก"] = "ᨠ", ["ข"] = "ᨡ", ["ค"] = "ᨣ", ["ฆ"] = "ᨥ", ["ง"] = "ᨦ",
["จ"] = "ᨧ", ["ฉ"] = "ᨨ", ["ช"] = "ᨩ", ["ฌ"] = "ᨫ", ["ญ"] = "ᨬ",
["ฏ"] = "ᨭ", ["ฐ"] = "ᨮ", ["ฑ"] = "ᨯ", ["ฒ"] = "ᨰ", ["ณ"] = "ᨱ",
["ต"] = "ᨲ", ["ถ"] = "ᨳ", ["ท"] = "ᨴ", ["ธ"] = "ᨵ", ["น"] = "ᨶ",
["ป"] = "ᨷ", ["ผ"] = "ᨹ", ["พ"] = "ᨻ", ["ภ"] = "ᨽ", ["ม"] = "ᨾ",
["ย"] = "ᨿ", ["ร"] = "ᩁ", ["ล"] = "ᩃ", ["ว"] = "ᩅ", ["ส"] = "ᩈ",
["ห"] = "ᩉ", ["ฬ"] = "ᩊ",
["ํ"] = "ᩴ",
[""] = "",
},
["Laoo"] = {
["ก"] = "ກ", ["ข"] = "ຂ", ["ค"] = "ຄ", ["ฆ"] = "ຆ", ["ง"] = "ງ",
["จ"] = "ຈ", ["ฉ"] = "ຉ", ["ช"] = "ຊ", ["ฌ"] = "ຌ", ["ญ"] = "ຎ",
["ฏ"] = "ຏ", ["ฐ"] = "ຐ", ["ฑ"] = "ຑ", ["ฒ"] = "ຒ", ["ณ"] = "ຓ",
["ต"] = "ຕ", ["ถ"] = "ຖ", ["ท"] = "ທ", ["ธ"] = "ຘ", ["น"] = "ນ",
["ป"] = "ປ", ["ผ"] = "ຜ", ["พ"] = "ພ", ["ภ"] = "ຠ", ["ม"] = "ມ",
["ย"] = "ຍ", ["ร"] = "ຣ", ["ล"] = "ລ", ["ว"] = "ວ", ["ส"] = "ສ",
["ห"] = "ຫ", ["ฬ"] = "ຬ",
["ํ"] = "ໍ",
[""] = "",
},
["Latn"] = {
["ก"] = "k", ["ข"] = "kh", ["ค"] = "g", ["ฆ"] = "gh", ["ง"] = "ṅ",
["จ"] = "c", ["ฉ"] = "ch", ["ช"] = "j", ["ฌ"] = "jh", ["ญ"] = "ñ",
["ฏ"] = "ṭ", ["ฐ"] = "ṭh", ["ฑ"] = "ḍ", ["ฒ"] = "ḍh", ["ณ"] = "ṇ",
["ต"] = "t", ["ถ"] = "th", ["ท"] = "d", ["ธ"] = "dh", ["น"] = "n",
["ป"] = "p", ["ผ"] = "ph", ["พ"] = "b", ["ภ"] = "bh", ["ม"] = "m",
["ย"] = "y", ["ร"] = "r", ["ล"] = "l", ["ว"] = "v", ["ส"] = "s",
["ห"] = "h", ["ฬ"] = "ḷ",
["ํ"] = "ṃ",
[""] = "",
},
}
local iv = {
["Deva"] = {
["อ"] = "अ", ["อา"] = "आ",
["อิ"] = "इ", ["อี"] = "ई",
["อุ"] = "उ", ["อู"] = "ऊ",
["อเ"] = "ए",
["อโ"] = "ओ",
},
["Beng"] = {
["อ"] = "অ", ["อา"] = "আ",
["อิ"] = "ই", ["อี"] = "ঈ",
["อุ"] = "উ", ["อู"] = "ঊ",
["อเ"] = "এ",
["อโ"] = "ও",
},
["Brah"] = {
["อ"] = "𑀅", ["อา"] = "𑀆",
["อิ"] = "𑀇", ["อี"] = "𑀈",
["อุ"] = "𑀉", ["อู"] = "𑀊",
["อเ"] = "𑀏",
["อโ"] = "𑀑",
},
["Khmr"] = {
["อ"] = "អ", ["อา"] = "អា",
["อิ"] = "ឥ", ["อี"] = "ឦ",
["อุ"] = "ឧ", ["อู"] = "ឨ",
["อเ"] = "ឯ",
["อโ"] = "ឲ",
},
["Mymr"] = {
["อ"] = "အ", ["อา"] = "အာ",
["อิ"] = "ဣ", ["อี"] = "ဤ",
["อุ"] = "ဥ", ["อู"] = "ဦ",
["อเ"] = "ဧ",
["อโ"] = "ဩ",
},
["Sinh"] = {
["อ"] = "අ", ["อา"] = "ආ",
["อิ"] = "ඉ", ["อี"] = "ඊ",
["อุ"] = "උ", ["อู"] = "ඌ",
["อเ"] = "එ",
["อโ"] = "ඔ",
},
["Lana"] = {
["อ"] = "ᩋ", ["อา"] = "ᩋᩣ",
["อิ"] = "ᩍ", ["อี"] = "ᩎ",
["อุ"] = "ᩏ", ["อู"] = "ᩐ",
["อเ"] = "ᩑ",
["อโ"] = "ᩋᩰ",
},
["Laoo"] = {
["อ"] = "ອ", ["อา"] = "ອາ",
["อิ"] = "ອິ", ["อี"] = "ອີ",
["อุ"] = "ອຸ", ["อู"] = "ອູ",
["อเ"] = "ອເ",
["อโ"] = "ອໂ",
},
["Latn"] = {
["อ"] = "a", ["อา"] = "ā",
["อิ"] = "i", ["อี"] = "ī",
["อุ"] = "u", ["อู"] = "ū",
["อเ"] = "e",
["อโ"] = "o",
},
}
local dv = {
["Deva"] = {
[""] = "", ["า"] = "ा",
["ิ"] = "ि", ["ี"] = "ी",
["ุ"] = "ु", ["ู"] = "ू",
["เ"] = "े",
["โ"] = "ो",
},
["Beng"] = {
[""] = "", ["า"] = "া",
["ิ"] = "ি", ["ี"] = "ী",
["ุ"] = "ু", ["ู"] = "ূ",
["เ"] = "ে",
["โ"] = "ো",
},
["Brah"] = {
[""] = "", ["า"] = "𑀸",
["ิ"] = "𑀺", ["ี"] = "𑀻",
["ุ"] = "𑀼", ["ู"] = "𑀽",
["เ"] = "𑁂",
["โ"] = "𑁄",
},
["Khmr"] = {
[""] = "", ["า"] = "ា",
["ิ"] = "ិ", ["ี"] = "ី",
["ุ"] = "ុ", ["ู"] = "ូ",
["เ"] = "េ",
["โ"] = "ោ",
},
["Mymr"] = {
[""] = "", ["า"] = "ာ",
["ิ"] = "ိ", ["ี"] = "ီ",
["ุ"] = "ု", ["ู"] = "ူ",
["เ"] = "ေ",
["โ"] = "ော",
},
["Sinh"] = {
[""] = "", ["า"] = "ා",
["ิ"] = "ි", ["ี"] = "ී",
["ุ"] = "ු", ["ู"] = "ූ",
["เ"] = "ෙ",
["โ"] = "ො",
},
["Lana"] = {
[""] = "", ["า"] = "ᩣ",
["ิ"] = "ᩥ", ["ี"] = "ᩦ",
["ุ"] = "ᩩ", ["ู"] = "ᩪ",
["เ"] = "ᩮ",
["โ"] = "ᩮᩣ",
},
["Laoo"] = {
[""] = "", ["า"] = "າ",
["ิ"] = "ິ", ["ี"] = "ີ",
["ุ"] = "ຸ", ["ู"] = "ູ",
["เ"] = "ເ",
["โ"] = "ໂ",
},
["Latn"] = {
[""] = "a", ["า"] = "ā",
["ิ"] = "i", ["ี"] = "ī",
["ุ"] = "u", ["ู"] = "ū",
["เ"] = "e",
["โ"] = "o",
},
}
local s = {
["Deva"] = {
["0"] = "०", ["1"] = "१", ["2"] = "२", ["3"] = "३", ["4"] = "४",
["5"] = "५", ["6"] = "६", ["7"] = "७", ["8"] = "८", ["9"] = "९",
["."] = "॥", [","] = "।", ["-"] = "-",
},
["Beng"] = {
["0"] = "০", ["1"] = "১", ["2"] = "২", ["3"] = "৩", ["4"] = "৪",
["5"] = "৫", ["6"] = "৬", ["7"] = "৭", ["8"] = "৮", ["9"] = "৯",
["."] = ".", [","] = ",", ["-"] = "-",
},
["Brah"] = {
["0"] = "𑁦", ["1"] = "𑁧", ["2"] = "𑁨", ["3"] = "𑁩", ["4"] = "𑁪",
["5"] = "𑁫", ["6"] = "𑁬", ["7"] = "𑁭", ["8"] = "𑁮", ["9"] = "𑁯",
["."] = "𑁈", [","] = "𑁇", ["-"] = "-",
},
["Khmr"] = {
["0"] = "០", ["1"] = "១", ["2"] = "២", ["3"] = "៣", ["4"] = "៤",
["5"] = "៥", ["6"] = "៦", ["7"] = "៧", ["8"] = "៨", ["9"] = "៩",
["."] = "៕", [","] = "។", ["-"] = "-",
},
["Mymr"] = {
["0"] = "၀", ["1"] = "၁", ["2"] = "၂", ["3"] = "၃", ["4"] = "၄",
["5"] = "၅", ["6"] = "၆", ["7"] = "၇", ["8"] = "၈", ["9"] = "၉",
["."] = "။", [","] = "၊", ["-"] = "-",
},
["Sinh"] = {
["0"] = "0", ["1"] = "1", ["2"] = "2", ["3"] = "3", ["4"] = "4",
["5"] = "5", ["6"] = "6", ["7"] = "7", ["8"] = "8", ["9"] = "9",
["."] = ".", [","] = ",", ["-"] = "-",
},
["Lana"] = {
["0"] = "᪐", ["1"] = "᪑", ["2"] = "᪒", ["3"] = "᪓", ["4"] = "᪔",
["5"] = "᪕", ["6"] = "᪖", ["7"] = "᪗", ["8"] = "᪘", ["9"] = "᪙",
["."] = "᪩", [","] = "᪨", ["-"] = "-",
},
["Laoo"] = {
["0"] = "໐", ["1"] = "໑", ["2"] = "໒", ["3"] = "໓", ["4"] = "໔",
["5"] = "໕", ["6"] = "໖", ["7"] = "໗", ["8"] = "໘", ["9"] = "໙",
["."] = "ຯຯ", [","] = "ຯ", ["-"] = "-",
},
["Latn"] = {
["0"] = "0", ["1"] = "1", ["2"] = "2", ["3"] = "3", ["4"] = "4",
["5"] = "5", ["6"] = "6", ["7"] = "7", ["8"] = "8", ["9"] = "9",
["."] = ".", [","] = ",", ["-"] = "-",
},
}
local join = {
["Deva"] = "्",
["Beng"] = "্",
["Brah"] = "𑁆",
["Khmr"] = "្",
["Mymr"] = "္",
["Sinh"] = u(0x200d, 0x0dca),
["Lana"] = "᩠",
["Laoo"] = "຺",
["Latn"] = "",
}
local kill = {
["Deva"] = "्",
["Beng"] = "্",
["Brah"] = "𑁆",
["Khmr"] = "៑",
["Mymr"] = "်",
["Sinh"] = "්",
["Lana"] = "᩺",
["Laoo"] = "຺",
["Latn"] = "",
}
local sinh_cjct = {
["ක්ව"] = "ක්ව", ["ත්ථ"] = "ත්ථ", ["ත්ව"] = "ත්ව",
["න්ථ"] = "න්ථ", ["න්ද"] = "න්ද", ["න්ධ"] = "න්ධ"
}
local nukta = u(0x09bc) -- Just list all those used here.
local variations = {
["Mon"] = {
["ဈ"] = "ၛ", ["ဤ"] = "ဣဳ", ["ဦ"] = "ဥု", ["ဧ"] = "ဨ", ["ီ"] = "ဳ", -- for IM fix below
--Unicode doesn't have "great nya" so just leave ည္ည as is. (It looks like ည with one extra curve.)
},
["OldShan"] = {
["က"] = "ၵ", ["ခ"] = "ၶ", ["ဂ"] = "ၷ", ["ဃ"] = "ꧠ", ["စ"] = "ၸ",
["ဆ"] = "ꧡ", ["ဇ"] = "ၹ", ["ဈ"] = "ꧢ", ["ဉ"] = "ၺ", ["ည"] = "ၺ္ၺ", ["ဋ"] = "ꩦ",
["ဌ"] = "ꩧ", ["ဍ"] = "ꩨ", ["ဎ"] = "ꩩ", ["ဏ"] = "ꧣ", ["ဒ"] = "ၻ",
["ဓ"] = "ꩪ", ["န"] = "ၼ", ["ဖ"] = "ၽ", ["ဗ"] = "ၿ", ["ဘ"] = "ꧤ",
["ဟ"] = "ႁ", ["ဠ"] = "ꩮ", ["အ"] = "ဢ", ["ဣ"] = "ဢိ", ["ဤ"] = "ဢီ",
["ဥ"] = "ဢု", ["ဦ"] = "ဢူ", ["ဧ"] = "ဢေ", ["ဩ"] = "ဢေႃ", ["ါ"] = "ႃ", ["ာ"] = "ႃ",
--Unicode doesn't have "Shan great sa" so just leave ဿ as is.
},
["NewShan"] = {
--includes all Old Shan and the followings
["ဿ"] = "သ်သ", ["္"] = "်",
},
}
function export.show(frame)
local args = frame:getParent().args
local currentScriptCode = currentScript:getCode()
local availableScripts = lang:getScripts()
local thaiForm = args["Thai"] or currentScriptCode == "Thai" and PAGENAME or error("No Thai-script form detected.")
local scriptCode
local terms
local first
local output = Array('<div class="NavFrame" style="max-width:40em"><div class="NavHead" style="background:var(--wikt-palette-lightblue,#d9ebff);color:inherit">เขียนด้วยอักษรอื่น</div><div class="NavContent" style="text-align:left"><ul>')
for _, script in ipairs(availableScripts) do
scriptCode = script:getCode()
terms = { args[scriptCode], args[scriptCode.."2"], args[scriptCode.."3"], args[scriptCode.."4"] }
output:insert("<li>")
local t1, t2, t3, t4
t1 = export.conv(thaiForm, scriptCode, {}) -- not affect Thai itself
if scriptCode == "Thai" or scriptCode == "Laoo" then
t2 = export.mono_form(t1, scriptCode, {impl='no'})
end
if scriptCode == 'Laoo' then
if not mw.ustring.find(t2, '[ຆຌຏຐຑຒຓຘຠຨຩ]') then
t3 = mw.ustring.gsub(t2, 'ຍ', 'ຢ')
end
end
if scriptCode == 'Mymr' then
t2 = export.conv(thaiForm, scriptCode, {variation='1'}) --Mon
t3 = export.conv(thaiForm, scriptCode, {variation='2'}) --Old Shan
t4 = export.conv(thaiForm, scriptCode, {variation='3'}) --New Shan
end
if #terms == 0 then
terms[1] = t1
if t2 and (t1 ~= t2) then table.insert(terms, t2) end
if t3 and (t1 ~= t3) and (t2 ~= t3) then table.insert(terms, t3) end
if t4 and (t1 ~= t4) and (t2 ~= t4) and (t3 ~= t4) then table.insert(terms, t4) end
elseif terms[1] ~= t1 and terms[2] ~= t1 and terms[3] ~= t1 and terms[4] ~= t1 then
output:insert('[[Category:Pali terms with inconsistent transliterations]]')
end
if scriptCode ~= currentScriptCode or #terms > 1 then
output:insert(labels.show_labels {
lang = lang,
labels = { script:getDisplayForm() },
} .. ' ')
end
first = true
for _, term in ipairs(terms) do
if term ~= nil and term ~= PAGENAME then
if first then
output:insert(links.full_link({lang = lang, sc = script, term = term}))
first = false
else
output:insert(" หรือ " .. links.full_link({lang = lang, sc = script, term = term}))
end
end
end
output:insert('</li>')
end
output:insert("</ul></div></div>")
return output:concat()
end
--converts Thai to other scripts
function export.conv(text, script, options)
if type(text) == "table" then
options = {}
options.impl = text.args["impl"]
options.variation = text.args["variation"] --ID of variation: [Mymr: 1=Mon, 2=Old Shan, 3=New Shan]
text, script = text.args[1], text.args[2]
end
if script == "Thai" then
return text
end
if not s[script] then
return nil
end
--text = mw.ustring.lower(text)
text = gsub(text, "[0-9%.,%-]", s[script])
text = gsub(text, "([เแไโ])([ก-ฮ])", "%2%1") --swap
if script == "Latn" then
text = gsub(text, "([กขคฆงจฉชฌญฏฐฑฒณตถทธนปผพภมยรลวสหฬ])$", "%1a")
text = gsub(text, "([กขคฆงจฉชฌญฏฐฑฒณตถทธนปผพภมยรลวสหฬ])([%s%p])", "%1a%2")
text = gsub(text, "([กขคฆงจฉชฌญฏฐฑฒณตถทธนปผพภมยรลวสหฬ])([กขคฆงจฉชฌญฏฐฑฒณตถทธนปผพภมยรลวสหฬํ])", "%1a%2")
text = gsub(text, "([กขคฆงจฉชฌญฏฐฑฒณตถทธนปผพภมยรลวสหฬ])([กขคฆงจฉชฌญฏฐฑฒณตถทธนปผพภมยรลวสหฬํ])", "%1a%2") --twice
end
text = gsub(text, "[กขคฆงจฉชฌญฏฐฑฒณตถทธนปผพภมยรลวสหฬํ]", c[script])
text = gsub(text, "อ[าิีุูเโ]?", iv[script])
text = gsub(text, "[าิีุูเโ]", dv[script])
text = gsub(text, "ฺ$", kill[script])
text = gsub(text, "ฺ([%s%p])", kill[script] .. "%1")
text = gsub(text, "ฺ", join[script])
if script == "Mymr" then
text = gsub(text, "င္", "င်္") -- Pali doesn't have -Vr mid-word like Sanskrit, so no need to include repha.
text = gsub(text, "(င်္)([ဝခဂငဒပ])(ေ?)ာ", "%1%2%3ါ")
text = gsub(text, "္[ယရ]", { ["္ယ"] = "ျ", ["္ရ"] = "ြ" }) --these not need tall aa
text = gsub(text, "^([ဝခဂငဒပ])(ေ?)ာ", "%1%2ါ")
text = gsub(text, "([^္])([ဝခဂငဒပ])(ေ?)ာ", "%1%2%3ါ")
text = gsub(text, "([ဝခဂငဒပ])(္[က-အဿ])(ေ?)ာ", "%1%2%3ါ")
text = gsub(text, "္[ဝဟ]", { ["္ဝ"] = "ွ", ["္ဟ"] = "ှ" })
text = gsub(text, "ဉ္ဉ", "ည")
text = gsub(text, "သ္သ", "ဿ")
if options.variation == "1" then
text = gsub(text, ".", variations.Mon)
text = gsub(text, "ိံ", "ီ") --fix IM
elseif options.variation == "2" then
text = gsub(text, ".", variations.OldShan)
elseif options.variation == "3" then
text = gsub(text, ".", variations.OldShan)
text = gsub(text, ".", variations.NewShan)
text = gsub(text, "်".."်", "်") --fix nga
end
elseif script == "Lana" then
text = gsub(text, "ᨦ᩠", "ᩘ")
text = gsub(text, "^([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2ᩤ")
text = gsub(text, "([^᩠])([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
text = gsub(text, "([ᨣᨴᨵᨷᩅ])(᩠[ᨠ-ᩌᩔ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
text = gsub(text, "᩠[ᩁᩃ]", { ["᩠ᩁ"] = "ᩕ", ["᩠ᩃ"] = "ᩖ" })
text = gsub(text, "([ᨭ-ᨱ])᩠ᨮ", "%1ᩛ")
text = gsub(text, "([ᨷ-ᨾ])᩠ᨻ", "%1ᩛ")
text = gsub(text, "ᩈ᩠ᩈ", "ᩔ")
elseif script == "Beng" then
text = gsub(text, "ৰ্", "ৰ"..u(0x200d).."্") -- ৰ্(v-) needs ZWJ to display correctly
elseif script == "Sinh" then
local js = join["Sinh"]
text = gsub(text, "("..js..")([යර])", u(0xdca, 0x200d).."%2")
text = gsub(text,"[කතන]"..js.."[ථදධව]", sinh_cjct)
elseif script == "Laoo" then
text = gsub(text, "(.)([ເໂ])", "%2%1")
end
return text
end
--only applies to Thai and Lao
function export.mono_form(text, script)
local result = text
if script == "Thai" then
result = gsub(result, "ํ", "งฺ")
result = gsub(result, "([ก-ฮ])ฺ", "ั%1ฺ")
result = gsub(result, "([ก-ฮ])([^ะัาิีฺุู])", "%1ะ%2")
result = gsub(result, "([ก-ฮ])([^ะัาิีฺุู])", "%1ะ%2") --twice
result = gsub(result, "([ก-ฮ])$", "%1ะ")
result = gsub(result, "([ก-ฮ])([าิีฺุู])ั", "%1%2")
result = gsub(result, "([เโ])([ก-ฮ])([ะั])", "%1%2")
result = gsub(result, "^ั", "")
result = gsub(result, "([%s%p])ั", "%1")
result = gsub(result, "ฺ", "")
elseif script == "Laoo" then
result = gsub(result, "ໍ", "ງ຺")
result = gsub(result, "([ກ-ຮ])຺", "ັ%1຺")
result = gsub(result, "([ກ-ຮ])([^ະັາິີ຺ຸູ])", "%1ະ%2")
result = gsub(result, "([ກ-ຮ])([^ະັາິີ຺ຸູ])", "%1ະ%2") --twice
result = gsub(result, "([ກ-ຮ])$", "%1ະ")
result = gsub(result, "([ກ-ຮ])([າິີ຺ຸູ])ັ", "%1%2")
result = gsub(result, "([ເໂ])([ກ-ຮ])([ະັ])", "%1%2")
result = gsub(result, "^ັ", "")
result = gsub(result, "([%s%p])ັ", "%1")
result = gsub(result, "຺", "")
end
return result
end
return export