Module:ur-Arab-Deva
- The following documentation is located at Module:ur-Arab-Deva/documentation. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
Tests
[edit]تَرْکِ تَعَلُقّات پہ رویا نَہ تُو نَہ مَیں لیکِن یہ کْیا کہ چَین سے سویا نَہ تُو نَہ مَیں
وہ ہَمْسَفَر تھا مَگَر اُس سے ہَمْنَوَائی نَہ تھی کہ دُھوپ چھاؤں کا عالَم رَہا جُدائی نَہ تھی
عَداوَتیں تِھیں، تَغافُل تھا رَنجِشیں تِھیں مَگَر بِچَھڑنے والے میں سَب کُچھ تھا بے وَفائی نَہ تھی
کاجَل ڈالو کُرکُرا سُرمَہ سَہا نَہ جائے جِن نَین میں پِی بَسے دُوجا کَون سَمائے؟
بِچھڑتے وَقْت اُن آنکھوں میں تھی ہَماری غَزَل غَزَل تھی وہ جو کِسی کو کَبھی سُنائی نَہ تھی
Devanagari
[edit]तर्क-ए-तअलुक़्क़ात पह रोया ना तू ना मैं लेकिन यह क्या कह चैन से सोया ना तू ना मैं
वह हम्सफ़र था मगर उस से हम्नौअई ना थी कह धूप छाओं का आलम रहा जुदाई ना थी
अदावतें थीं, तग़ाफ़ुल था रनजिशें थीं मगर बिछड़ने वाले में सब कुछ था बे वफ़ाई ना थी
काजल डालो कुरकुरा सुरमा सहा ना जाए जिन नैन में पी बसे दूजा कौन समाए?
बिछड़ते वक़्त उन आनखों में थी हमारी ग़ज़ल ग़ज़ल थी वह जो किसी को कभी सुनाई ना थी
Example
[edit]
Devanagari
[edit]दफ़ा १: तमाम इनसान आज़ाद और हुक़ूक़ ओ इज़्ज़त के अअतबार से बराबर पैदा हुए हैं। उन्हें ज़मीर और अक़ल वदियत हुई हैं। इस लिए उनहें एक दूसरे के साथ भाई चारे का सुलूक करना चाहिए।
local U = require("Module:string/char")
local gsub = mw.ustring.gsub
local export = {}
local fatHatan = U(0x64B)
local zabar = U(0x64E)
local zer = U(0x650)
local pesh = U(0x64F)
local halant = U(0x94D)
local hri = U(0x93F)
local hri2 = U(0x907)
local diri = U(0x940)
local diri2 = U(0x908)
local hru = U(0x941)
local hru2 = U(0x909)
local diru = U(0x942)
local diru2 = U(0x90A)
local E = U(0x947)
local E2 = U(0x90F)
local AI = U(0x948)
local AI2 = U(0x910)
local O = U(0x94B)
local O2 = U(0x913)
local AU = U(0x94C)
local AU2 = U(0x914)
local A = U(0x905)
local LA = U(0x93E)
local ret = U(0x615)
local tashdid = U(0x651)
local jazm = "ْ"
local he = "ہ"
local consonants = "ببپتثجچحخدذرزژسشصضطعظغفقکگلࣇمنݨوہھٹڈڑںشؕ"
local consonantS = "ببپتثجچحخدذرزژسشصضطظغفقکگلࣇمنݨہٹڈڑںشؕ"
local consonantS2 = "ببپتثجچحخدذرزژسشصضطعظغفقکگلࣇمنݨیہٹڈڑشؕ"
local consonantS3 = "یببپتثجچحخدذرزژسشصضطعظغفقکگلࣇمنݨوہھٹڈڑشؕں"
local consonantS4 = "ببپتثجچحخدذرزژسشصضطعظغفقکگلࣇمنݨوھٹڈڑںشؕ"
local vowels = "ایئےۓوؤ"
local diacritics = "َُِّْ"
local ZZP = "َُِ"
local mapping = {
["آ"] = 'आ',
["ب"] = 'ब', ["پ"] = 'प', ["ت"] = 'त', ["ٹ"] = 'ट', ["ث"] = 'स',
["ج"] = 'ज', ["چ"] = 'च', ["ح"] = 'ह', ["خ"] = 'ख़',
["د"] = 'द', ["ڈ"] = 'ड', ["ذ"] = 'ज़', ["ر"] = 'र', ["ڑ"] = "ड़",
["ز"] = 'ज़',
["ژ"] = 'श़',
["س"] = 'स', ["ش"] = 'श', ["ݨ"] = 'ण', ["ص"] = 'स', ["ض"] = 'ज़',
["ط"] = 'त', ["ظ"] = 'ज़', ["غ"] = 'ग़', ["ف"] = 'फ़', ["ق"] = 'क़',
["ک"] = 'क', ["ك"] = 'क', ["گ"] = 'ग', ["ࣇ"] = 'ळ',
["ل"] = 'ल', ["م"] = 'म', ["ن"] = 'न', ["و"] = 'व', ["ہ"] = 'ह', ["ی"] = 'य',
["۔"] = "।",
["ں"] = 'ं',
["ع"] = 'अ',
["ء"] = '',
["ئ"] = '',
["ؤ"] = 'ओ',
["أ"] = '',
-- diacritics
[zabar] = "॑",
[zer] = "" .. hri .. "",
[pesh] = "" .. hru .. "",
[jazm] = "" .. halant .. "", -- also sukun - no vowel
[U(0x200C)] = "-", -- ZWNJ (zero-width non-joiner)
-- ligatures
["ﻻ"] = "ला",
["ﷲ"] = "अल्लाह",
-- kashida
["ـ"] = "-", -- kashida, no sound
-- numerals
["١"] = "१", ["٢"] = "२", ["٣"] = "३", ["٤"] = "४", ["٥"] = "५",
["٦"] = "६", ["٧"] = "७", ["٨"] = "८", ["٩"] = "९", ["٠"] = "०",
["۱"] = "१", ["۲"] = "२", ["۳"] = "३", ["۴"] = "४", ["۵"] = "५",
["۶"] = "६", ["۷"] = "७", ["۸"] = "८", ["۹"] = "९", ["۰"] = "०",
-- punctuation (leave on separate lines)
["؟"] = "?", -- question mark
["،"] = ",", -- comma
["؛"] = ";", -- semicolon
["«"] = '“', -- quotation mark
["»"] = '”', -- quotation mark
["٪"] = "%", -- percent
["؉"] = "‰", -- per mille
["٫"] = ".", -- decimals
["٬"] = ",", -- thousand
["ۓ"] = "-ये",
["ۂ"] = "-ए" -- he ye (in ezâfe)
}
local alif = 'ا'
local kzabar = 'ٰ'
local ain = 'ع'
local ye = 'ی'
local ye2 = 'ئ'
local ye3 = "ے"
local ye4 = "ۓ"
local vao = "و"
local he2 = "ۂ"
local aspirate = 'ھ'
local gunDia = '٘'
local noon = 'ن'
function export.tr(text, script)
text = gsub(text, 'وہ', "वह")
text = gsub(text, alif .. noon .. gunDia .. "", "ाँ")
text = gsub(text, '([' .. consonants .. '])' .. ye .. "ں", "%1ें")
text = gsub(text, '([' .. consonants .. '])' .. zer .. " ", "%1-ए-")
text = gsub(text, '([' .. consonants .. '])' .. ye .. '([' .. consonants .. '])', "%1" .. E .. "%2")
text = gsub(text, "ؤ" .. pesh, "ऊ")
text = gsub(text, alif .. ye2 .. '([' .. zabar .. ']?)' .. '([' .. consonants .. '])', "ाय%2")
text = gsub(text, "ش([" .. ZZP .. "])(ؕ)", "ष%1")
text = gsub(text, "شِؕی", "षी")
text = gsub(text, "شُؕو", "षू")
text = gsub(text, "شؕی", "षे")
text = gsub(text, "شَؕی", "षै")
text = gsub(text, "شؕو", "षो")
text = gsub(text, "شَؕو", "षौ")
-- medial/final consonants
text = gsub(text, zabar .. he .. alif, "हा")
text = gsub(text, zer .. he .. alif , "िहा")
text = gsub(text, zabar .. he .. '([' .. consonants .. vowels .. '])', "ह%1")
text = gsub(text, zabar .. he .. zer .. ye, "ही")
text = gsub(text, zabar .. he .. alif, "हा")
text = gsub(text, zabar .. he .. '([' .. consonants .. vowels .. '])', "ह%1")
text = gsub(text, '([' .. consonants .. '])' .. alif, "%1" .. LA .. "")
text = gsub(text, '([' .. consonants .. '])' .. kzabar, "%1" .. LA .. "")
text = gsub(text, '([' .. vowels .. '])' .. kzabar, "" .. LA .. "")
text = gsub(text, '([' .. consonants .. '])' .. tashdid .. alif, "%1" .. halant .. "%1" .. LA .. "")
-- tanween diacritic
text = gsub(text, '([' .. consonants .. '])' .. 'ً' .. alif, "%1न")
text = gsub(text, alif .. 'ً', "न")
text = gsub(text, '([' .. consonants .. '])' .. 'ً', "%1न")
text = gsub(text, '([' .. consonants .. '])' .. vao, "%1" .. O .. "")
text = gsub(text, '([' .. consonants .. '])' .. ye, "%1" .. diri .. "")
text = gsub(text, '([' .. consonants .. '])' .. ye3, "%1" .. E .. "")
text = gsub(text, '([' .. consonants .. '])' .. tashdid .. vao, "%1" .. halant .. "%1वो")
text = gsub(text, alif .. '([' .. consonants .. '])', "अ%1")
text = gsub(text, alif .. zabar .. '([' .. consonantS .. '])', "अ%1")
text = gsub(text, alif .. zer .. '([' .. consonants .. '])', "" .. hri2 .. "%1")
text = gsub(text, alif .. pesh .. '([' .. consonantS .. '])', "" .. hru2 .. "%1")
text = gsub(text, alif .. zabar .. vao .. '([' .. consonants .. '])', "" .. AU2 .. "%1")
text = gsub(text, alif .. zabar .. ye .. '([' .. consonants .. '])', "" .. AI2 .. "%1")
text = gsub(text, alif .. ye .. '([' .. consonants .. '])', "" .. E2 .. "%1")
text = gsub(text, alif .. vao .. '([' .. consonants .. '])', "" .. O2 .. "%1")
text = gsub(text, zabar .. ye, "" .. AI .. "")
text = gsub(text, alif .. zer .. ye .. '([' .. consonants .. '])', "" .. diri2 .. "%1")
text = gsub(text, alif .. pesh .. vao .. '([' .. consonantS .. '])', "" .. diru2 .. "%1")
-- ‘ain
text = gsub(text, '([' .. consonants .. '])' .. ain .. zabar .. he, "%1" .. LA .. "")
text = gsub(text, ain .. alif .. ain, "आ")
text = gsub(text, alif .. ain .. '([' .. consonants .. '])', "" .. AI2 .. "%1")
text = gsub(text, '([' .. consonants .. '])' .. ain .. he, "%1अ")
text = gsub(text, '([' .. consonants .. '])' .. '([' .. zer .. pesh .. ']?)' .. ain, "%1%2")
text = gsub(text, ain .. zabar .. vao .. '([' .. consonants .. '])', "औ%1")
text = gsub(text, ain .. zabar .. ye .. '([' .. consonants .. '])', "ऐ%1")
text = gsub(text, ain .. zer .. '([' .. consonants .. '])', "इ%1")
text = gsub(text, ain .. pesh .. '([' .. consonants .. '])', "उ%1")
text = gsub(text, ain .. zer .. ye .. '([' .. consonants .. '])', "ई%1")
text = gsub(text, ain .. pesh .. vao .. '([' .. consonantS .. '])', "ऊ%1")
text = gsub(text, ain .. jazm, "" .. LA .. "")
-- Tashdeed
text = gsub(text, '([' .. consonantS3 .. '])' .. tashdid, "%1" .. halant .. "%1")
text = gsub(text, '([' .. consonantS3 .. '])' .. tashdid .. '([' .. ZZP .. '])', "%1" .. halant .. "%1%2")
text = gsub(text, '([' .. ZZP .. '])' .. ye .. '([' .. ZZP .. '])' .. tashdid, "%1य्य%2")
text = gsub(text, '([' .. ZZP .. '])' .. vao .. '([' .. ZZP .. '])' .. tashdid, "%1व्व%2")
-- For some reason the tashdeed gets pushed after the other diacritics, so this line is necessary for tashdeed to work with other diacritics
text = gsub(text, '([' .. consonants .. '])' .. '([' .. ZZP .. '])' .. tashdid, "%1" .. halant .. "%1%2")
text = gsub(text, '([' .. consonants .. '])' .. ye .. '([' .. consonants .. '])', "%1" .. E .. "%2")
text = gsub(text, ye2 .. ye, "ई")
text = gsub(text, ye2 .. 'ے', "ए")
text = gsub(text,'([' .. consonants .. '])' .. ye .. ye3, "%1" .. diri .. "ए")
text = gsub(text, alif .. ye2 .. '([' .. zabar .. ']?)' .. '([' .. consonants .. '])', "ाय%2")
-- do-chashme-he zabar, zer, pesh
text = gsub(text, "(ک)" .. '([' .. jazm .. ']?)' .. "([" .. ZZP .. "])" .. aspirate, "ख%3")
text = gsub(text, "(گ)" .. "([" .. ZZP .. "])" .. aspirate, "घ%2")
text = gsub(text, "(چ)" .. "([" .. ZZP .. "])" .. aspirate, "छ%2")
text = gsub(text, "(ج)" .. "([" .. ZZP .. "])" .. aspirate, "झ%2")
text = gsub(text, "(ٹ)" .. "([" .. ZZP .. "])" .. aspirate, "ठ%2")
text = gsub(text, "(ڈ)" .. "([" .. ZZP .. "])" .. aspirate, "ढ%2")
text = gsub(text, "(ت)" .. "([" .. ZZP .. "])" .. aspirate, "थ%2")
text = gsub(text, "(د)" .. "([" .. ZZP .. "])" .. aspirate, "ध%2")
text = gsub(text, "(پ)" .. "([" .. ZZP .. "])" .. aspirate, "फ%2")
text = gsub(text, "(ب)" .. "([" .. ZZP .. "])" .. aspirate, "भ%2")
text = gsub(text, "(ڑ)" .. "([" .. ZZP .. "])" .. aspirate, "ढ़%2")
text = gsub(text, "(م)" .. "([" .. ZZP .. "])" .. aspirate, "म्ह%2")
text = gsub(text, "(ن)" .. "([" .. ZZP .. "])" .. aspirate, "न्ह%2")
text = gsub(text, "(ل)" .. "([" .. ZZP .. "])" .. aspirate, "ल्ह%2")
-- e, instead of i
text = gsub(text, jazm .. '([' .. consonants .. '])' .. zer .. '([' .. consonantS4 .. '])', "्%1" .. E .. "%2")
-- diacritics
text = gsub(text, "([" .. consonants .. "])" .. zabar .. vao, "%1" .. AU .. "")
text = gsub(text, "([" .. consonants .. "])" .. zabar .. ye, "%1" .. AI .. "")
text = gsub(text, "([" .. consonants .. "])" .. zabar .. ye3, "%1" .. AI .. "")
text = gsub(text, alif .. zabar .. ye3, "" .. AI2 .. "")
text = gsub(text, alif .. ye3, "" .. E2 .. "")
text = gsub(text, "([" .. consonants .. "])" .. zer .. ye, "%1" .. diri .. "")
text = gsub(text, "([" .. consonantS2 .. "])" .. pesh .. vao, "%1" .. diru .. "")
-- final he + short vowel disregards the he and transliterates the vowel
--text = gsub(text, ye .. he , "ये")
text = gsub(text, zer .. ye .. alif, "िया")
text = gsub(text, ye .. ye3 , "ये")
text = gsub(text, ye .. vao , "यो")
text = gsub(text, ye .. ye , "यी")
text = gsub(text, vao .. alif , "वा")
text = gsub(text, vao .. vao , "वो")
--VAO alone
text = gsub(text, " و ", " ओ ")
text = gsub(text, "([" .. consonants .. "])" .. zabar .. he .. jazm , "%1ह")
text = gsub(text, zabar .. he .. "([" .. ZZP .. "])" , "ह%1")
text = gsub(text, '([' .. zabar .. '])' .. he, "ा")
text = gsub(text, '([' .. zabar .. '])' .. he2 .. " ", "ा-ए-")
---text = gsub(text, '([' .. zabar .. '])' .. ye4 .. " ", "ा-ये-")
text = gsub(text, '([' .. zer .. '])' .. he, "ि")
text = gsub(text, zabar .. he .. alif , "हा")
text = gsub(text, he .. alif , "हा")
text = gsub(text, zer .. he .. alif , "िहा")
text = mw.ustring.gsub(text, "([" .. consonants .. "]) .. he$", "%1े")
-- Fatha Majhool --
text = gsub(text, "([" .. consonants .. "])" .. zabar .. he .. jazm .. "([" .. ZZP .. "])" , "%1ह%2")
text = gsub(text, "ڃ", "ञ")
text = gsub(text, "ोا", "वा")
text = gsub(text, "ौا", "वा")
text = gsub(text, "ौा", "वा")
text = gsub(text, "ोा", "वा")
text = gsub(text, "ن٘", "ङ")
text = gsub(text, "ے", "े")
text = gsub(text, "ۂ ", "-ए-")
text = gsub(text, "ۓ ", "-ये-")
text = gsub(text, "ࣇ", "ऴ")
text = gsub(text, "کھ", "ख")
text = gsub(text, "گھ", "घ")
text = gsub(text, "چھ", "छ")
text = gsub(text, "جھ", "झ")
text = gsub(text, "ٹھ", "ठ")
text = gsub(text, "ڈھ", "ढ")
text = gsub(text, "تھ", "थ")
text = gsub(text, 'دھ', "ध")
text = gsub(text, "پھ", "फ")
text = gsub(text, "بھ", "भ")
text = gsub(text, "ڑھ", "ढ़")
text = gsub(text, "مھ", "म्ह")
text = gsub(text, "نھ", "न्ह")
text = gsub(text, "لھ", "ल्ह")
text = gsub(text, "نْ([کگجچٹڈتدن])" , "ं%1")
text = gsub(text, "ن٘([کگجچٹڈتدن])" , "ं%1")
text = gsub(text, "مْ([بپمو])" , "ं%1")
text = mw.ustring.gsub(text, '.', mapping)
text = mw.ustring.gsub(text, "ललह", "ल्लाह")
text = mw.ustring.gsub(text, "ا", "अ")
text = mw.ustring.gsub(text, 'ी॑ा', "िया")
text = mw.ustring.gsub(text, 'ी॑', "िय")
--text = mw.ustring.gsub(text, 'अअ', "आ")
text = mw.ustring.gsub(text, 'अै', "ऐ")
text = mw.ustring.gsub(text, 'अा', "आ")
text = mw.ustring.gsub(text, 'अौ', "औ")
text = mw.ustring.gsub(text, 'ुो', "ू")
text = mw.ustring.gsub(text, "ाि", "ाइ")
text = mw.ustring.gsub(text, '॑ि', "इ")
text = mw.ustring.gsub(text, '॑े', "ै")
text = mw.ustring.gsub(text, '॑ो', "ौ")
text = mw.ustring.gsub(text, '॑', "")
text = mw.ustring.gsub(text, 'िे', "ी")
text = mw.ustring.gsub(text, 'ीا', "िया")
text = mw.ustring.gsub(text, 'ोا', "वा")
text = mw.ustring.gsub(text, 'ौا', "वा")
text = mw.ustring.gsub(text, 'ौा', "वा")
text = mw.ustring.gsub(text, 'ोा', "वा")
text = mw.ustring.gsub(text, "ौ([॑िु])", "व%1")
text = mw.ustring.gsub(text, "ुु॑", "ुुव")
text = mw.ustring.gsub(text, 'ीआ', "िया")
text = mw.ustring.gsub(text, 'ीअ', "िय")
text = mw.ustring.gsub(text, 'यअ', "या")
text = mw.ustring.gsub(text, 'ाً', "न")
text = mw.ustring.gsub(text, "शؕ", "ष")
text = mw.ustring.gsub(text, "श्(ؕ)", "ष्")
text = mw.ustring.gsub(text, '+', "")
return text
end
return export