صبح سے پھر شام ہو گئی۔ خیر موضوع ہے یونیکوڈ کنٹرول حروف۔ آج ہم دو حروف پر بات کریں گے:
[align=left:45d1ffdeb8]1. LRE: Left to Right Embedding U+202A
2. RLE: Right to Left Embedding U+202B
3. PDF: Pop Directional Formatting U+202C[/align:45d1ffdeb8]
یہ تو تین ہو گئے۔ کوئی بات نہیں۔
یونیکوڈ میں بائیں سے دائیں اور دائیں سے بائیں دونوں قسم کی زبانیں شامل ہیں۔ اس لئے ایک دوسمتی algorithm بھی ہے جو فیصلہ کرتا ہے کہ کسی بھی متن کو کس طرح دکھایا جائے۔ کئی صورتوں میں یہ واضح فیصلہ نہیں کر سکتا۔ سمت سے متعلق کنٹرول حروف سمت کا تعین کرنے میں مدد دیتے ہیں۔
اس فقرے پر غور کریں:
[align=left:45d1ffdeb8]First دوسرا Third[/align:45d1ffdeb8]
یہ جملہ انگریزی میں ہے مگر بیچ میں ایک اردو لفظ ہے۔ چونکہ صفحہ دائیں سے بائیں سمت طے کر چکا ہے اس لئے انگریزی کے فقرے میں اردو لفظ کی وجہ سے الفاظ کی ترتیب خراب ہو گئی۔
اس کا ایک حل یہ ہے کہ ہم فقرے کے آغاز میں بتا دیں کہ یہ بائیں سے دائیں ہے۔ HTML میں اس کے لئے یہ مارکاپ استعمال ہوتا ہے:
کوڈ:
<bdo dir="ltr">English content with may be some اردو words</bdo>
مگر تب کیا کریں جب ہم ایچٹیایمایل استعمال نہیں کر سکتے۔ اس وقت LRE کام آئے گا۔ نیچے وہی پرانا فقرہ ہے مگر فقرے کے شروع میں یا اردو الفاظ سے پہلے میں نے LRE ڈال دیا ہے جو دوسمتی algorithm کو بتاتا ہے کہ اب سمجھو کہ متن بائیں سے دائیں چل رہا ہے۔ خیال رہے کہ یہ اردو کے حروف کی ترتیب الٹی نہیں کرتا کہ “اردو“ کی بجائے “وردا“ لکھا نظر آئے (اس کے لئے LRO یعنی Left to Right Override موجود ہے اور اسی طرح RLO ہے)۔
[align=left:45d1ffdeb8]First دوسرا Third[/align:45d1ffdeb8]
اب جب ہم نے بائیں سے دائیں سمت طے کر دی تو اس کو ختم بھی کرنا ہو گا اسی طرح جس طرح اوپر html میں closing tag تھا۔ اس کے لئے PDF ہے جو آخری سمت سیٹ کرنے والے حرف کا اثر ختم کر دیتا ہے۔
اسی طرح جب کسی بائیں سے دائیں زبان والے صفحے میں کوئی پیرا اردو (یا کسی اور دائیں سے بائیں زبان) کا آ جائے اور بیچ میں پھر انگریزی تو ہمیں RLE اور PDF استعمال کرنا ہوں گے۔
ان حروف کو ہمیں احتیاط سے استعمال کرنا چاہیئے۔ ایک وجہ یہ ہے کہ یہ حروف state رکھتے ہیں۔ یعنی اگر ہم ایک RLE ڈالیں اور پھر ایک LRE اور پھر دو میں سے ایک PDF ڈالنا بھول جائیں تو وہاں سمت الٹی ہو گئی۔
دوسری بات یہ ہے کہ عام یونیکوڈ ٹیکسٹ میں تو ان کے استعمال کی ضرورت ہے مگر html میں مارکاپ ہے جو بالکل یہی کام کرتا ہے۔ اب سوال یہ پیدا ہوتا ہے کہ اگر آپ سمت کا مارکاپ بھی ڈالیں اور یہ کنٹرول حروف بھی تو کیا ہو گا۔ ہو سکتا ہے سب ٹھیک کام کرے مگر یہ بھی ممکن ہے کہ nesting وغیرہ کی وجہ سے گڑبڑ ہو جائے اور وہ سمت نہ رہے جو آپ چاہتے تھے۔ اسی لئے W3C کہتی ہے کہ html فائل میں آپ مارکاپ استعمال کریں نہ کہ LRE اور RLE۔
مزید پڑھنے کو:
مارکاپ یا دوسمتی کنٹرول حروف
ایکسایمایل اور دوسری مارکاپ زبانوں میں یونیکوڈ
یونیکوڈ کا دوسمتی الگورتھم
نوٹ: LRE اعجاز صاحب کے صوتی-2 پر AltGR-x پر ہے، RLE حرف AltGR-n پر ہے اور PDF کا حرف AltGR-v پر۔ میرے ونڈوز کے امریکی keyboard پر AltGR نہیں ہے مگر Ctrl+Alt اس کا کام کر دیتا ہے۔