Roman Urdu standard used in Urdu Nigar

Summary: An Urdu writing standard using Roman (English) letters devised by Naseem Amjad after gaining experience of Urdu Software Development is as under.

 

Following is the mapping table of letters used in Urdu Nigar Rray version.

Urdu Letter

English

ALEF ا , HIGH HAMZA ALEF ٵ , ALEF WITH WAVY HAMZA BELOW ٳ , AIN ع

A

ALEF WITH MADDA ABOVE آ

AA

BEH ب

B

PEH پ

P

TEH ت , TAH ط

T

TTEH ٹ

TT

THEH ث , SEEN س

S

JEEM ج

J

TCHEH چ

CH

HAH ح

HH

KHAH خ

KH

DAL د

D

DDAL ڈ

DD

THAL ذ , ZAIN ز , DUL ڎ , ZAH ظ

Z

REH ر

R

RREH ڑ

RR

SHEEN ش

SH

SAD ص

SS

DAD ض

ZZ

GHAIN غ

GH

FEH ف

F

QAF ق

Q

KEHEH ک

K

GAF گ

G

LAM ل

L

MEEM م

M

NOON ن , NOON GHUNNA ں

N

WAW و

O / W

HEH GOAL ہ , HEH DOACHASHMEE ھ

H

YEH ي , FARSI YEH ی

E / Y

YEH BARREE ے

AY

 

Following examples will help in further understanding.

Figure 1: Sample Text in Urdu Script

 

Selecting option from Tools>Transliterate Text you get following

Figure 2: After converting to Roman Urdu

In above example, note that a dash (-) is added to differentiate between Ray (ر ) and RRay (ڑ)

Figure 3: Mssra (Sample Urdu Text)

After Transliteration to Roman Urdu, following text is displayed.

Figure 4: Roman Urdu

Note that if initial letter is wow (و) it is written as W else written as O

 


Technicalities of Urdu Script to Roman Urdu conversion

 

Following algorithm is used for Transliteration

  If previous character is a dash wala character then show dash (i.e. -)

  If it is initial wow then show W else O

  Replace characters as per Urdu character to English Characters mapping table

 

