Module:User:Thecurran/Deva-Latn-translit

From Wiktionary, the free dictionary
Jump to navigation Jump to search

A re-transliterator From Latin (Romanized Indic) into:

  • Dēvanāgarī (Hindī, Pāli, Sanskrit, ...)
  • Khmer (Cambodian)
  • Myanmar (Burmese, Mon, Palaung, Pwo, S'gaw, Shan)
  • Sinhala (Sri Lankan)
  • Thai

to be followed by:

  • Hangul (Korean)
  • Hiragana (Japanese)

Invoked by {{Deva-alt}}.

The examples below are from Pāli; ISO 15919 ē & ō are transcribed as IAST e & o.

Example

[edit]

jhāpana:

  •  Devanāgarī : झापन
  •  Khmer : ឈាបន
  •  Myanmar : ဈာပန
  •  Sinhala : ඣාපන
  •  Thai : ฌาปน

 Latin 

uddeso. ekāyano ayaṃ, bhikkhave, maggo sattānaṃ visuddhiyā, sokaparidevānaṃ samatikkamāya, dukkhadomanassānaṃ atthaṅgamāya, ñāyassa adhigamāya, nibbānassa sacchikiriyāya, yadidaṃ cattāro satipaṭṭhānā. katame cattāro? idha, bhikkhave, bhikkhu kāye kāyānupassī viharati ātāpī sampajāno satimā, vineyya loke abhijjhādomanassaṃ; vedanāsu vedanānupassī viharati ātāpī sampajāno satimā, vineyya loke abhijjhādomanassaṃ; citte cittānupassī viharati ātāpī sampajāno satimā, vineyya loke abhijjhādomanassaṃ; dhammesu dhammānupassī viharati ātāpī sampajāno satimā, vineyya loke abhijjhādomanassaṃ. uddeso niṭṭhito.

 Devanāgarī 

उद्देसो॥ एकायनो अयं। भिक्खवे। मग्गो सत्तानं विसुद्धिया। सोकपरिदेवानं समतिक्कमाय। दुक्खदोमनस्सानं अत्थङ्गमाय। ञायस्स अधिगमाय। निब्बानस्स सच्छिकिरियाय। यदिदं चत्तारो सतिपट्ठाना॥ कतमे चत्तारो? इध। भिक्खवे। भिक्खु काये कायानुपस्सी विहरति आतापी सम्पजानो सतिमा। विनेय्य लोके अभिज्झादोमनस्सं; वेदनासु वेदनानुपस्सी विहरति आतापी सम्पजानो सतिमा। विनेय्य लोके अभिज्झादोमनस्सं; चित्ते चित्तानुपस्सी विहरति आतापी सम्पजानो सतिमा। विनेय्य लोके अभिज्झादोमनस्सं; धम्मेसु धम्मानुपस्सी विहरति आतापी सम्पजानो सतिमा। विनेय्य लोके अभिज्झादोमनस्सं॥ उद्देसो निट्ठितो॥

 Khmer 

ឧទ្ទេសោ៕ ឯកាយនោ អយំ។ ភិក្ខវេ។ មគ្គោ សត្តានំ វិសុទ្ធិយា។ សោកបរិទេវានំ សមតិក្កមាយ។ ទុក្ខទោមនស្សានំ អត្ថង្គមាយ។ ញាយស្ស អធិគមាយ។ និព្ពានស្ស សច្ឆិកិរិយាយ។ យទិទំ ចត្តារោ សតិបដ្ឋានា៕ កតមេ ចត្តារោ? ឥធ។ ភិក្ខវេ។ ភិក្ខុ កាយេ កាយានុបស្សី វិហរតិ អាតាបី សម្បជានោ សតិមា។ វិនេយ្យ លោកេ អភិជ្ឈាទោមនស្សំ; វេទនាសុ វេទនានុបស្សី វិហរតិ អាតាបី សម្បជានោ សតិមា។ វិនេយ្យ លោកេ អភិជ្ឈាទោមនស្សំ; ចិត្តេ ចិត្តានុបស្សី វិហរតិ អាតាបី សម្បជានោ សតិមា។ វិនេយ្យ លោកេ អភិជ្ឈាទោមនស្សំ; ធម្មេសុ ធម្មានុបស្សី វិហរតិ អាតាបី សម្បជានោ សតិមា។ វិនេយ្យ លោកេ អភិជ្ឈាទោមនស្សំ៕ ឧទ្ទេសោ និដ្ឋិតោ៕

 Myanmar 

ဥဒ္ဒေသော။ ဧကာယနော အယံ၊ ဘိက္ခဝေ၊ မဂ္ဂေါ သတ္တာနံ ဝိသုဒ္ဓိယာ၊ သောကပရိဒေဝါနံ သမတိက္ကမာယ၊ ဒုက္ခဒေါမနဿာနံ အတ္ထင်္ဂမာယ၊ ဉာယဿ အဓိဂမာယ၊ နိဗ္ဗာနဿ သစ္ဆိကိရိယာယ၊ ယဒိဒံ စတ္တာရော သတိပဋ္ဌာနာ။ ကတမေ စတ္တာရော? ဣဓ၊ ဘိက္ခဝေ၊ ဘိက္ခု ကာယေ ကာယာနုပဿီ ဝိဟရတိ အာတာပီ သမ္ပဇာနော သတိမာ၊ ဝိနေယျ လောကေ အဘိဇ္ဈာဒေါမနဿံ; ဝေဒနာသု ဝေဒနာနုပဿီ ဝိဟရတိ အာတာပီ သမ္ပဇာနော သတိမာ၊ ဝိနေယျ လောကေ အဘိဇ္ဈာဒေါမနဿံ; စိတ္တေ စိတ္တာနုပဿီ ဝိဟရတိ အာတာပီ သမ္ပဇာနော သတိမာ၊ ဝိနေယျ လောကေ အဘိဇ္ဈာဒေါမနဿံ; ဓမ္မေသု ဓမ္မာနုပဿီ ဝိဟရတိ အာတာပီ သမ္ပဇာနော သတိမာ၊ ဝိနေယျ လောကေ အဘိဇ္ဈာဒေါမနဿံ။ ဥဒ္ဒေသော နိဋ္ဌိတော။

 Sinhala 

උද‍්දෙසො. එකායනො අයං, භික‍්ඛවෙ, මග‍්ගො සත‍්තානං විසුද‍්ධියා, සොකපරිදෙවානං සමතික‍්කමාය, දුක‍්ඛදොමනස‍්සානං අත්‍ථඞ‍්ගමාය, ඤායස‍්ස අධිගමාය, නිබ‍්බානස‍්ස සච‍්ඡිකිරියාය, යදිදං චත‍්තාරො සතිපට‍්ඨානා. කතමෙ චත‍්තාරො? ඉධ, භික‍්ඛවෙ, භික‍්ඛු කායෙ කායානුපස‍්සී විහරති ආතාපී සම‍්පජානො සතිමා, විනෙය්‍ය ලොකෙ අභිජ‍්ඣාදොමනස‍්සං; වෙදනාසු වෙදනානුපස‍්සී විහරති ආතාපී සම‍්පජානො සතිමා, විනෙය්‍ය ලොකෙ අභිජ‍්ඣාදොමනස‍්සං; චිත‍්තෙ චිත‍්තානුපස‍්සී විහරති ආතාපී සම‍්පජානො සතිමා, විනෙය්‍ය ලොකෙ අභිජ‍්ඣාදොමනස‍්සං; ධම‍්මෙසු ධම‍්මානුපස‍්සී විහරති ආතාපී සම‍්පජානො සතිමා, විනෙය්‍ය ලොකෙ අභිජ‍්ඣාදොමනස‍්සං. උද‍්දෙසො නිට‍්ඨිතො.

 Thai 

อุทฺเทโส๚ เอกายโน อยํฯ ภิกฺขเวฯ มคฺโค สตฺตานํ วิสุทฺธิยาฯ โสกปริเทวานํ สมติกฺกมายฯ ทุกฺขโทมนสฺสานํ อตฺถงฺคมายฯ ญายสฺส อธิคมายฯ นิพฺพานสฺส สจฺฉิกิริยายฯ ยทิทํ จตฺตาโร สติปฏฺฐานา๚ กตเม จตฺตาโร? อิธฯ ภิกฺขเวฯ ภิกฺขุ กาเย กายานุปสฺสี วิหรติ อาตาปี สมฺปชาโน สติมาฯ วิเนยฺย โลเก อภิชฺฌาโทมนสฺสํ; เวทนาสุ เวทนานุปสฺสี วิหรติ อาตาปี สมฺปชาโน สติมาฯ วิเนยฺย โลเก อภิชฺฌาโทมนสฺสํ; จิตฺเต จิตฺตานุปสฺสี วิหรติ อาตาปี สมฺปชาโน สติมาฯ วิเนยฺย โลเก อภิชฺฌาโทมนสฺสํ; ธมฺเมสุ ธมฺมานุปสฺสี วิหรติ อาตาปี สมฺปชาโน สติมาฯ วิเนยฺย โลเก อภิชฺฌาโทมนสฺสํ๚ อุทฺเทโส นิฏฺฐิโต๚


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