Module:sa-convert

Hello, you have come here looking for the meaning of the word Module:sa-convert. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:sa-convert, but we will also tell you about its etymology, its characteristics and you will know how to say Module:sa-convert in singular and plural. Everything you need to know about the word Module:sa-convert you have here. The definition of the word Module:sa-convert will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:sa-convert, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.

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

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

Unresolved Issues

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

-- 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..nukta..right..anu
end
local Tamlaa4opt = false -- Whether in Tamil script भा is பா⁴ as opposed to ப⁴ா.

local post_replace_fix = {
	 = {
		{ "꧀ꦪ", "ꦾ" },
		{ "꧀ꦫ", "ꦿ" },
		{ "ꦫ꧀", "ꦂ" },
		{ "ꦗ꧀ꦚ", "ꦘ" },
		{ " ", "" },
		{ "(+)", "꧇%1꧇" },
	},
	 = {
		{ "𑐒𑑂𑐴", "𑐓" },
		{ "𑐣𑑂𑐴", "𑐤" },
		{ "𑐬𑑂𑐴", "𑐭" },
		{ "𑐮𑑂𑐴", "𑐯" },
		{ "𑐩𑑂𑐴", "𑐪" },
		{ "𑐘𑑂𑐴", "𑐙" },
	},
	 = {
		{ "()ᬭ᭄", "%1ᬃ" },
		{ " ", "" },
		{ "(+)", "᭞%1᭞" },
	},
	 = {
		{ "င္()", "ⓖ%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", "်" }, -- final virama -> asat
	},
	 = require,
	 = {
		{ "()↶()", "%2%1"}, 
	},
	 = {
		{ "()↶()", "%2%1"}, 
	},
	 = {
		{ "រ្()", "%1៌" }, -- RA repha -> robat over next consonant
		{ "្%f", "៑" }, -- final virama -> viriam
	},
	 = {
-- 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},
	},
	 = {
		{ "྄()", "TibtV%1"}, 
	},
	 = {
		{ "𑨴()", "𑩇%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, text.args
	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 then return "" end
	
	text = gsub(text, ".",
		function(c)
			return conv or c
		end)

	if post_replace_fix then
		if require == post_replace_fix then
			post_replace_fix =
				require('Module:sa-utilities/translit/post replace fix/'..sc)
		end 
		for _, data in ipairs(post_replace_fix) do
			text = gsub(text, data, data)
		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