Module:sa-convert

This module is used to convert Sanskrit Devanagari text to other scripts. It is principally used in Template:sa-alt and its function tr is exported in Template:sa-convert.

Example edit

ॐ त्र्यम्बकं यजामहे सुगन्धिं पुष्टिवर्धनम् । उर्वारुकमिव बन्धनान् मृत्योर् मुक्षीय माऽमृतात् ॥ कः खगौघाङचिच्छौजा झाञ्ज्ञोऽटौठीडडण्ढणः। तथोदधीन् पफर्बाभीर्मयोऽरिल्वाशिषां सहः॥

Unresolved Issues edit

  • Burmese:
    • Round AA also needs to be replaced with tall AA in some situations.  Done
    • Some conjuncts need to be cleanup like -y-, -r-, -v- when they come together.
    • NGA floating င္ → င်္  Done
    • RA repha ရ္ → ရ်္ (This never happens in Pali.)  Done
    • NYA + virama + NYA → great NYA  Done
    • SA + virama + SA → great SA  Done
    • Final virama → asat  Done
  • Lao:
    • Lao does not have characters for ऋ ॠ ऌ ॡ so it uses equivalent ຣິ ຣີ ລິ ລີ instead.  Done
      • Evidence? I've read that it uses ຣຶ ຣື ລຶ ລື, which would eliminate the ambiguity.
      • In "Lanexang Mon4" font, there are already invented characters ຤(=ฤ) ຦(=ฦ) at unassigned codepoints but their usages are nowhere to attest.
  • Khmer:
    • RA repha រ្ → robat over next consonant ៌ (This never happens in Pali.)  Done
    • Final virama → viriam  Done
  • Javanese: ꦨꦹꦂꦨꦸꦮꦃꦱ꧀ꦮꦃꦠꦠ꧀ꦱꦮꦶꦠꦸꦂꦮꦫꦺꦟꦾꦁ꧉꧇꧑꧇꧉
    • no spaces in the script (need to remove the ones that enter the module); also causes the following two issues
    • ꦾ and ꦿ for word medial conjuncts, but ꦪ and ꦫ for conjuncts that cross word boundaries, e.g.
    • ꦂ for aksaras that end with r, but aren't aksara initial, e.g.
    • enclosing numbers around ꧇ (꧇꧑꧙꧇ = 19). Test: त्र्य०६म्बकं -> ꦠꦿꦾ꧇꧐꧖꧇ꦩ꧀ꦧꦏꦁ
    • ꦘ should be used for the conjunct ज्ञ, not ꦗ꧀ꦚ. Test: ज्ञ ->
  • Balinese:
    • also no spaces, and causes the following issue
    • ◌ᬃ for syllables that begin with r
    • enclosing numbers around ᭞ (᭞᭑᭞ = 1). Test: त्र्य०६म्बकं: ᬢ᭄ᬭ᭄ᬬ᭞᭐᭖᭞ᬫ᭄ᬩᬓᬂ
  • Bengali:
  • Assamese:
  • Sinhala
    • for Sanskrit, conjuncts are formed not by simply using its virama (U+0DCA) but by either abutting the consonants, encoded by the sequence <U+200D, U+0DCA> or by forming a ligature, encoded by <U+0DCA, U+200D>. (The extra character is ZWJ.) Which is used depends on the consonants, but as a general rule forms a ligature with a consonant to either side (very like Devanagari w:repha and rakar), while formally (ya) ligates with a preceding consonant, but in fact the glyph simply changes shape. There is some evidence for geminate (ya) being ය‍්ය in Sanskrit rather than ය්‍ය as in Pali. Finally, at least one pair form a separately encoded ligature - plus (ña) becomes (gna). My best estimate so far for the combinations has been encoded in Module:sa-utilities/translit/SLP1-to-Sinh, and ultimately I believe this module and that module should share common code for the fix-up of naive transliteration that just uses U+0DCA.  Done
    • Additionally, for the Pali and Sanskrit I can find, /e/ and /o/ do not have their length marked, but use the same symbols as the Sinhalese language uses for the short vowels.  Done
    • I have just (18/19 December 2023) added some evidence-based test cases to Module:sa-convert/testcases. Research continues to plod along.
  • Tamil
    • Final nasals.
    • Final visarga - the Grantha visarga is used.  Done
    • Encoding of superscript digits and vowels.
    • Syllabic consonants
    • Rules for /n/ - (na) v. (ṉa).
    • Alternative forms, e.g. subscript digits.

local export = {}

local m_str_utils = require("Module:string utilities")

local gsub = m_str_utils.gsub
local lower = m_str_utils.lower
local match = m_str_utils.match
local sub = m_str_utils.sub
local u = m_str_utils.char

