Module:User:Thecurran/Deva-Latn-translit
Appearance
- De neikommende dokumintaasje stiet op Module:User:Thecurran/Deva-Latn-translit/dokumintaasje. [bewurkje]
Oernommen fan en:Module:User:Thecurran/Deva-Latn-translit.
local export = {}
local gsub = mw.ustring.gsub
local match = mw.ustring.match
local sub = mw.ustring.sub
local c = {
["Deva"] = {
["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"] = "ह", ["ʔ"] = "ॽ",
["q"] = "क़", ["k͟h"] = "ख़", ["ġ"] = "ग़", ["z"] = "ज़", ["ž"] = "झ़",
["ṛ"] = "ड़", ["ṛh"] = "ढ़", ["ṉ"] = "ऩ", ["f"] = "फ़", ["ẏ"] = "य़",
["ṟ"] = "ऱ", ["ḻ"] = "ऴ", ["ç"] = "श़",
["g̤"] = "ॻ", ["j̤"] = "ॼ", ["d̤"] = "ॾ", ["b̤"] = "ॿ",
["kt"] = "क्त", ["kṣ"] = "क्ष", ["jñ"] = "ज्ञ", ["tt"] = "त्त", ["tr"] = "त्र",
["dd"] = "द्द", ["ddh"] = "द्ध", ["db"] = "द्ब", ["dbh"] = "द्भ", ["dm"] = "द्म",
["dy"] = "द्य", ["dv"] = "द्व", ["śr"] = "श्र", ["śn"] = "श्न", ["str"] = "स्त्र",
["hm"] = "ह्म", ["hy"] = "ह्म",
["æ"] = "ॲ", ["ǣ"] = "ऄ", ["a"] = "अ", ["ā"] = "आ",
["i"] = "इ", ["ī"] = "ई", ["u"] = "उ", ["ū"] = "ऊ",
["r̥"] = "ऋ", ["r̥̄"] = "ॠ", ["l̥"] = "ऌ", ["l̥̄"] = "ॡ",
["ê"] = "ऍ", ["e"] = "ऎ", ["ē"] = "ए", ["ai"] = "ऐ",
["ô"] = "ऑ", ["o"] = "ऒ", ["ō"] = "ओ", ["au"] = "औ", ["m͒"] = "ऀ",
["m̐"] = "ँ", ["ṁ"] = "ं", ["ḥ"] = "ः", ["'"] = "ऽ", ["."] = "्",
--Nukta↘, ↖Candrabindu, Anusvara, Visarga, Agravaha, Virama,
["̊"] = "़", [""] = "",
},
["Khmr"] = {
["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"] = "ហ", ["ʔ"] = "អ",
["a"] = "អ", ["ā"] = "អា",
["i"] = "ឥ", ["ī"] = "ឦ", ["u"] = "ឧ", ["ū"] = "ឩ", ["uk"] = "ឨ",
["r̥"] = "ឫ", ["r̥̄"] = "ឬ", ["l̥"] = "ឭ", ["l̥̄"] = "ឮ",
["ē"] = "ឯ", ["ai"] = "ឰ",
["ô"] = "ឪ", ["o"] = "ឲ", ["ō"] = "ឱ", ["au"] = "ឳ",
["ṁ"] = "ំ", ["ḥ"] = "ះ", ["'"] = "ៜ", ["."] = "៑", ["̊"] = "ំ",
-- Anusvara, Visarga, Agravaha, Virama, Nukta,
[""] = "",
},
["Mymr"] = {
["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"] = "ဟ",
["ss"] = "ဿ", ["ññ"] = "ည",
["g̤"] = "ၚ", ["j̤"] = "ၛ", ["d̤"] = "ၜ", ["b̤"] = "ၝ", ["św"] = "ၡ",
-- Mon ṅa, Mon jha, Mon bba, Mon bbe, S'gaw śa,
["thw"] = "ၥ", ["pw"] = "ၦ", ["ṇw"] = "ၮ", ["yw"] = "ၯ", ["ghw"] = "ၰ",
-- Pwo tha, Pwo pwa, Pwo ṇa, Pwo ywa, Pwo ghwa,
["q"] = "ၵ", ["k͟h"] = "ၶ", ["ġ"] = "ၷ", ["ç"] = "ၸ", ["z"] = "ၹ",
-- Shan ka, Shan kha, Shan ga, Shan ca, Shan za,
["ẏ"] = "ၺ", ["ṛ"] = "ၻ", ["ṉ"] = "ၼ", ["p̊"] = "ၽ", ["f"] = "ၾ",
-- Shan ña, Shan da, Shan na, Shan pha, Shan fa,
["b̊"] = "ၿ", ["ṛh"] = "ႀ", ["ž"] = "ႁ", ["f̊"] = "ႎ",
-- Shan ba, Shan tha, Shan ha, Palaung fa,
["kk"] = "က္က", ["kkh"] = "က္ခ", ["gg"] = "ဂ္ဂ", ["ggh"] = "ဂ္ဃ",
["cc"] = "စ္စ", ["cch"] = "စ္ဆ", ["jj"] = "ဇ္ဇ", ["jjh"] = "ဇ္ဈ",
["ṭṭ"] = "ဋ္ဋ", ["ṭṭh"] = "ဋ္ဌ", ["ḍḍ"] = "ဍ္ဍ", ["ḍḍh"] = "ဍ္ဎ",
["tt"] = "တ္တ", ["tth"] = "တ္ထ", ["dd"] = "ဒ္ဒ", ["ddh"] = "ဒ္ဓ",
["pp"] = "ပ္ပ", ["pph"] = "ပ္ဖ", ["bb"] = "ဗ္ဗ", ["bbh"] = "ဗ္ဘ",
["ñc"] = "ဉ္စ", ["ñch"] = "ဉ္ဆ", ["ñj"] = "ဉ္ဇ", ["ñjh"] = "ဉ္ဈ",
["ṇṭ"] = "ဏ္ဋ", ["ṇḍ"] = "ဏ္ဍ",
["nt"] = "န္တ", ["nth"] = "န္ထ", ["nd"] = "န္ဒ", ["ndh"] = "န္ဓ", ["nn"] = "န္န",
["mp"] = "မ္ပ", ["mb"] = "မ္ဗ", ["mbh"] = "မ္ဘ", ["mm"] = "မ္မ",
["a"] = "အ", ["ā"] = "အာ",
["i"] = "ဣ", ["ī"] = "ဤ", ["u"] = "ဥ", ["ū"] = "ဦ",
["r̥"] = "ၒ", ["r̥̄"] = "ၓ", ["l̥"] = "ၔ", ["l̥̄"] = "ၕ",
["e"] = "ဧ", ["ē"] = "ဨ",
["ō"] = "ဩ", ["au"] = "ဪ",
["ṁ"] = "ံ", ["ḥ"] = "း", ["'"] = "်", ["."] = "္", ["̊"] = "့",
-- Anusvara, Visarga, Agravaha, Virama, Nukta,
[""] = "",
},
["Sinh"] = {
["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"] = "හ", ["g͜n"] = "ඥ",
["ṁ͜g"] = "ඟ", ["ṁ͜j"] = "ඦ", ["ṁ͜ḍ"] = "ඬ", ["ṁ͜d"] = "ඳ", ["ṁ͜b"] = "ඹ",
["f"] = "ෆ",
["æ"] = "ඇ", ["ǣ"] = "ඈ", ["a"] = "අ", ["ā"] = "ආ",
["i"] = "ඉ", ["ī"] = "ඊ", ["u"] = "උ", ["ū"] = "ඌ",
["r̥"] = "ඍ", ["r̥̄"] = "ඎ", ["l̥"] = "ඏ", ["l̥̄"] = "ඐ",
["e"] = "එ", ["ē"] ="ඒ", ["ai"] = "ඓ",
["o"] = "ඔ", ["ō"] = "ඕ", ["au"] = "ඖ",
["ṁ"] = "ං", ["ḥ"] = "ඃ", ["."] = "්",
Anusvara, Visarga, Virama,
[""] = "",
},
["Thai"] = {
["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"] = "ห", ["ḷ"] = "ฬ",
["a"] = "อ", ["ā"] = "อา",
["i"] = "อิ", ["ī"] = "อี",
["u"] = "อุ", ["ū"] = "อู",
["e"] = "อเ", --to be swapped later
["o"] = "อโ", --to be swapped later
["ṃ"] = "ํ",
["ḥ"] = "",
[""] = "",
},
}
local v = {
["Deva"] = {
["a"] = "", ["ā"] = " ा",
["i"] = " ि", ["ī"] = " ी", ["u"] = " ु", ["ū"] = " ू",
["r̥"] = " ृ", ["r̥̄"] = " ॄ", ["l̥"] = " ॢ", ["l̥̄"] = " ॣ",
["ê"] = " ॅ", ["e"] = " ॆ", ["ē"] = " े", ["ai"] = " ै",
["ô"] = " ॉ", ["o"] = " ो", ["ō"] = " ो", ["au"] = " ौ",
[""] = "",
},
["Khmr"] = {
["a"] = "", ["ā"] = " ា",
["i"] = " ិ", ["ī"] = " ី", ["u"] = " ុ", ["ū"] = " ូ",
["y"] = " ឹ", ["yy"] = " ឺ", ["ua"] = " ួ", ["oe"] = " ើ",
["ya"] = " ឿ", ["ie"] = " ៀ", ["ē"] = " េ", ["ae"] = " ែ",
["ai"] = " ៃ", ["ō"] = " ោ", ["au"] = " ៅ",
[""] = "",
},
["Mymr"] = {
["a"] = "", ["ā"] = " ာ",
-- tall ["ā"] = " ါ",
["i"] = " ိ", ["ī"] = " ီ", ["u"] = " ု", ["ū"] = " ူ",
["ē"] = " ေ", ["ai"] = " ဲ",
-- above ["ē"] = " ဵ", Mon ["ī"] = " ဳ", Mon ["ō"] = " ဴ",
["ō"] = " ော",
[""] = "",
},
["Sinh"] = {
["a"] = "", ["ā"] = "ා",
["i"] = "ි", ["ī"] = "ී",
["u"] = "ු", ["ū"] = "ූ",
["ē"] = "ෙ",
["ō"] = "ො",
[""] = "",
},
["Thai"] = {
["a"] = "", ["ā"] = "า",
["i"] = "ิ", ["ī"] = "ี",
["u"] = "ุ", ["ū"] = "ู",
["e"] = "เ",
["o"] = "โ",
[""] = "",
},
}
local s = {
["Deva"] = {
["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",
["."] = ".", ["-"] = "-",
},
["Thai"] = {
["0"] = "๐", ["1"] = "๑", ["2"] = "๒", ["3"] = "๓", ["4"] = "๔",
["5"] = "๕", ["6"] = "๖", ["7"] = "๗", ["8"] = "๘", ["9"] = "๙",
["."] = ".", ["-"] = "-",
},
}
local join = {
["Deva"] = "्",
["Khmr"] = "្",
["Mymr"] = "္",
["Sinh"] = "්",
["Thai"] = "ฺ",
}
local kill = {
["Deva"] = "्",
["Khmr"] = "៑",
["Mymr"] = "်",
["Sinh"] = "්",
["Thai"] = "ฺ",
}
local function return_error(text)
return error(("Unrecognised part: \"%s\""):format(text))
end
function export.tr(text, script)
if type(text) == "table" then
text, script = text.args[1], text.args[2]
end
text = gsub(text, "[0-9\.]", s[script])
for word in mw.ustring.gmatch(text, "[aāiīuūeoṃḥkhgṅcjñṭḍṇtdnpbmyrlḷvs]+") do
local word_conv, orig_word = {}, word
word = gsub(word, "([aāiīuūeo][ṃḥ]?)", "%1 ")
word = gsub(word, " $", "")
for syllable in mw.text.gsplit(word, " ") do
if not match(syllable, "[aāiīuūeoṃḥ]$") then
syllable = syllable .. "a" .. kill[script]
end
syllable = gsub(syllable, "^([khgṅcjñṭḍṇtdnpbmyrlḷvs]*)([aāiīuūeo])([ṃḥ]?)([्៑်්ฺ]?)$", function(onset, vowel, coda, optJoin)
if onset == "" then
onset = vowel
vowel = ""
end
if not c[script][onset] then
if match(onset, "^[ṅñṇnm]") then
onset = c[script][sub(onset, 1, 1)] .. join[script] ..
(c[script][sub(onset, 2, -1)] or return_error(onset))
elseif match(onset, "h$") and sub(onset, 1, 1) == sub(onset, 2, 2) then
onset = (c[script][sub(onset, 1, 1)] or return_error(onset)) .. join[script] ..
(c[script][sub(onset, 2, -1)] or return_error(onset))
else
temp = {}
for character in mw.text.gsplit(onset, "") do
table.insert(temp, (c[script][character] or return_error(onset)))
end
onset = table.concat(temp, join[script])
end
else
onset = c[script][onset]
end
return onset .. (v[script][vowel] or return_error(vowel)) .. c[script][coda] .. optJoin
end)
table.insert(word_conv, syllable)
end
word = table.concat(word_conv, "")
if script == "Thai" then
word = gsub(word, "(.)([เโ])", "%2%1")
end
if script == "Mymr" then
word = gsub(word, "([ဝခဂငဒပ])(္.)ာ", "%1%2ါ")
word = gsub(word, "([ဝခဂငဒပ])ာ", "%1ါ")
word = gsub(word, "္[ယဝ]", { ["္ယ"] = "ျ", ["္ဝ"] = "ွ" })
end
text = gsub(text, orig_word, word)
end
return text
end
return export