From 2eeb8fbdce276376dbbae8be0e76d7db5ae7b113 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Mon, 29 Feb 2016 21:53:35 +0100 Subject: first implementation of transliteration tables (dmg) --- arabluatex.lua | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'arabluatex.lua') diff --git a/arabluatex.lua b/arabluatex.lua index f0cfa78..b716bea 100644 --- a/arabluatex.lua +++ b/arabluatex.lua @@ -25,6 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA require("arabluatex_voc") require("arabluatex_fullvoc") require("arabluatex_novoc") +require("arabluatex_trans") local function protectarb(str) str = string.gsub(str, "(\\arb.?)(%[.-%])(%b{})", "\\@arb%2%3") @@ -206,6 +207,35 @@ local function novoc(str) return str end +local function transdmg(str) + str = string.gsub(str, "\\arb(%b{})", function(inside) + inside = string.sub(inside, 2, -2) + for i = 1,#hamzatrdmg do + inside = string.gsub(inside, hamzatrdmg[i].a, hamzatrdmg[i].b) + end + for i = 1,#tanwintrdmg do + inside = string.gsub(inside, tanwintrdmg[i].a, tanwintrdmg[i].b) + end + for i = 1,#trigraphstrdmg do + inside = string.gsub(inside, trigraphstrdmg[i].a, trigraphstrdmg[i].b) + end + for i = 1,#digraphstrdmg do + inside = string.gsub(inside, digraphstrdmg[i].a, digraphstrdmg[i].b) + end + for i = 1,#singletrdmg do + inside = string.gsub(inside, singletrdmg[i].a, singletrdmg[i].b) + end + for i = 1,#longvtrdmg do + inside = string.gsub(inside, longvtrdmg[i].a, longvtrdmg[i].b) + end + for i = 1,#shortvtrdmg do + inside = string.gsub(inside, shortvtrdmg[i].a, shortvtrdmg[i].b) + end + return string.format("\\txtrans{%s}", inside) + end) +return str +end + function processvoc(str) str = "\\arb{".. str.."}" str = protectarb(str) @@ -236,6 +266,18 @@ function processnovoc(str) return str end +function processtrans(str, mode) + str = "\\arb{".. str.."}" + str = protectarb(str) + str = breakcmd(str) + str = holdcmd(str) + if mode == "dmg" then + str = transdmg(str) + else end + str = unprotectarb(str) +return str +end + --print(processvoc("'at_A .sadIquN 'il_A ju.hA ya.tlubu min-hu .himAra-hu li-yarkiba-hu fI safraTiN qa.sIraTiN wa-qAla la-hu sawfa 'u`Idu-hu 'ilay-ka fI 'l-masA'i wa-'adfa`u la-ka 'ujraTaN 'at_A .sadIquN 'il_A ju.hA ya.tlubu min-hu .himAra-hu li-yarkiba-hu fI safraTiN qa.sIraTiN wa-qAla la-hu sawfa 'u`Idu-hu 'ilay-ka fI 'l-masA'i wa-'adfa`u la-ka 'ujraTaN")) --print(arbnum("bop 0123456789")) --print(processvoc("daxala \\arb[novoc]{mubtasimaN}")) -- cgit v1.2.3