local conv = {
	["Java"] = {
		["क"] = "ꦏ", ["ख"] = "ꦑ", ["ग"] = "ꦒ", ["घ"] = "ꦓ", ["ङ"] = "ꦔ", 
		["च"] = "ꦕ", ["छ"] = "ꦖ", ["ज"] = "ꦗ", ["झ"] = "ꦙ", ["ञ"] = "ꦚ", 
		["ट"] = "ꦛ", ["ठ"] = "ꦜ", ["ड"] = "ꦝ", ["ढ"] = "ꦞ", ["ण"] = "ꦟ", 
		["त"] = "ꦠ", ["थ"] = "ꦡ", ["द"] = "ꦢ", ["ध"] = "ꦣ", ["न"] = "ꦤ", 
		["प"] = "ꦥ", ["फ"] = "ꦦ", ["ब"] = "ꦧ", ["भ"] = "ꦨ", ["म"] = "ꦩ", 
		["य"] = "ꦪ", ["र"] = "ꦫ", ["ल"] = "ꦭ", ["व"] = "ꦮ", -- ["ळ"] = "ळ", 
		["श"] = "ꦯ", ["ष"] = "ꦰ", ["स"] = "ꦱ", ["ह"] = "ꦲ",
		
		["अ"] = "ꦄ", ["आ"] = "ꦄꦴ", ["इ"] = "ꦆ", ["ई"] = "ꦇ", ["उ"] = "ꦈ", ["ऊ"] = "ꦈꦴ", ["ऋ"] = "ꦉ", ["ॠ"] = "ꦉꦴ",
		["ऌ"] = "ꦊ", ["ॡ"] = "ꦋ", ["ए"] = "ꦌ", ["ऐ"] = "ꦍ", ["ओ"] = "ꦎ", ["औ"] = "ꦎꦴ",
		
		["ा"] = "ꦴ", ["ि"] = "ꦶ", ["ी"] = "ꦷ", ["ु"] = "ꦸ", ["ू"] = "ꦹ", ["ृ"] = "ꦽ", ["ॄ"] = "ꦽꦴ", 
		["ॢ"] = "꧀ꦊ", ["ॣ"] = "꧀ꦋ", ["े"] = "ꦺ", ["ै"] = "ꦻ", ["ो"] = "ꦺꦴ", ["ौ"] = "ꦻꦴ",  ["्"] = "꧀",
		
		["ँ"] = "ᬁ", ["ं"] = "ꦁ", ["ः"] = "ꦃ", -- ["ऽ"] = "ऽ",
		
		["०"] = "꧐", ["१"] = "꧑", ["२"] = "꧒", ["३"] = "꧓", ["४"] = "꧔", ["५"] = "꧕", ["६"] = "꧖", ["७"] = "꧗", ["८"] = "꧘", ["९"] = "꧙",
		
		["॥"] = "꧉", ["।"] = "꧈",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "ꦎꦴꦀ",
	},
	["Bali"] = {
		["क"] = "ᬓ", ["ख"] = "ᬔ", ["ग"] = "ᬕ", ["घ"] = "ᬖ", ["ङ"] = "ᬗ", 
		["च"] = "ᬘ", ["छ"] = "ᬙ", ["ज"] = "ᬚ", ["झ"] = "ᬛ", ["ञ"] = "ᬜ", 
		["ट"] = "ᬝ", ["ठ"] = "ᬞ", ["ड"] = "ᬟ", ["ढ"] = "ᬠ", ["ण"] = "ᬡ", 
		["त"] = "ᬢ", ["थ"] = "ᬣ", ["द"] = "ᬤ", ["ध"] = "ᬥ", ["न"] = "ᬦ", 
		["प"] = "ᬧ", ["फ"] = "ᬨ", ["ब"] = "ᬩ", ["भ"] = "ᬪ", ["म"] = "ᬫ", 
		["य"] = "ᬬ", ["र"] = "ᬭ", ["ल"] = "ᬮ", ["व"] = "ᬯ", -- ["ळ"] = "ळ", 
		["श"] = "ᬰ", ["ष"] = "ᬱ", ["स"] = "ᬲ", ["ह"] = "ᬳ",
		
		["अ"] = "ᬅ", ["आ"] = "ᬆ", ["इ"] = "ᬇ", ["ई"] = "ᬈ", ["उ"] = "ᬉ", ["ऊ"] = "ᬊ", ["ऋ"] = "ᬋ", ["ॠ"] = "ᬌ",
		["ऌ"] = "ᬍ", ["ॡ"] = "ᬎ", ["ए"] = "ᬏ", ["ऐ"] = "ᬐ", ["ओ"] = "ᬑ", ["औ"] = "ᬒ",
		
		["ा"] = "ᬵ", ["ि"] = "ᬶ", ["ी"] = "ᬷ", ["ु"] = "ᬸ", ["ू"] = "ᬹ", ["ृ"] = "ᬺ", ["ॄ"] = "ᬻ", 
		["ॢ"] = "ᬼ", ["ॣ"] = "ᬽ", ["े"] = "ᬾ", ["ै"] = "ᬿ", ["ो"] = "ᭀ", ["ौ"] = "ᭁ",  ["्"] = "᭄",
		
		["ँ"] = "ᬁ", ["ं"] = "ᬂ", ["ः"] = "ᬄ", -- ["ऽ"] = "ઽ",
		
		["०"] = "᭐", ["१"] = "᭑", ["२"] = "᭒", ["३"] = "᭓", ["४"] = "᭔", ["५"] = "᭕", ["६"] = "᭖", ["७"] = "᭗", ["८"] = "᭘", ["९"] = "᭙",
		
		["॥"] = "᭟", ["।"] = "᭞",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "ᬒᬁ",
	},
	["Saur"] = {
		["क"] = "ꢒ", ["ख"] = "ꢓ", ["ग"] = "ꢔ", ["घ"] = "ꢕ", ["ङ"] = "ꢖ", 
		["च"] = "ꢗ", ["छ"] = "ꢘ", ["ज"] = "ꢙ", ["झ"] = "ꢚ", ["ञ"] = "ꢛ", 
		["ट"] = "ꢜ", ["ठ"] = "ꢝ", ["ड"] = "ꢞ", ["ढ"] = "ꢟ", ["ण"] = "ꢠ", 
		["त"] = "ꢡ", ["थ"] = "ꢢ", ["द"] = "ꢣ", ["ध"] = "ꢤ", ["न"] = "ꢥ", 
		["प"] = "ꢦ", ["फ"] = "ꢧ", ["ब"] = "ꢨ", ["भ"] = "ꢩ", ["म"] = "ꢪ", 
		["य"] = "ꢫ", ["र"] = "ꢬ", ["ल"] = "ꢭ", ["व"] = "ꢮ", ["ळ"] = "ꢳ", 
		["श"] = "ꢯ", ["ष"] = "ꢰ", ["स"] = "ꢱ", ["ह"] = "ꢲ",
		
		["अ"] = "ꢂ", ["आ"] = "ꢃ", ["इ"] = "ꢄ", ["ई"] = "ꢅ", ["उ"] = "ꢆ", ["ऊ"] = "ꢇ", ["ऋ"] = "ꢈ", ["ॠ"] = "ꢉ",
		["ऌ"] = "ꢊ", ["ॡ"] = "ꢋ", ["ए"] = "ꢍ", ["ऐ"] = "ꢎ", ["ओ"] = "ꢐ", ["औ"] = "ꢑ",
		
		["ा"] = "ꢵ", ["ि"] = "ꢶ", ["ी"] = "ꢷ", ["ु"] = "ꢸ", ["ू"] = "ꢹ", ["ृ"] = "ꢺ", ["ॄ"] = "ꢻ", 
		["ॢ"] = "ꢼ", ["ॣ"] = "ꢽ", ["े"] = "ꢾ", ["ै"] = "ꣀ", ["ो"] = "ꣂ", ["ौ"] = "ꣃ",  ["्"] = "꣄",
		
		["ँ"] = "ꣅ", ["ं"] = "ꢀ", ["ः"] = "ꢁ", -- ["ऽ"] = "ऽ",
		
		["०"] = "꣐", ["१"] = "꣑", ["२"] = "꣒", ["३"] = "꣓", ["४"] = "꣔", ["५"] = "꣕", ["६"] = "꣖", ["७"] = "꣗", ["८"] = "꣘", ["९"] = "꣙",
		
		["॥"] = "꣏", ["।"] = "꣎",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		-- ["ॐ"] = "ॐ",
	},
	["Mlym"] = {
		["क"] = "ക", ["ख"] = "ഖ", ["ग"] = "ഗ", ["घ"] = "ഘ", ["ङ"] = "ങ", 
		["च"] = "ച", ["छ"] = "ഛ", ["ज"] = "ജ", ["झ"] = "ഝ", ["ञ"] = "ഞ", 
		["ट"] = "ട", ["ठ"] = "ഠ", ["ड"] = "ഡ", ["ढ"] = "ഢ", ["ण"] = "ണ", 
		["त"] = "ത", ["थ"] = "ഥ", ["द"] = "ദ", ["ध"] = "ധ", ["न"] = "ന", 
		["प"] = "പ", ["फ"] = "ഫ", ["ब"] = "ബ", ["भ"] = "ഭ", ["म"] = "മ", 
		["य"] = "യ", ["र"] = "ര", ["ल"] = "ല", ["व"] = "വ", ["ळ"] = "ള", 
		["श"] = "ശ", ["ष"] = "ഷ", ["स"] = "സ", ["ह"] = "ഹ",
		
		["अ"] = "അ", ["आ"] = "ആ", ["इ"] = "ഇ", ["ई"] = "ഈ", ["उ"] = "ഉ", ["ऊ"] = "ഊ", ["ऋ"] = "ഋ", ["ॠ"] = "ൠ",
		["ऌ"] = "ഌ", ["ॡ"] = "ൡ", ["ए"] = "ഏ", ["ऐ"] = "ഐ", ["ओ"] = "ഓ", ["औ"] = "ഔ",
		
		["ा"] = "ാ", ["ि"] = "ി", ["ी"] = "ീ", ["ु"] = "ു", ["ू"] = "ൂ", ["ृ"] = "ൃ", ["ॄ"] = "ൄ", 
		["ॢ"] = "ൢ", ["ॣ"] = "ൣ", ["े"] = "േ", ["ै"] = "ൈ", ["ो"] = "ോ", ["ौ"] = "ൗ",  ["्"] = "്",
		
		["ँ"] = "ഁ", ["ं"] = "ം", ["ः"] = "ഃ", ["ऽ"] = "ഽ",
		
		["०"] = "൦", ["१"] = "൧", ["२"] = "൨", ["३"] = "൩", ["४"] = "൪", ["५"] = "൫", ["६"] = "൬", ["७"] = "൭", ["८"] = "൮", ["९"] = "൯",
		
		["ॐ"] = "ഓമ്",
	},
	["Modi"] = {
		["क"] = "𑘎", ["ख"] = "𑘏", ["ग"] = "𑘐", ["घ"] = "𑘑", ["ङ"] = "𑘒", 
		["च"] = "𑘓", ["छ"] = "𑘔", ["ज"] = "𑘕", ["झ"] = "𑘖", ["ञ"] = "𑘗", 
		["ट"] = "𑘘", ["ठ"] = "𑘙", ["ड"] = "𑘚", ["ढ"] = "𑘛", ["ण"] = "𑘜", 
		["त"] = "𑘝", ["थ"] = "𑘞", ["द"] = "𑘟", ["ध"] = "𑘠", ["न"] = "𑘡", 
		["प"] = "𑘢", ["फ"] = "𑘣", ["ब"] = "𑘤", ["भ"] = "𑘥", ["म"] = "𑘦", 
		["य"] = "𑘧", ["र"] = "𑘨", ["ल"] = "𑘩", ["व"] = "𑘪", ["ळ"] = "𑘯", 
		["श"] = "𑘫", ["ष"] = "𑘬", ["स"] = "𑘭", ["ह"] = "𑘮",
		
		["अ"] = "𑘀", ["आ"] = "𑘁", ["इ"] = "𑘂", ["ई"] = "𑘃", ["उ"] = "𑘄", ["ऊ"] = "𑘅", ["ऋ"] = "𑘆", ["ॠ"] = "𑘇",
		["ऌ"] = "𑘈", ["ॡ"] = "𑘉", ["ए"] = "𑘊", ["ऐ"] = "𑘋", ["ओ"] = "𑘌", ["औ"] = "𑘍",
		
		["ा"] = "𑘰", ["ि"] = "𑘱", ["ी"] = "𑘲", ["ु"] = "𑘳", ["ू"] = "𑘴", ["ृ"] = "𑘵", ["ॄ"] = "𑘶", 
		["ॢ"] = "𑘷", ["ॣ"] = "𑘸", ["े"] = "𑘹", ["ै"] = "𑘺", ["ो"] = "𑘻", ["ौ"] = "𑘼",  ["्"] = "𑘿",
		
		["ं"] = "𑘽", ["ः"] = "𑘾",  -- ["ँ"] = "ँ", ["ऽ"] = "ऽ",
		
		["०"] = "𑙐", ["१"] = "𑙑", ["२"] = "𑙒", ["३"] = "𑙓", ["४"] = "𑙔", ["५"] = "𑙕", ["६"] = "𑙖", ["७"] = "𑙗", ["८"] = "𑙘", ["९"] = "𑙙",
		
		["॥"] = "𑙂", ["।"] = "𑙁",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "𑘌𑘦𑘿",
	},
	["Orya"] = {
		["क"] = "କ", ["ख"] = "ଖ", ["ग"] = "ଗ", ["घ"] = "ଘ", ["ङ"] = "ଙ", 
		["च"] = "ଚ", ["छ"] = "ଛ", ["ज"] = "ଜ", ["झ"] = "ଝ", ["ञ"] = "ଞ", 
		["ट"] = "ଟ", ["ठ"] = "ଠ", ["ड"] = "ଡ", ["ढ"] = "ଢ", ["ण"] = "ଣ", 
		["त"] = "ତ", ["थ"] = "ଥ", ["द"] = "ଦ", ["ध"] = "ଧ", ["न"] = "ନ", 
		["प"] = "ପ", ["फ"] = "ଫ", ["ब"] = "ବ", ["भ"] = "ଭ", ["म"] = "ମ", 
		["य"] = "ଯ", ["र"] = "ର", ["ल"] = "ଲ", ["व"] = "ଵ", ["ळ"] = "ଳ", 
		["श"] = "ଶ", ["ष"] = "ଷ", ["स"] = "ସ", ["ह"] = "ହ",
		
		["अ"] = "ଅ", ["आ"] = "ଆ", ["इ"] = "ଇ", ["ई"] = "ଈ", ["उ"] = "ଉ", ["ऊ"] = "ଊ", ["ऋ"] = "ଋ", ["ॠ"] = "ୠ",
		["ऌ"] = "ଌ", ["ॡ"] = "ୡ", ["ए"] = "ଏ", ["ऐ"] = "ଐ", ["ओ"] = "ଓ", ["औ"] = "ଔ",
		
		["ा"] = "ା", ["ि"] = "ି", ["ी"] = "ୀ", ["ु"] = "ୁ", ["ू"] = "ୂ", ["ृ"] = "ୃ", ["ॄ"] = "ୄ", 
		["ॢ"] = "ୢ", ["ॣ"] = "ୣ", ["े"] = "େ", ["ै"] = "ୈ", ["ो"] = "ୋ", ["ौ"] = "ୌ",  ["्"] = "୍",
		
		["ँ"] = "ଁ", ["ं"] = "ଂ", ["ः"] = "ଃ", ["ऽ"] = "ଽ",
		
		["०"] = "୦", ["१"] = "୧", ["२"] = "୨", ["३"] = "୩", ["४"] = "୪", ["५"] = "୫", ["६"] = "୬", ["७"] = "୭", ["८"] = "୮", ["९"] = "୯",
		
		-- ["॥"] = "॥", ["।"] = "।",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "ଓମ୍",
	},
	["Kthi"] = {
		["क"] = "𑂍", ["ख"] = "𑂎", ["ग"] = "𑂏", ["घ"] = "𑂐", ["ङ"] = "𑂑", 
		["च"] = "𑂒", ["छ"] = "𑂓", ["ज"] = "𑂔", ["झ"] = "𑂕", ["ञ"] = "𑂖", 
		["ट"] = "𑂗", ["ठ"] = "𑂘", ["ड"] = "𑂙", ["ढ"] = "𑂛", ["ण"] = "𑂝", 
		["त"] = "𑂞", ["थ"] = "𑂟", ["द"] = "𑂠", ["ध"] = "𑂡", ["न"] = "𑂢", 
		["प"] = "𑂣", ["फ"] = "𑂤", ["ब"] = "𑂥", ["भ"] = "𑂦", ["म"] = "𑂧", 
		["य"] = "𑂨", ["र"] = "𑂩", ["ल"] = "𑂪", ["व"] = "𑂫", ["ळ"] = "", 
		["श"] = "𑂬", ["ष"] = "𑂭", ["स"] = "𑂮", ["ह"] = "𑂯",
		
		["अ"] = "𑂃", ["आ"] = "𑂄", ["इ"] = "𑂅", ["ई"] = "𑂆", ["उ"] = "𑂇", ["ऊ"] = "𑂈", ["ऋ"] = "𑂩𑂱", ["ॠ"] = "",
		["ऌ"] = "", ["ॡ"] = "", ["ए"] = "𑂉", ["ऐ"] = "𑂊", ["ओ"] = "𑂋", ["औ"] = "𑂌",
		
		["ा"] = "𑂰", ["ि"] = "𑂱", ["ी"] = "𑂲", ["ु"] = "𑂳", ["ू"] = "𑂴", ["ृ"] = "𑃂", ["ॄ"] = "", 
		["ॢ"] = "", ["ॣ"] = "", ["े"] = "𑂵", ["ै"] = "𑂶", ["ो"] = "𑂷", ["ौ"] = "𑂸",  ["्"] = "𑂹",
		
		["ँ"] = "𑂀", ["ं"] = "𑂁", ["ः"] = "𑂂",
		
		["॥"] = "𑃁", ["।"] = "𑃀",
	},
	["Takr"] = {
		["क"] = "𑚊", ["ख"] = "𑚋", ["ग"] = "𑚌", ["घ"] = "𑚍", ["ङ"] = "𑚎", 
		["च"] = "𑚏", ["छ"] = "𑚐", ["ज"] = "𑚑", ["झ"] = "𑚒", ["ञ"] = "𑚓", 
		["ट"] = "𑚔", ["ठ"] = "𑚕", ["ड"] = "𑚖", ["ढ"] = "𑚗", ["ण"] = "𑚘", 
		["त"] = "𑚙", ["थ"] = "𑚚", ["द"] = "𑚛", ["ध"] = "𑚜", ["न"] = "𑚝", 
		["प"] = "𑚞", ["फ"] = "𑚟", ["ब"] = "𑚠", ["भ"] = "𑚡", ["म"] = "𑚢", 
		["य"] = "𑚣", ["र"] = "𑚤", ["ल"] = "𑚥", ["व"] = "𑚦", ["ळ"] = "", 
		["श"] = "𑚧", ["ष"] = "", ["स"] = "𑚨", ["ह"] = "𑚩",
		
		["अ"] = "𑚀", ["आ"] = "𑚁", ["इ"] = "𑚂", ["ई"] = "𑚃", ["उ"] = "𑚄", ["ऊ"] = "𑚅", ["ऋ"] = "", ["ॠ"] = "",
		["ऌ"] = "", ["ॡ"] = "", ["ए"] = "𑚆", ["ऐ"] = "𑚇", ["ओ"] = "𑚈", ["औ"] = "𑚉",
		
		["ा"] = "𑚭", ["ि"] = "𑚮", ["ी"] = "𑚯", ["ु"] = "𑚰", ["ू"] = "𑚱", ["ृ"] = "", ["ॄ"] = "", 
		["ॢ"] = "", ["ॣ"] = "", ["े"] = "𑚲", ["ै"] = "𑚳", ["ो"] = "𑚴", ["ौ"] = "𑚵",  ["्"] = "𑚶",
		
		["ँ"] = "", ["ं"] = "𑚫", ["ः"] = "𑚬",
		
		["०"] = "𑛀", ["१"] = "𑛁", ["२"] = "𑛂", ["३"] = "𑛃", ["४"] = "𑛄", ["५"] = "𑛅", ["६"] = "𑛆", ["७"] = "𑛇", ["८"] = "𑛈", ["९"] = "𑛉",
	},
	["Mymr"] = {
		["क"] = "က", ["ख"] = "ခ", ["ग"] = "ဂ", ["घ"] = "ဃ", ["ङ"] = "င", 
		["च"] = "စ", ["छ"] = "ဆ", ["ज"] = "ဇ", ["झ"] = "ဈ", ["ञ"] = "ဉ", 
		["ट"] = "ဋ", ["ठ"] = "ဌ", ["ड"] = "ဍ", ["ढ"] = "ဎ", ["ण"] = "ဏ", 
		["त"] = "တ", ["थ"] = "ထ", ["द"] = "ဒ", ["ध"] = "ဓ", ["न"] = "န", 
		["प"] = "ပ", ["फ"] = "ဖ", ["ब"] = "ဗ", ["भ"] = "ဘ", ["म"] = "မ", 
		["य"] = "ယ", ["र"] = "ရ", ["ल"] = "လ", ["व"] = "ဝ", ["ळ"] = "ဠ", 
		["श"] = "ၐ", ["ष"] = "ၑ", ["स"] = "သ", ["ह"] = "ဟ",
		
		["अ"] = "အ", ["आ"] = "အာ", ["इ"] = "ဣ", ["ई"] = "ဤ", ["उ"] = "ဥ", ["ऊ"] = "ဦ", ["ऋ"] = "ၒ", ["ॠ"] = "ၓ",
		["ऌ"] = "ၔ", ["ॡ"] = "ၕ", ["ए"] = "ဧ", ["ऐ"] = "အဲ", ["ओ"] = "ဩ", ["औ"] = "ဪ",
		
		["ा"] = "ာ", ["ि"] = "ိ", ["ी"] = "ီ", ["ु"] = "ု", ["ू"] = "ူ", ["ृ"] = "ၖ", ["ॄ"] = "ၗ", 
		["ॢ"] = "ၘ", ["ॣ"] = "ၙ", ["े"] = "ေ", ["ै"] = "ဲ", ["ो"] = "ော", ["ौ"] = "ော်",  ["्"] = "္",
		
		--["ँ"] = "ઁ", 
		["ं"] = "ံ", ["ः"] = "း", ["ऽ"] = "'",
		
		["०"] = "႐", ["१"] = "႑", ["२"] = "႒", ["३"] = "႓", ["४"] = "႔", ["५"] = "႕", ["६"] = "႖", ["७"] = "႗", ["८"] = "႘", ["९"] = "႙",
		
		["॥"] = "။", ["।"] = "၊",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "ဥုံ",
	},
	["Shrd"] = {
		["क"] = "𑆑", ["ख"] = "𑆒", ["ग"] = "𑆓", ["घ"] = "𑆔", ["ङ"] = "𑆕", 
		["च"] = "𑆖", ["छ"] = "𑆗", ["ज"] = "𑆘", ["झ"] = "𑆙", ["ञ"] = "𑆚", 
		["ट"] = "𑆛", ["ठ"] = "𑆜", ["ड"] = "𑆝", ["ढ"] = "𑆞", ["ण"] = "𑆟", 
		["त"] = "𑆠", ["थ"] = "𑆡", ["द"] = "𑆢", ["ध"] = "𑆣", ["न"] = "𑆤", 
		["प"] = "𑆥", ["फ"] = "𑆦", ["ब"] = "𑆧", ["भ"] = "𑆨", ["म"] = "𑆩", 
		["य"] = "𑆪", ["र"] = "𑆫", ["ल"] = "𑆬", ["व"] = "𑆮", ["ळ"] = "𑆭", 
		["श"] = "𑆯", ["ष"] = "𑆰", ["स"] = "𑆱", ["ह"] = "𑆲",
		
		["अ"] = "𑆃", ["आ"] = "𑆄", ["इ"] = "𑆅", ["ई"] = "𑆆", ["उ"] = "𑆇", ["ऊ"] = "𑆈", ["ऋ"] = "𑆉", ["ॠ"] = "𑆊",
		["ऌ"] = "𑆋", ["ॡ"] = "𑆌", ["ए"] = "𑆍", ["ऐ"] = "𑆎", ["ओ"] = "𑆏", ["औ"] = "𑆐",
		
		["ा"] = "𑆳", ["ि"] = "𑆴", ["ी"] = "𑆵", ["ु"] = "𑆶", ["ू"] = "𑆷", ["ृ"] = "𑆸", ["ॄ"] = "𑆹", 
		["ॢ"] = "𑆺", ["ॣ"] = "𑆻", ["े"] = "𑆼", ["ै"] = "𑆽", ["ो"] = "𑆾", ["ौ"] = "𑆿",  ["्"] = "𑇀",
		
		["ँ"] = "𑆀", ["ं"] = "𑆁", ["ः"] = "𑆂", ["ऽ"] = "𑇁",
		
		["०"] = "𑇐", ["१"] = "𑇑", ["२"] = "𑇒", ["३"] = "𑇓", ["४"] = "𑇔", ["५"] = "𑇕", ["६"] = "𑇖", ["७"] = "𑇗", ["८"] = "𑇘", ["९"] = "𑇙",
		
		["॥"] = "𑇆", ["।"] = "𑇅",
		
		["ᳵ"] = "𑇂", ["ᳶ"] = "𑇃",
		
		["ॐ"] = "𑆏𑆀",
	},
	["Sidd"] = {
		["क"] = "𑖎", ["ख"] = "𑖏", ["ग"] = "𑖐", ["घ"] = "𑖑", ["ङ"] = "𑖒", 
		["च"] = "𑖓", ["छ"] = "𑖔", ["ज"] = "𑖕", ["झ"] = "𑖖", ["ञ"] = "𑖗", 
		["ट"] = "𑖘", ["ठ"] = "𑖙", ["ड"] = "𑖚", ["ढ"] = "𑖛", ["ण"] = "𑖜", 
		["त"] = "𑖝", ["थ"] = "𑖞", ["द"] = "𑖟", ["ध"] = "𑖠", ["न"] = "𑖡", 
		["प"] = "𑖢", ["फ"] = "𑖣", ["ब"] = "𑖤", ["भ"] = "𑖥", ["म"] = "𑖦", 
		["य"] = "𑖧", ["र"] = "𑖨", ["ल"] = "𑖩", ["व"] = "𑖪", -- ["ळ"] = "ळ", 
		["श"] = "𑖫", ["ष"] = "𑖬", ["स"] = "𑖭", ["ह"] = "𑖮",
		
		["अ"] = "𑖀", ["आ"] = "𑖁", ["इ"] = "𑖂", ["ई"] = "𑖃", ["उ"] = "𑖄", ["ऊ"] = "𑖅", ["ऋ"] = "𑖆", ["ॠ"] = "𑖇",
		["ऌ"] = "𑖈", ["ॡ"] = "𑖉", ["ए"] = "𑖊", ["ऐ"] = "𑖋", ["ओ"] = "𑖌", ["औ"] = "𑖍",
		
		["ा"] = "𑖯", ["ि"] = "𑖰", ["ी"] = "𑖱", ["ु"] = "𑖲", ["ू"] = "𑖳", ["ृ"] = "𑖴", ["ॄ"] = "𑖵", 
		["े"] = "𑖸", ["ै"] = "𑖹", ["ो"] = "𑖺", ["ौ"] = "𑖻",  ["्"] = "𑖿", -- ["ॢ"] = "ૢ", ["ॣ"] = "ૣ"
		
		["ँ"] = "𑖼", ["ं"] = "𑖽", ["ः"] = "𑖾", -- ["ऽ"] = "ઽ",
		
		-- ["०"] = "०", ["१"] = "१", ["२"] = "२", ["३"] = "३", ["४"] = "४", ["५"] = "५", ["६"] = "६", ["७"] = "७", ["८"] = "८", ["९"] = "९",
		
		["॥"] = "𑗃", ["।"] = "𑗂",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "𑖌𑖼",
	},
	["Sinh"] = {
		["क"] = "ක", ["ख"] = "ඛ", ["ग"] = "ග", ["घ"] = "ඝ", ["ङ"] = "ඞ", 
		["च"] = "ච", ["छ"] = "ඡ", ["ज"] = "ජ", ["झ"] = "ඣ", ["ञ"] = "ඤ", 
		["ट"] = "ට", ["ठ"] = "ඨ", ["ड"] = "ඩ", ["ढ"] = "ඪ", ["ण"] = "ණ", 
		["त"] = "ත", ["थ"] = "ථ", ["द"] = "ද", ["ध"] = "ධ", ["न"] = "න", 
		["प"] = "ප", ["फ"] = "ඵ", ["ब"] = "බ", ["भ"] = "භ", ["म"] = "ම", 
		["य"] = "ය", ["र"] = "ර", ["ल"] = "ල", ["व"] = "ව", ["ळ"] = "ළ", 
		["श"] = "ශ", ["ष"] = "ෂ", ["स"] = "ස", ["ह"] = "හ",
		
		["अ"] = "අ", ["आ"] = "ආ", ["इ"] = "ඉ", ["ई"] = "ඊ", ["उ"] = "උ", ["ऊ"] = "ඌ", ["ऋ"] = "ඍ", ["ॠ"] = "ඎ",
		["ऌ"] = "ඏ", ["ॡ"] = "ඐ", ["ए"] = "එ", ["ऐ"] = "ඓ", ["ओ"] = "ඔ", ["औ"] = "ඖ",
		
		["ा"] = "ා", ["ि"] = "ි", ["ी"] = "ී", ["ु"] = "ු", ["ू"] = "ූ", ["ृ"] = "ෘ", ["ॄ"] = "ෲ", 
		["ॢ"] = "ෟ", ["ॣ"] = "ෳ", ["े"] = "ෙ", ["ै"] = "ෛ", ["ो"] = "ො", ["ौ"] = "ෞ",  ["्"] = "්",
		
		["ँ"] = "ഁ", ["ं"] = "ං", ["ः"] = "ඃ", ["ऽ"] = "",
		
		["०"] = "෦", ["१"] = "෧", ["२"] = "෨", ["३"] = "෩", ["४"] = "෪", ["५"] = "෫", ["६"] = "෬", ["७"] = "෭", ["८"] = "෮", ["९"] = " ්",
		
		-- ["॥"] = "॥", ["।"] = "।",
		
		-- ["ᳵ"] = "", ["ᳶ"] = "",
		
		["ॐ"] = "ඕම්",
	},
	["Guru"] = {
		["क"] = "ਕ", ["ख"] = "ਖ", ["ग"] = "ਗ", ["घ"] = "ਘ", ["ङ"] = "ਙ", 
		["च"] = "ਚ", ["छ"] = "ਛ", ["ज"] = "ਜ", ["झ"] = "ਝ", ["ञ"] = "ਞ", 
		["ट"] = "ਟ", ["ठ"] = "ਠ", ["ड"] = "ਡ", ["ढ"] = "ਢ", ["ण"] = "ਣ", 
		["त"] = "ਤ", ["थ"] = "ਥ", ["द"] = "ਦ", ["ध"] = "ਧ", ["न"] = "ਨ", 
		["प"] = "ਪ", ["फ"] = "ਫ", ["ब"] = "ਬ", ["भ"] = "ਭ", ["म"] = "ਮ", 
		["य"] = "ਯ", ["र"] = "ਰ", ["ल"] = "ਲ", ["व"] = "ਵ", ["ळ"] = "ਲ਼", 
		["श"] = "ਸ਼", ["ष"] = "ਸ਼", ["स"] = "ਸ", ["ह"] = "ਹ",
		
		["अ"] = "ਅ", ["आ"] = "ਆ", ["इ"] = "ਇ", ["ई"] = "ਈ", ["उ"] = "ਉ", ["ऊ"] = "ਊ", ["ऋ"] = "ਰ", ["ॠ"] = "ਰ",
		["ऌ"] = "ਲ", ["ॡ"] = "ਲ", ["ए"] = "ਏ", ["ऐ"] = "ਐ", ["ओ"] = "ਓ", ["औ"] = "ਔ",
		
		["ा"] = "ਾ", ["ि"] = "ਿ", ["ी"] = "ੀ", ["ु"] = "ੁ", ["ू"] = "ੂ", ["ृ"] = "੍ਹ", ["ॄ"] = "ୄ", 
		["ॢ"] = "ୢ", ["ॣ"] = "ୣ", ["े"] = "ੇ", ["ै"] = "ੈ", ["ो"] = "ੋ", ["ौ"] = "ੌ",  ["्"] = "ੑ",
		
		["ँ"] = "ਁ", ["ं"] = "ਂ", ["ः"] = "ਃ", -- ["ऽ"] = "ऽ",
		
		["०"] = "੦", ["१"] = "੧", ["२"] = "੨", ["३"] = "੩", ["४"] = "੪", ["५"] = "੫", ["६"] = "੬", ["७"] = "੭", ["८"] = "੮", ["९"] = "੯",
		
		-- ["॥"] = "॥", ["।"] = "।",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "ੴ",		
	},
	["Gran"] = {
		["क"] = "𑌕", ["ख"] = "𑌖", ["ग"] = "𑌗", ["घ"] = "𑌘", ["ङ"] = "𑌙", 
		["च"] = "𑌚", ["छ"] = "𑌛", ["ज"] = "𑌜", ["झ"] = "𑌝", ["ञ"] = "𑌞", 
		["ट"] = "𑌟", ["ठ"] = "𑌠", ["ड"] = "𑌡", ["ढ"] = "𑌢", ["ण"] = "𑌣", 
		["त"] = "𑌤", ["थ"] = "𑌥", ["द"] = "𑌦", ["ध"] = "𑌧", ["न"] = "𑌨", 
		["प"] = "𑌪", ["फ"] = "𑌫", ["ब"] = "𑌬", ["भ"] = "𑌭", ["म"] = "𑌮", 
		["य"] = "𑌯", ["र"] = "𑌰", ["ल"] = "𑌲", ["ळ"] = "𑌳",  ["व"] = "𑌵",
		["श"] = "𑌶", ["ष"] = "𑌷", ["स"] = "𑌸", ["ह"] = "𑌹",
		
		["अ"] = "𑌅", ["आ"] = "𑌆", ["इ"] = "𑌇", ["ई"] = "𑌈", ["उ"] = "𑌉", ["ऊ"] = "𑌊", ["ऋ"] = "𑌋", ["ॠ"] = "𑍠",
		["ऌ"] = "𑌌",  ["ॡ"] = "𑍡", ["ए"] = "𑌏", ["ऐ"] = "𑌐", ["ओ"] = "𑌓", ["औ"] = "𑌔",
		
		["ा"] = "𑌾", ["ि"] = "𑌿", ["ी"] = "𑍀", ["ु"] = "𑍁", ["ू"] = "𑍂", ["ृ"] = "𑍃", ["ॄ"] = "𑍄", 
	["े"] = "𑍇", ["ै"] = "𑍈", ["ो"] = "𑍋", ["ौ"] = "𑍌",  ["्"] = "𑍍", ["ॢ"] = "𑍢", ["ॣ"] = "𑍣", 
		
		["ँ"] = "𑌁", ["ं"] = "𑌂", ["ः"] = "𑌃", ["ऽ"] = "𑌽",
		
		["०"] = "௦", ["१"] = "௧", ["२"] = "௨", ["३"] = "௩", ["४"] = "௪", ["५"] = "௫", ["६"] = "௬", ["७"] = "௭", ["८"] = "௮", ["९"] = "௯",
		
		-- ["॥"] = "॥", ["।"] = "।",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "𑍐",
	},
	["Taml"] = {
		["क"] = "க", ["ख"] = "க²", ["ग"] = "க³", ["घ"] = "க⁴", ["ङ"] = "ங", 
		["च"] = "ச", ["छ"] = "ச²", ["ज"] = "ஜ", ["झ"] = "ஜ²", ["ञ"] = "ஞ", 
		["ट"] = "ட", ["ठ"] = "ட²", ["ड"] = "ட³", ["ढ"] = "ட⁴", ["ण"] = "ண", 
		["त"] = "த", ["थ"] = "த²", ["द"] = "த³", ["ध"] = "த⁴", ["न"] = "ந", 
		["प"] = "ப", ["फ"] = "ப²", ["ब"] = "ப³", ["भ"] = "ப⁴", ["म"] = "ம", 
		["य"] = "ய", ["र"] = "ர", ["ल"] = "ல", ["ळ"] = "ள",  ["व"] = "வ",
		["श"] = "ஶ", ["ष"] = "ஷ", ["स"] = "ஸ", ["ह"] = "ஹ",
		
		["अ"] = "அ", ["आ"] = "ஆ", ["इ"] = "இ", ["ई"] = "ஈ", ["उ"] = "உ", ["ऊ"] = "ஊ", ["ऋ"] = "ரி", ["ॠ"] = "ரி",
		["ऌ"] = "லி",  ["ॡ"] = "லி", ["ए"] = "ஏ", ["ऐ"] = "ஐ", ["ओ"] = "ஓ", ["औ"] = "ஔ",
		
		["ा"] = "ா", ["ि"] = "ி", ["ी"] = "ீ", ["ु"] = "ு", ["ू"] = "ூ", ["ृ"] = "்ரி", ["ॄ"] = "்ரி", 
	["े"] = "ே", ["ै"] = "ை", ["ो"] = "ோ", ["ौ"] = "ௌ",  ["्"] = "்", ["ॢ"] = "்லி", ["ॣ"] = "்லி", 
		
		["ँ"] = "ஂ", ["ं"] = "ஂ", ["ः"] = u(0x11303), ["ऽ"] = "𑌽",
		
		["०"] = "௦", ["१"] = "௧", ["२"] = "௨", ["३"] = "௩", ["४"] = "௪", ["५"] = "௫", ["६"] = "௬", ["७"] = "௭", ["८"] = "௮", ["९"] = "௯",
		
		-- ["॥"] = "॥", ["।"] = "।",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "ௐ",
	},
	["Thai"] = {
		["क"] = "ก", ["ख"] = "ข", ["ग"] = "ค", ["घ"] = "ฆ", ["ङ"] = "ง", 
		["च"] = "จ", ["छ"] = "ฉ", ["ज"] = "ช", ["झ"] = "ฌ", ["ञ"] = "ญ", 
		["ट"] = "ฏ", ["ठ"] = "ฐ", ["ड"] = "ฑ", ["ढ"] = "ฒ", ["ण"] = "ณ", 
		["त"] = "ต", ["थ"] = "ถ", ["द"] = "ท", ["ध"] = "ธ", ["न"] = "น", 
		["प"] = "ป", ["फ"] = "ผ", ["ब"] = "พ", ["भ"] = "ภ", ["म"] = "ม", 
		["य"] = "ย", ["र"] = "ร", ["ल"] = "ล", ["व"] = "ว",  ["ळ"] = "ฬ", 
		["श"] = "ศ", ["ष"] = "ษ", ["स"] = "ส", ["ह"] = "ห",
		
		["अ"] = "อ", ["आ"] = "อา", ["इ"] = "อิ", ["ई"] = "อี", ["उ"] = "อุ", ["ऊ"] = "อู", ["ऋ"] = "ฤ", ["ॠ"] = "ฤๅ",
		["ऌ"] = "ฦ", ["ॡ"] = "ฦๅ", ["ए"] = "อ↶เ", ["ऐ"] = "อ↶ไ", ["ओ"] = "อ↶โ", ["औ"] = "อ↶เา",
		
		["ा"] = "า", ["ि"] = "ิ", ["ी"] = "ี", ["ु"] = "ุ", ["ू"] = "ู", ["ृ"] = "ฺฤ", ["ॄ"] = "ฺฤๅ", 
		["ॢ"] = "ฺฦ", ["ॣ"] = "ฺฦๅ", ["े"] = "↶เ", ["ै"] = "↶ไ", ["ो"] = "↶โ", ["ौ"] = "↶เา",  ["्"] = "ฺ",
		
		["ँ"] = "̐", ["ं"] = "ํ", ["ः"] = "ะ", ["ऽ"] = "-",
		
		["०"] = "๐", ["१"] = "๑", ["२"] = "๒", ["३"] = "๓", ["४"] = "๔", ["५"] = "๕", ["६"] = "๖", ["७"] = "๗", ["८"] = "๘", ["९"] = "๙",
		
		["॥"] = "๚", ["।"] = "ฯ",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "โอํ",
	},
	["Laoo"] = {
		["क"] = "ກ", ["ख"] = "ຂ", ["ग"] = "ຄ", ["घ"] = "ຆ", ["ङ"] = "ງ", 
		["च"] = "ຈ", ["छ"] = "ຉ", ["ज"] = "ຊ", ["झ"] = "ຌ", ["ञ"] = "ຎ", 
		["ट"] = "ຏ", ["ठ"] = "ຐ", ["ड"] = "ຑ", ["ढ"] = "ຒ", ["ण"] = "ຓ", 
		["त"] = "ຕ", ["थ"] = "ຖ", ["द"] = "ທ", ["ध"] = "ຘ", ["न"] = "ນ", 
		["प"] = "ປ", ["फ"] = "ຜ", ["ब"] = "ພ", ["भ"] = "ຠ", ["म"] = "ມ", 
		["य"] = "ຍ", ["र"] = "ຣ", ["ल"] = "ລ", ["व"] = "ວ",  ["ळ"] = "ຬ", 
		["श"] = "ຨ", ["ष"] = "ຩ", ["स"] = "ສ", ["ह"] = "ຫ",
		
		["अ"] = "ອ", ["आ"] = "ອາ", ["इ"] = "ອິ", ["ई"] = "ອີ", ["उ"] = "ອຸ", ["ऊ"] = "ອູ", ["ऋ"] = "ຣິ", ["ॠ"] = "ຣີ",
		["ऌ"] = "ລິ", ["ॡ"] = "ລີ", ["ए"] = "ອ↶ເ", ["ऐ"] = "ອ↶ໄ", ["ओ"] = "ອ↶ໂ", ["औ"] = "ອ↶ເົາ",
		
		["ा"] = "າ", ["ि"] = "ິ", ["ी"] = "ີ", ["ु"] = "ຸ", ["ू"] = "ູ", ["ृ"] = "຺ຣິ", ["ॄ"] = "຺ຣີ", 
		["ॢ"] = "຺ລິ", ["ॣ"] = "຺ລີ", ["े"] = "↶ເ", ["ै"] = "↶ໄ", ["ो"] = "↶ໂ", ["ौ"] = "↶ເົາ",  ["्"] = "຺",
		
		["ँ"] = "̐", ["ं"] = "ໍ", ["ः"] = "ະ", ["ऽ"] = "-",
		
		["०"] = "໐", ["१"] = "໑", ["२"] = "໒", ["३"] = "໓", ["४"] = "໔", ["५"] = "໕", ["६"] = "໖", ["७"] = "໗", ["८"] = "໘", ["९"] = "໙",
		
		["॥"] = "ຯຯ", ["।"] = "ຯ",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "ໂອໍ",
	},
	["Khmr"] = {
		["क"] = "ក", ["ख"] = "ខ", ["ग"] = "គ", ["घ"] = "ឃ", ["ङ"] = "ង", 
		["च"] = "ច", ["छ"] = "ឆ", ["ज"] = "ជ", ["झ"] = "ឈ", ["ञ"] = "ញ", 
		["ट"] = "ដ", ["ठ"] = "ឋ", ["ड"] = "ឌ", ["ढ"] = "ឍ", ["ण"] = "ណ", 
		["त"] = "ត", ["थ"] = "ថ", ["द"] = "ទ", ["ध"] = "ធ", ["न"] = "ន", 
		["प"] = "ប", ["फ"] = "ផ", ["ब"] = "ព", ["भ"] = "ភ", ["म"] = "ម", 
		["य"] = "យ", ["र"] = "រ", ["ल"] = "ល", ["व"] = "វ",  ["ळ"] = "ឡ", 
		["श"] = "ឝ", ["ष"] = "ឞ", ["स"] = "ស", ["ह"] = "ហ",
		
		["अ"] = "អ", ["आ"] = "អា", ["इ"] = "ឥ", ["ई"] = "ឦ", ["उ"] = "ឧ", ["ऊ"] = "ឩ", ["ऋ"] = "ឫ", ["ॠ"] = "ឬ",
		["ऌ"] = "ឭ", ["ॡ"] = "ឮ", ["ए"] = "ឯ", ["ऐ"] = "ឰ", ["ओ"] = "ឱ", ["औ"] = "ឳ",
		
		["ा"] = "ា", ["ि"] = "ិ", ["ी"] = "ី", ["ु"] = "ុ", ["ू"] = "ូ", ["ृ"] = "្ឫ", ["ॄ"] = "្ឬ", 
		["ॢ"] = "្ឭ", ["ॣ"] = "្ឮ", ["े"] = "េ", ["ै"] = "ៃ", ["ो"] = "ោ", ["ौ"] = "ៅ",  ["्"] = "្",
		
		["ँ"] = "̐", ["ं"] = "ំ", ["ः"] = "ះ", ["ऽ"] = "ៜ",
		
		["०"] = "០", ["१"] = "១", ["२"] = "២", ["३"] = "៣", ["४"] = "៤", ["५"] = "៥", ["६"] = "៦", ["७"] = "៧", ["८"] = "៨", ["९"] = "៩",
		
		["॥"] = "៕", ["।"] = "។",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "ឱំ",
	},
	["Tibt"] = {
		["क"] = "ཀ", ["ख"] = "ཁ", ["ग"] = "ག", ["घ"] = "གྷ", ["ङ"] = "ང", 
		["च"] = "ཙ", ["छ"] = "ཚ", ["ज"] = "ཛ", ["झ"] = "ཛྷ", ["ञ"] = "ཉ", 
		["ट"] = "ཊ", ["ठ"] = "ཋ", ["ड"] = "ཌ", ["ढ"] = "ཌྷ", ["ण"] = "ཎ", 
		["त"] = "ཏ", ["थ"] = "ཐ", ["द"] = "ད", ["ध"] = "དྷ", ["न"] = "ན", 
		["प"] = "པ", ["फ"] = "ཕ", ["ब"] = "བ", ["भ"] = "བྷ", ["म"] = "མ", 
		["य"] = "ཡ", ["र"] = "ར", ["ल"] = "ལ", ["व"] = "ཝ",  -- ["ळ"] = "ळ", 
		["श"] = "ཤ", ["ष"] = "ཥ", ["स"] = "ས", ["ह"] = "ཧ",
		
		["अ"] = "ཨ", ["आ"] = "ཨཱ", ["इ"] = "ཨི", ["ई"] = "ཨཱི", ["उ"] = "ཨུ", ["ऊ"] = "ཨཱུ", ["ऋ"] = "རྀ", ["ॠ"] = "རཱྀ",
		["ऌ"] = "ལྀ", ["ॡ"] = "ལཱྀ", ["ए"] = "ཨེ", ["ऐ"] = "ཨཻ", ["ओ"] = "ཨོ", ["औ"] = "ཨཽ",
		
		["ा"] = "ཱ", ["ि"] = "ི", ["ी"] = "ཱི", ["ु"] = "ུ", ["ू"] = "ཱུ", ["ृ"] = "ྲྀ", ["ॄ"] = "ྲཱྀ",
		["ॢ"] = "ླྀ", ["ॣ"] = "ཹ", ["े"] = "ེ", ["ै"] = "ཻ", ["ो"] = "ོ", ["ौ"] = "ཽ",  ["्"] = "྄", 
		
		["ँ"] = "ྃ", ["ं"] = "ཾ", ["ः"] = "ཿ", ["ऽ"] = "྅",
		
		["०"] = "༠", ["१"] = "༡", ["२"] = "༢", ["३"] = "༣", ["४"] = "༤", ["५"] = "༥", ["६"] = "༦", ["७"] = "༧", ["८"] = "༨", ["९"] = "༩",
		
		["॥"] = "༎", ["।"] = "།",
		
		["ᳵ"] = "ྈ", ["ᳶ"] = "ྉ",
		
		["ॐ"] = "ཨོཾ",
	},
	["Zanb"] = {
		["क्ष"] = "𑨲",
		["क"] = "𑨋", ["ख"] = "𑨌", ["ग"] = "𑨍", ["घ"] = "𑨎", ["ङ"] = "𑨏", 
		["च"] = "𑨣", ["छ"] = "𑨤", ["ज"] = "𑨥", ["झ"] = "𑨦", ["ञ"] = "𑨓", 
		["ट"] = "𑨔", ["ठ"] = "𑨕", ["ड"] = "𑨖", ["ढ"] = "𑨗", ["ण"] = "𑨘", 
		["त"] = "𑨙", ["थ"] = "𑨚", ["द"] = "𑨛", ["ध"] = "𑨜", ["न"] = "𑨝", 
		["प"] = "𑨞", ["फ"] = "𑨟", ["ब"] = "𑨠", ["भ"] = "𑨡", ["म"] = "𑨢", 
		["य"] = "𑨪", ["र"] = "𑨫", ["ल"] = "𑨬", ["व"] = "𑨭",  -- ["ळ"] = "ळ", 
		["श"] = "𑨮", ["ष"] = "𑨯", ["स"] = "𑨰", ["ह"] = "𑨱",
		
		["अ"] = "𑨀", ["आ"] = "𑨀𑨊", ["इ"] = "𑨀𑨁", ["ई"] = "𑨀𑨁𑨊", ["उ"] = "𑨀𑨃", ["ऊ"] = "𑨀𑨃𑨊", ["ऋ"] = "𑨫𑨉", ["ॠ"] = "𑨫𑨉𑨊",
		["ऌ"] = "𑨬𑨉", ["ॡ"] = "𑨬𑨉𑨊", ["ए"] = "𑨀𑨄", ["ऐ"] = "𑨀𑨇", ["ओ"] = "𑨀𑨆", ["औ"] = "𑨀𑨈",
		
		["ा"] = "𑨊", ["ि"] = "𑨁", ["ी"] = "𑨁𑨊", ["ु"] = "𑨃", ["ू"] = "𑨃𑨊", ["ृ"] = "𑨼𑨉", ["ॄ"] = "𑨼𑨉𑨊",
		["ॢ"] = "𑨽𑨉", ["ॣ"] = "𑨽𑨉𑨊", ["े"] = "𑨄", ["ै"] = "𑨇", ["ो"] = "𑨆", ["ौ"] = "𑨈",  ["्"] = "𑨴", 
		
		["ँ"] = "𑨵", ["ं"] = "𑨸", ["ः"] = "𑨹", -- ["ऽ"] = "ऽ",
		
		-- ["०"] = "०", ["१"] = "१", ["२"] = "२", ["३"] = "३", ["४"] = "४", ["५"] = "५", ["६"] = "६", ["७"] = "७", ["८"] = "८", ["९"] = "९",
		
		["॥"] = "𑩃", ["।"] = "𑩂",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "𑨀𑨆𑨸",
	},
	["Soyo"] = {
		["क्ष"] = "𑪃",
		["क"] = "𑩜", ["ख"] = "𑩝", ["ग"] = "𑩞", ["घ"] = "𑩟", ["ङ"] = "𑩠", 
		["च"] = "𑩡", ["छ"] = "𑩢", ["ज"] = "𑩣", ["झ"] = "𑩤", ["ञ"] = "𑩥", 
		["ट"] = "𑩦", ["ठ"] = "𑩧", ["ड"] = "𑩨", ["ढ"] = "𑩩", ["ण"] = "𑩪", 
		["त"] = "𑩫", ["थ"] = "𑩬", ["द"] = "𑩭", ["ध"] = "𑩮", ["न"] = "𑩯", 
		["प"] = "𑩰", ["फ"] = "𑩱", ["ब"] = "𑩲", ["भ"] = "𑩳", ["म"] = "𑩴", 
		["य"] = "𑩻", ["र"] = "𑩼", ["ल"] = "𑩽", ["व"] = "𑩾",  -- ["ळ"] = "ळ", 
		["श"] = "𑩿", ["ष"] = "𑪀", ["स"] = "𑪁", ["ह"] = "𑪂",
		
		["अ"] = "𑩐", ["आ"] = "𑩐𑩛", ["इ"] = "𑩐𑩑", ["ई"] = "𑩐𑩑𑩛", ["उ"] = "𑩐𑩒", ["ऊ"] = "𑩐𑩒𑩛", ["ऋ"] = "𑩐𑩙", ["ॠ"] = "𑩐𑩙𑩛",
		["ऌ"] = "𑩐𑩚", ["ॡ"] = "𑩐𑩚𑩛", ["ए"] = "𑩐𑩔", ["ऐ"] = "𑩐𑩗", ["ओ"] = "𑩐𑩕", ["औ"] = "𑩐𑩘",
		
		["ा"] = "𑩛", ["ि"] = "𑩑", ["ी"] = "𑩑𑩛", ["ु"] = "𑩒", ["ू"] = "𑩒𑩛", ["ृ"] = "𑩙", ["ॄ"] = "𑩙𑩛",
		["ॢ"] = "𑩚", ["ॣ"] = "𑩚𑩛", ["े"] = "𑩔", ["ै"] = "𑩗", ["ो"] = "𑩕", ["ौ"] = "𑩘",  ["्"] = " 𑪙", 
		
		["ं"] = "𑪖", ["ः"] = "𑪗", -- ["ँ"] = "ँ", ["ऽ"] = "ऽ",
		
		-- ["०"] = "०", ["१"] = "१", ["२"] = "२", ["३"] = "३", ["४"] = "४", ["५"] = "५", ["६"] = "६", ["७"] = "७", ["८"] = "८", ["९"] = "९",
		
		["॥"] = "𑪜", ["।"] = "𑪛",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "𑩐𑩕𑪖",
	},
	["Newa"] = {
		["क"] = "𑐎", ["ख"] = "𑐏", ["ग"] = "𑐐", ["घ"] = "𑐑", ["ङ"] = "𑐒", 
		["च"] = "𑐔", ["छ"] = "𑐕", ["ज"] = "𑐖", ["झ"] = "𑐗", ["ञ"] = "𑐘", 
		["ट"] = "𑐚", ["ठ"] = "𑐛", ["ड"] = "𑐜", ["ढ"] = "𑐝", ["ण"] = "𑐞", 
		["त"] = "𑐟", ["थ"] = "𑐠", ["द"] = "𑐡", ["ध"] = "𑐢", ["न"] = "𑐣", 
		["प"] = "𑐥", ["फ"] = "𑐦", ["ब"] = "𑐧", ["भ"] = "𑐨", ["म"] = "𑐩", 
		["य"] = "𑐫", ["र"] = "𑐬", ["ल"] = "𑐮", ["व"] = "𑐰",  -- ["ळ"] = "ळ", 
		["श"] = "𑐱", ["ष"] = "𑐲", ["स"] = "𑐳", ["ह"] = "𑐴",
		
		["अ"] = "𑐀", ["आ"] = "𑐁", ["इ"] = "𑐂", ["ई"] = "𑐃", ["उ"] = "𑐄", ["ऊ"] = "𑐅", ["ऋ"] = "𑐆", ["ॠ"] = "𑐇",
		["ऌ"] = "𑐈", ["ॡ"] = "𑐉", ["ए"] = "𑐊", ["ऐ"] = "𑐋", ["ओ"] = "𑐌", ["औ"] = "𑐍",
		
		["ा"] = "𑐵", ["ि"] = "𑐶", ["ी"] = "𑐷", ["ु"] = "𑐸", ["ू"] = "𑐹", ["ृ"] = "𑐺", ["ॄ"] = "𑐻",
		["ॢ"] = "𑐼", ["ॣ"] = "𑐽", ["े"] = "𑐾", ["ै"] = "𑐿", ["ो"] = "𑑀", ["ौ"] = "𑑁",  ["्"] = "𑑂", 
		
		["ं"] = "𑑄", ["ः"] = "𑑅", ["ँ"] = "𑑃", ["ऽ"] = "𑑇",
		
		["०"] = "𑑐", ["१"] = "𑑑", ["२"] = "𑑒", ["३"] = "𑑓", ["४"] = "𑑔", ["५"] = "𑑕", ["६"] = "𑑖", ["७"] = "𑑗", ["८"] = "𑑘", ["९"] = "𑑙",
		
		["॥"] = "𑑌", ["।"] = "𑑋",
		
		["ᳵ"] = "𑑠", ["ᳶ"] = "𑑡",
		
		["ॐ"] = "𑑉",
	},
	["Nand"] = {
		["क"] = "𑦮", ["ख"] = "𑦯", ["ग"] = "𑦰", ["घ"] = "𑦱", ["ङ"] = "𑦲", 
		["च"] = "𑦳", ["छ"] = "𑦴", ["ज"] = "𑦵", ["झ"] = "𑦶", ["ञ"] = "𑦷", 
		["ट"] = "𑦸", ["ठ"] = "𑦹", ["ड"] = "𑦺", ["ढ"] = "𑦻", ["ण"] = "𑦼", 
		["त"] = "𑦽", ["थ"] = "𑦾", ["द"] = "𑦿", ["ध"] = "𑧀", ["न"] = "𑧁", 
		["प"] = "𑧂", ["फ"] = "𑧃", ["ब"] = "𑧄", ["भ"] = "𑧅", ["म"] = "𑧆", 
		["य"] = "𑧇", ["र"] = "𑧈", ["ल"] = "𑧉", ["व"] = "𑧊", ["ळ"] = "𑧏", 
		["श"] = "𑧋", ["ष"] = "𑧌", ["स"] = "𑧍", ["ह"] = "𑧎",
		
		["अ"] = "𑦠", ["आ"] = "𑦡", ["इ"] = "𑦢", ["ई"] = "𑦣", ["उ"] = "𑦤", ["ऊ"] = "𑦥", ["ऋ"] = "𑦦", ["ॠ"] = "𑦧",
		-- ["ऌ"] = "ऌ", ["ॡ"] = "ॡ",
		["ए"] = "𑦪", ["ऐ"] = "𑦫", ["ओ"] = "𑦬", ["औ"] = "𑦭",
		
		["ा"] = "𑧑", ["ि"] = "𑧒", ["ी"] = "𑧓", ["ु"] = "𑧔", ["ू"] = "𑧕", ["ृ"] = "𑧖", ["ॄ"] = "𑧗", 
		-- ["ॢ"] = "ૢ", ["ॣ"] = "ૣ",
		["े"] = "𑧚", ["ै"] = "𑧛", ["ो"] = "𑧜", ["ौ"] = "𑧝",  ["्"] = "𑧠",
		
		-- ["ँ"] = "ઁ",
		["ं"] = "𑧞", ["ः"] = "𑧟", ["ऽ"] = "𑧡",
		
		["०"] = "೦", ["१"] = "೧", ["२"] = "೨", ["३"] = "೩", ["४"] = "೪", ["५"] = "೫", ["६"] = "೬", ["७"] = "೭", ["८"] = "೮", ["९"] = "೯",
		
		-- ["॥"] = "॥", ["।"] = "।",
		
		-- ["ᳵ"] = "ᳵ", ["ᳶ"] = "ᳶ",
		
		["ॐ"] = "𑦬𑧞",
	},
}

