Module:typing-aids/data/ar

U = require("Module:string/char")

local fatHa = U(0x64E) local fatHatan = U(0x64B) local kasratan = U(0x64D) local Dammatan = U(0x64C) local kasra = U(0x650) local Damma = U(0x64F) local superscript_alif = U(0x670) local sukuun = U(0x652) local shadda = U(0x651) local vowel_diacritics = fatHa .. kasra .. Damma .. fatHatan .. kasratan .. Dammatan local short_vowel = "[" .. fatHa .. kasra .. Damma .. "]"

local taTwiil = U(0x640)

local alif = "ا" local waaw = "و" local yaa = "ي" local alif_maqSuura = "ى"

local laam = "ل"

local madda = "آ" local waSla = "ٱ" local hamza = "ء" local alif_hamza = "أ" local alif_hamza_below = "إ" local yaa_hamza = "ئ" local waaw_hamza = "ؤ"

local taa_marbuuTa = "ة"

local article = alif .. laam

local consonants = "بتثجحخدذرزسشصضطظعغقفلكمنءة" local consonant = "[" .. consonants .. "]" local sun_letters = "تثدذرزسشصضطظلن" local sun_letter = "[" .. sun_letters .. "]"

-- Mostly Bikdash Arabic Transliteration Rules, some Arabic chat alphabet replacements = { [1] = {		["eaa"] = madda, ["aaa"] = fatHa .. alif_maqSuura, ["_a"] = superscript_alif, ["t\'"] = taa_marbuuTa, ["z\'"] = "ذ", ["d\'"] = "ض", ["6\'"] = "ظ", ["3\'"] = "ع", ["5\'"] = "خ", ["al%-"] = article, [","] = "،",		[";"] = "؛",		["?"] = "؟",	},	[2] = {		["aa"] = fatHa .. alif, ["ii"] = kasra .. yaa, ["uu"] = Damma .. waaw, ["aN"] = fatHatan, ["iN"] = kasratan, ["uN"] = Dammatan, ["A"] = alif, ["W"] = waSla, ["b"] = "ب", ["c"] = "ث", ["d"] = "د", ["e"] = hamza, ["2"] = hamza, ["'"] = hamza, ["E"] = "ع", ["3"] = "ع", ["`"] = "ع", ["f"] = "ف", ["D"] = "ض", ["g"] = "غ", ["h"] = "ه", ["H"] = "ح", ["7"] = "ح", ["j"] = "ج", ["k"] = "ك", ["K"] = "خ", ["l"] = "ل", ["L"] = "ﷲ",	-- Allah ligature ["m"] = "م", ["n"] = "ن", ["p"] = "پ", ["q"] = "ق", ["r"] = "ر", ["s"] = "س", ["S"] = "ص", ["9"] = "ص", ["t"] = "ت", ["T"] = "ط", ["6"] = "ط", ["v"] = "ڤ", ["w"] = waaw, ["y"] = yaa, ["x"] = "ش", ["z"] = "ز", ["Z"] = "ظ", ["^%-"] = taTwiil, ["%s%-"] = taTwiil, ["%-$"] = taTwiil, ["%-%s"] = taTwiil, },	[3] = {		["a"] = fatHa, ["i"] = kasra, ["u"] = Damma, ["^i"] = alif .. kasra, ["^u"] = alif .. Damma, ["([^" .. hamza .. taa_marbuuTa .. "])" .. fatHatan] = "%1" .. fatHatan .. alif, ["^(" .. article .. sun_letter .. ")"] = "%1" .. shadda, ["(%s" .. article .. sun_letter .. ")"] = "%1" .. shadda, },	[4] = {		["(" .. consonant .. ")([^" .. vowel_diacritics .. "%s])"] = "%1" .. sukuun .. "%2",		["(" .. fatHa .. "[" .. waaw .. yaa .. "])" .. "([^" .. vowel_diacritics .. "])"] = "%1" .. sukuun .. "%2",		["^" .. hamza] = { alif_hamza, after = "[" .. fatHa .. Damma .. "]" },		["^" .. hamza .. kasra] = alif_hamza_below .. kasra, ["(%s)" .. hamza .. kasra] = "%1" .. alif_hamza_below .. kasra, },	[5] = {			-- remove sukuun from definite article before sun letter ["^" .. article .. sukuun .. "(" .. sun_letter .. ")"] = article .. "%1",		["(%s)" .. article .. sukuun .. "(" .. sun_letter .. ")"] = "%1" .. article .. "%2",		-- to add final sukuun ["0"] = "",		["(" .. consonant .. ")" .. sukuun .. "%1"] = "%1" .. shadda, ["([" .. waaw .. yaa .. "])%1"] = "%1" .. shadda, [kasra .. hamza] = kasra .. yaa_hamza, [hamza .. kasra] = yaa_hamza .. kasra, [Damma .. hamza] = { Damma .. waaw_hamza, after = "[^" .. kasra .. "]",		},		[fatHa .. hamza] = fatHa .. alif_hamza, ["([^" .. waaw .. alif .. "])" .. hamza .. fatHa] = "%1" .. alif_hamza .. fatHa, },	[6] = {		["(" .. short_vowel .. "%s)" .. article] = "%1" .. waSla .. laam, ["(" .. fatHa .. alif .. "%s)" .. article] = "%1" .. waSla .. laam, ["(" .. kasra .. yaa .. "%s)" .. article] = "%1" .. waSla .. laam, ["(" .. Damma .. waaw .. "%s)" .. article] = "%1" .. waSla .. laam, ["(" .. fatHa .. alif_maqSuura .. "%s)" .. article] = "%1" .. waSla .. laam, }, } --	[""] = "",

return replacements