Following is the source code (in C#) used for Urdu to Roman conversion.

 

private string setUrduUnicode2Roman(string temp)

{

switch (temp)

{

 

case "\u0627"://LETTER ALEF ا

return "A";

 

case "\u0675"://LETTER HIGH HAMZA ALEF ٵ

return "A";

 

case "\u0673"://LETTER ALEF WITH WAVY HAMZA BELOW ٳ

return "A";

 

case "\u0622"://LETTER ALEF WITH MADDA ABOVE آ

return "AA";

 

case "\u0628"://LETTER BEH ب

return "B";

 

case "\u067E"://LETTER PEH پ

return "P";

 

case "\u062A"://LETTER TEH ت

return "T";

 

case "\u0637"://LETTER TAH ط

return "T";

 

case "\u0679"://LETTER TTEH ٹ

return "TT";

 

case "\u062C"://LETTER JEEM ج

return "J";

 

case "\u0633"://LETTER SEEN س

return "S";

 

case "\u062B"://LETTER THEH ث

return "S";

 

case "\u0635"://LETTER SAD ص

return "SS";

 

case "\u0686"://LETTER TCHEH چ

return "CH";

 

case "\u062D"://LETTER HAH ح

return "HH";

 

case "\u0647"://LETTER HEH ه

return "H";

 

case "\u0629"://LETTER TEH MARBUTA ة

return "H";

 

case "\u06DF"://SMALL HIGH ROUNDED ZERO ۟

return "H";

 

case "\u062E"://LETTER KHAH خ

return "KH";

 

case "\u062F"://LETTER DAL د

return "D";

 

case "\u0688"://LETTER DDAL ڈ

return "DD";

 

case "\u0630"://LETTER THAL ذ

return "Z";

 

case "\u0632"://LETTER ZAIN ز

return "Z";

 

case "\u0636"://LETTER DAD ض

return "ZZ";

 

case "\u0638"://LETTER ZAH ظ

return "Z";

 

case "\u068E"://LETTER DUL ڎ

return "Z";

 

case "\u0631"://LETTER REH ر

return "R";

 

case "\u0691"://LETTER RREH ڑ

return "RR";

 

case "\u0634"://LETTER SHEEN ش

return "SH";

 

case "\u063A"://LETTER GHAIN غ

return "GH";

 

case "\u0641"://LETTER FEH ف

return "F";

 

case "\u06A9"://LETTER KEHEH ک

return "K";

 

case "\u0642"://LETTER QAF ق

return "Q";

 

case "\u06AF"://LETTER GAF گ

return "G";

 

case "\u0644"://LETTER LAM ل

return "L";

 

case "\u0645"://LETTER MEEM م

return "M";

 

case "\u0646"://LETTER NOON ن

return "N";

 

case "\u06BA"://LETTER NOON GHUNNA ں

return "N";

 

case "\u0648"://LETTER WAW و

return "O";

 

case "\u0649"://LETTER ALEF MAKSURA (Chooti Yay) ى

return "Y";

 

case "\u0626"://LETTER YEH WITH HAMZA ABOVE ئ

return "Y";

 

case "\u06CC"://LETTER FARSI YEH ی

return "Y";

 

case "\u06D2"://LETTER YEH BARREE ے

return "AY";

 

case "\u06C1"://LETTER HEH GOAL ہ

return "H";

 

case "\u064A"://LETTER YEH ي

return "E";

 

case "\u06C2"://LETTER HEH GOAL WITH HAMZA ABOVE ۂ

return "AH";

 

case "\u06BE"://LETTER HEH DOACHASHMEE ھ

return "H";

 

case "\u0639"://LETTER AIN ع

return "A";

 

case "\u0643"://ARABIC LETTER KAF ك

return "K";

 

case "\u0621"://LETTER HAMZA ء

return "A";

 

case "\u0624"://LETTER WAW WITH HAMZA ABOVE ؤ

return "O";

 

case "؟":

return "?";

 

case "۱":

return "1";

 

case "۲":

return "2";

 

case "۳":

return "3";

 

case "۴":

return "4";

 

case "۵":

return "5";

 

case "۶":

return "6";

 

case "۷":

return "7";

 

case "۸":

return "8";

 

case "۹":

return "9";

 

case "۰":

return "0";

 

case "۔":

return ".";

 

case "،":

return ",";

 

case "":

return "\"";

 


 

case "\x064F"://pesh

return "u";

 

case "\x064E"://zabar

return "a";

 

case "\x0650"://zer

return "e";

 

}

return temp;

}

 

 

string TransliterateText(string s)

{

string result = "";

string tempResult = "";

string previousString = "";

string currentString = "";

for (int i = 0; i < s.Length; i++)

{

 

 

if (i > 0)

previousString = s[i - 1].ToString();

currentString = s[i].ToString();

if (isDashWalaCharacter(previousString, currentString))

tempResult = "-" + setUrduUnicode2Roman(currentString);

else

if ((previousString == " " || previousString == "،" || previousString == "۔" || previousString == "") && (currentString == "\u0648"))

tempResult = "W";//for wow

else

tempResult = setUrduUnicode2Roman(currentString);

 

 

result = result + tempResult;

 

}

return result;

}

 

bool isDashWalaCharacter(string prevString, string currString)

{

//LETTER TEH ت //LETTER TAH ط //LETTER TTEH ٹ

if ((prevString == "\u062A" || prevString == "\u0637" || prevString == "\u0679") && (currString == "\u062A" || currString == "\u0637" || currString == "\u0679"))

return true;

//LETTER SEEN س//LETTER THEH ث//LETTER SAD ص

if ((prevString == "\u0633" || prevString == "\u062B" || prevString == "\u0635") && (currString == "\u0633" || currString == "\u062B" || currString == "\u0635"))

return true;

//LETTER HAH ح//LETTER HEH ه//LETTER TEH MARBUTA ة//SMALL HIGH ROUNDED ZERO ۟

if ((prevString == "\u062D" || prevString == "\u0647" || prevString == "\u0629" || prevString == "\u06DF") && (currString == "\u062D" || currString == "\u0647" || currString == "\u0629" || currString == "\u06DF"))

return true;

//LETTER DAL د//LETTER DDAL ڈ

if ((prevString == "\u062F" || prevString == "\u0688") && (currString == "\u062F" || currString == "\u0688"))

return true;

//LETTER THAL ذ//LETTER ZAIN ز//LETTER DAD ض://LETTER ZAH ظ//LETTER DUL ڎ

if ((prevString == "\u0630" || prevString == "\u0632" || prevString == "\u0636" || prevString == "\u0638" || prevString == "\u068E") && (currString == "\u0630" || currString == "\u0632" || currString == "\u0636" || currString == "\u0638" || currString == "\u068E"))

return true;

//LETTER REH ر//LETTER RREH ڑ

if ((prevString == "\u0631" || prevString == "\u0691") && (currString == "\u0631" || currString == "\u0691"))

return true;

return false;

}

Note: It is suggested to not to use D for Rray as some people use it while writing Roman Urdu.

For example it should be DHRRKN instead of DHDKN or DHADKAN for دھڑکن

 

#DayNaheeRRay



Features of Urdu Nigar Rray version (newer than Unicode a Free Urdu Editor)