-- Expressions for Myanmar rules
-- Certain consonants induce tall AA, unless an ascending superscript would
-- inhibit a ligature with round AA.
local rep = "္[က-ဇဉ-မလ-ဠ]"	-- Consonants less ဈ, ယ and ရ.  Subscript Mon ၛ would 
							-- also suppress condition for tall AA.
local mymr_low1=rep.."ေ?"
local mymr_low2=rep..rep.."ေ?"
local mymr_low3=rep..rep..rep.."ေ?"
local mymr_low4=rep..rep..rep..rep.."ေ?"

local function taml2pt(nukta, vowel, anu)
	local left = {['ா'] = '', ['ொ'] = 'ெ', ['ோ'] = 'ே', ['ௌ'] = 'ெ'}
	local right = {['ா'] = 'ா', ['ொ'] = 'ா', ['ோ'] = 'ா', ['ௌ'] = 'ௗ'}
	return left[vowel]..nukta..right[vowel]..anu
end
local Tamlaa4opt = false -- Whether in Tamil script भा is பா⁴ as opposed to ப⁴ா.

local post_replace_fix = {
	["Java"] = {
		{ "꧀ꦪ", "ꦾ" },
		{ "꧀ꦫ", "ꦿ" },
		{ "ꦫ꧀", "ꦂ" },
		{ "ꦗ꧀ꦚ", "ꦘ" },
		{ " ", "" },
		{ "([꧐-꧙]+)", "꧇%1꧇" },
	},
	["Newa"] = {
		{ "𑐒𑑂𑐴", "𑐓" },
		{ "𑐣𑑂𑐴", "𑐤" },
		{ "𑐬𑑂𑐴", "𑐭" },
		{ "𑐮𑑂𑐴", "𑐯" },
		{ "𑐩𑑂𑐴", "𑐪" },
		{ "𑐘𑑂𑐴", "𑐙" },
	},
	["Bali"] = {
		{ "([^᭄])ᬭ᭄", "%1ᬃ" },
		{ " ", "" },
		{ "([᭐-᭙]+)", "᭞%1᭞" },
	},
	["Mymr"] = {
		{ "င္([က-မလသ-ဠ])", "ⓖ%1" }, -- NGA floating
		{ "ရ္([က-မလသ-ဠ])", "ⓡ%1" }, -- RA repha
		{ "^([ခဂငဒပဝ]ေ?)ာ", "%1ါ"}, -- Conditions for Tall AA.
		{"^([ခဂငဒပဝ])("..mymr_low1..")ာ", "%1%2ါ"},
		{ "^([ခဂငဒပဝ])("..mymr_low2..")ာ", "%1%2ါ"},
		{ "^([ခဂငဒပဝ])("..mymr_low3..")ာ", "%1%2ါ"},
		{ "^([ခဂငဒပဝ])("..mymr_low4..")ာ", "%1%2ါ"},
		{ "([^္][ခဂငဒပဝ]ေ?)ာ", "%1ါ"}, -- Conditions for Tall AA.   
		{ "([^္][ခဂငဒပဝ])("..mymr_low1..")ာ", "%1%2ါ"},
		{ "([^္][ခဂငဒပဝ])("..mymr_low2..")ာ", "%1%2ါ"},
		{ "([^္][ခဂငဒပဝ])("..mymr_low3..")ာ", "%1%2ါ"},
		{ "([^္][ခဂငဒပဝ])("..mymr_low4..")ာ", "%1%2ါ"},
		{ "္ရ္ယ", "ျြ" }, -- for proper rendering
		{ "္ရ", "ြ" },
		{ "္ယ", "ျ" },
		{ "္ဝ", "ွ" },
		{ "္ဟ", "ှ" }, -- for Vedic ळ्ह
		{ "([ⓖⓡ])", {["ⓖ"] = "င်္", ["ⓡ"] = "ရ်္"} },
		{ "ဉ္ဉ", "ည" }, -- great NYA
		{ "သ္သ", "ဿ" }, -- great SA
		{ "္%f[%s%p%z]", "်" }, -- final virama -> asat
	},
	["Sidd"] = {
	-- In रु and रू, the alternate vowel signs should be used
		{ "𑖨𑖲", "𑖨𑗜" },
		{ "𑖨𑖳", "𑖨𑗝" },
	},
	["Sinh"] = require,
	["Thai"] = {
		{ "([ก-ฮ])↶([เโไ])", "%2%1"}, 
	},
	["Laoo"] = {
		{ "([ກ-ຮ])↶([ເໂໄ])", "%2%1"}, 
	},
	["Khmr"] = {
		{ "រ្([ក-ឡ])", "%1៌" }, -- RA repha -> robat over next consonant
		{ "្%f[%s%p%z]", "៑" }, -- final virama -> viriam
	},
	["Taml"] = {
-- For readability of code, put vowels etc. on carrier KA and prefix it by a single space.
-- Vowels without non-ligating right matra part (note that we are using NFC):
		{string.gsub("([¹²³⁴₁₂₃₄])([ கி கீ கு கூ கே கை கஂ க்] கஂ?)", " க", ""),"%2%1"},
-- Lay the presence of two options on with a trowel. 
-- Digit on right option:
		Tamlaa4opt and {string.gsub("([¹²³⁴₁₂₃₄])([ கா கோ கொ கௌ])( கஂ?)", " க", ""),"%2%3%1"}
-- Right matra after digit option:
		or {string.gsub("([¹²³⁴₁₂₃₄])([ கா கோ கொ கௌ])( கஂ?)", " க", ""),taml2pt},
	},
	["Tibt"] = {
		{ "྄([ཀ-ཧ])", "TibtV%1"}, 
	},
	["Zanb"] = {
		{ "𑨴([𑨀-𑨲])", "𑩇%1"},
	},
}

