Module:fa-translit

local export = {} local m_str_utils = require("Module:string utilities") local gsub = m_str_utils.gsub

local function basetr(text, lang, sc) return require("Module:fa-cls-translit").tr(text, lang, sc) end

function export.CLS_tr(text) text = basetr(text, lang, sc) return text end

function export.IRA_tr(text) text = basetr(text, lang, sc) -- mark word boundries; not necessary but makes things easier text = gsub(text, "#", "HASHTAG") text = gsub(text, "^", "#") text = gsub(text, "$", "#") text = gsub(text, " | ", "# | #") text = gsub(text, "%s", "# #") text = gsub(text, "\n", "#" .. "\n" .. "#") text = gsub(text, "(%p+)", "#" .. "%1" .. "#") text = "##" .. gsub(text, " ", "# #") .. "##"	text = gsub(text, "%-", "#-#") -- loss of vowel length text = gsub(text, "ā", "â") text = gsub(text, "i", "e") text = gsub(text, "u", "o") -- Majhul - Ma'ruf merger text = gsub(text, "[ēī]", "i") text = gsub(text, "[ōū]", "u") -- /xw/ coalescence text = gsub(text, "([aâeiou])" .. "xw", "XW") text = gsub(text, "xwa", "xo") text = gsub(text, "xw", "x") text = gsub(text, "XW", "xw") -- q - gh merger text = gsub(text, "q", "ğ") -- rising of final a and dipthongs text = gsub(text, "a" .. "#", "e") text = gsub(text, "ay" .. "([aâeiou])", "Æ%1") text = gsub(text, "ay", "ey") text = gsub(text, "Æ", "ay") text = gsub(text, "aw" .. "([aâeiouw])", "Œ%1") text = gsub(text, "w", "v") text = gsub(text, "av", "ow") text = gsub(text, "Œ", "av") -- remove hashtags text = gsub(text, "#", "") return text end

function export.tr(text) text = export.CLS_tr(text) .. ", " .. export.IRA_tr(text) return text end

return export