Module:User:Bigballlover69/test2

local export = {}

local conv = { --consonants without nukta ["ਸ"] = "s", ["ਹ"] = "h", ["ਕ"] = "k", ["ਖ"] = "ẋ", ["ਗ"] = "g", ["ਘ"] = "k", ["ਙ"] = "ň", ["ਚ"] = "ç", ["ਛ"] = "ç", ["ਜ"] = "c", ["ਝ"] = "c", ["ਞ"] = "ny", ["ਟ"] = "t̗", ["ਠ"] = "t̗", ["ਡ"] = "d̗", ["ਢ"] = "d̗", ["ਣ"] = "n̗", ["ਤ"] = "t", ["ਥ"] = "t̋", ["ਦ"] = "d", ["ਧ"] = "d", ["ਨ"] = "n", ["ਪ"] = "p", ["ਫ"] = "p", ["ਬ"] = "b", ["ਭ"] = "b", ["ਮ"] = "m", ["ਯ"] = "y", ["ਰ"] = "r", ["ਲ"] = "l", 	["ਵ"] = "v", ["ੜ"] = "rr", --consonants with nukta ["ਸ਼"] = "ş", ["ਖ਼"] = "x", ["ਗ਼"] = "ğ", ["ਜ਼"] = "z", ["ਫ਼"] = "f", ["ਲ਼"] = "l̆", ["ਕ਼"] = "q", ["ਡ਼"] = "r̗", -- vowels ["ਾ"] = "â", ["ਿ"] = "i", ["ੀ"] = "î", ["ੁ"] = "u", ["ੂ"] = "û", ["ੇ"] = "e", ["ੈ"] = "ĕ", ["ੋ"] = "o", ["ੌ"] = "ô", -- other diacritics ["ੰ"] = "N", --ṭippi: nasalize ["ਂ"] = "̃",	["ੱ"] = "ː", --addak: geminate ["੍"] = "", --halant, supresses the inherent vowel "a" ["ਃ"] = "h", --voiceless "h" sound (tone raiser) -- independent vowels ["ਅ"] = "a", ["ਆ"] = "â", ["ਇ"] = "i", ["ਈ"] = "î", ["ਉ"] = "u", ["ਊ"] = "û", ["ਏ"] = "ē", ["ਐ"] = "ĕ", ["ਓ"] = "o", ["ਔ"] = "ô", -- digits ["੦"] = "0", ["੧"] = "1", ["੨"] = "2", ["੩"] = "3", ["੪"] = "4",	["੫"] = "5", ["੬"] = "6", ["੭"] = "7", ["੮"] = "8", ["੯"] = "9", }

local nasal_assim = { ["[kg]h?"] = "ň", ["[cj]h?"] = "ny", ["[ṭḍ]h?"] = "n̗", ["[td]h?"] = "n", ["[pb]h?"] = "m", ["n"] = "n", ["m"] = "m", ["s"] = "n", }

-- translit any words or phrases function export.tr(text, lang, sc) local c = "([ਸਹਕਖਗਘਙਚਛਜਝਞਟਠਡਢਣਤਥਦਧਨਪਫਬਭਮਯਰਲਵੜː]਼?)" local y = "ਯ" local v = "([aਾਿੀੁੂੇੈੋੌ੍])" local virama = "੍" local n = "([ੰਂ]?)" local nukta = "([ਸਖਗਜਫਲਕਡ]਼)" local can_drop = mw.ustring.gsub(c,y,"") local no_virama = mw.ustring.gsub(v,virama,"") text = text .. " "	text = mw.ustring.gsub(text,c,"%1a") text = mw.ustring.gsub(text,"a"..v,"%1") -- mw.log(text) text = mw.ustring.gsub(text,v..n..can_drop.."a ","%1%2%3 ") --ending -- mw.log(text) text = mw.ustring.gsub(text,v..n..can_drop.."a"..c..v,"%1%2%3%4%5") -- mw.log(text) text = mw.ustring.gsub(text,nukta,conv) text = mw.ustring.gsub(text,".",conv) for key,val in pairs(nasal_assim) do		text = mw.ustring.gsub(text,"N("..key..")",val.."%1") end text = mw.ustring.gsub(text,"([aiueaiauoâîû])N ", "%1̃ ") text = mw.ustring.gsub(text,"(.?)N", "%1̃") text = mw.ustring.gsub(text,"ː(.)","%1%1") text = mw.ustring.gsub(text," ?।",".") text = mw.ustring.gsub(text," $","") return mw.ustring.toNFC(text) end return export