local Tibt_subjoiners = {
	["ཀ"] = "ྐ", ["ཁ"] = "ྑ", ["ག"] = "ྒ", ["ང"] = "ྔ", 
	["ཙ"] = "ྩ", ["ཚ"] = "ྪ", ["ཛ"] = "ྫ", ["ཉ"] = "ྙ", 
	["ཊ"] = "ྚ", ["ཋ"] = "ྛ", ["ཌ"] = "ྜ", ["ཎ"] = "ྞ",
	["ཏ"] = "ྟ", ["ཐ"] = "ྠ", ["ད"] = "ྡ",  ["ན"] = "ྣ",
	["པ"] = "ྤ", ["ཕ"] = "ྥ", ["བ"] = "ྦ",  ["མ"] = "ྨ", 
	["ཡ"] = "ྱ", ["ར"] = "ྲ", ["ལ"] = "ླ", ["ཝ"] = "ྭ", 
	["ཤ"] = "ྴ", ["ཥ"] = "ྵ", ["ས"] = "ྶ", ["ཧ"] = "ྷ",
}

local function return_error(text)
	return error(("Unrecognised part: \"%s\""):format(text))
end

function export.tr(text, sc)
	if type(text) == "table" then
		text, sc = text.args[1], text.args[2]
	end
	text = lower(text)
	
	if sc == "Beng" or sc == "as-Beng" or sc == "Bhks" or sc == "Brah" or sc == "Gujr" or sc == "Knda" or sc == "Mong" or sc == "mnc-Mong"or sc == "Telu" or sc == "Tirh" then
		return require("Module:Deva-" .. sc .. "-translit").tr(text, "sa", sc)
	end

	if not conv[sc] then return "" end
	
	text = gsub(text, ".",
		function(c)
			return conv[sc][c] or c
		end)

	if post_replace_fix[sc] then
		if require == post_replace_fix[sc] then
			post_replace_fix[sc] =
				require('Module:sa-utilities/translit/post replace fix/'..sc)
		end 
		for _, data in ipairs(post_replace_fix[sc]) do
			text = gsub(text, data[1], data[2])
		end
	end
	
	if sc == "Tibt" then
		for key,val in pairs(Tibt_subjoiners) do
			text = gsub(text,"TibtV("..key..")",val)
		end
		text = gsub(text, " ?([ཀ-ཧ])", "་%1")
		text = gsub(gsub(text, "^་", ""), "([།༎])་", "%1")
	end
	
	return (gsub(gsub(gsub(text, " +", " "), "^ +(.*)", "%1"), "(.*) +$", "%1"))
end
 
return export