حيل ورموز Unicode ربما لم تكن تعرفها
مدرج تحت قسم: دروس
كلنا يعلم أهمية الشفرة الموحدة Unicode لترميز الأحرف والمحارف المختلفة لأغلب لغات العالم، وتوحيدها في ترميز واحد عالمي؛ لتسهيل وصول ونقل البيانات عبر الأنظمة المختلفة دون تعرضها للتلف.
ولكن هناك العديد من الرموز التي يوفرها نظام Unicode تقوم بمهام أخرى، غير مجرد عرض المحارف المختلفة، وسنتعلم اليوم بعض هذه الرموز التي ستفيدنا في كتابة لغتنا العربية، وظهور النصوص بالطريقة السليمة.
توجيه اللغة العربية في صفحات HTML
اللغة العربية، هي من اللغات الخاصة والمميّزة، وتختلف عن أغلب اللغات المُشتقة من اللغة اللاتينية على سبيل المثال، فهي تكتب من اليمين إلى اليسار. ولكن عند دمج هذه اللغات مع اللغة العربية، يتغير توجيه النص المضمن لهذه اللغات.
بعض الأحيان، هذا قد يسبب الكثير من المشاكل لمن يريد قراءة النص، فقد يفقد النص معناه بسبب أن التداخل هذا قد شوّه المنظر العام للفقرة.
أحد الحلول المقترحة لصفحات HTML، هي إحاطة النصوص المضمنة بعنصر span أو عنصر bdo لتغيير توجيه النص، ويتم تغيير خاصية dir فيه ليصبح باتجاه اللغة التي نريدها. مثال:
<p>للترحيب بصديق نقول "<span dir="ltr" lang="en" xml:lang="en">Welcome friend!</span>" بالإنجليزية.</p>
ولعناصر الكتلة أو Block elements كعنصر الفقرة p أو عناصر الترويسة h1، أيضا نستخدم خاصية dir فيها كما في المثال السابق.
<p dir="ltr" lang="en">That kid hit the ball!</p>
ولكن، ماذا لو أردنا أن نُغير التوجيه في داخل عنصر لا يقبل وجود أي عنصر آخر بداخله، مثل عنصر title في رأس الصفحة head؟
محارف Unicode لتغيير الاتجاه
| المحرف | الشفرة | التوصيف المقابل | ملاحظات |
|---|---|---|---|
| LRE | U+202A | dir = "ltr" | الخاصية في عناصر التضمين Inline Element أو الكتلة Block Element. |
| RLE | U+202B | dir = "rtl" | الخاصية في عناصر التضمين Inline Element أو الكتلة Block Element. |
| RLO | U+202E | <bdo dir = "rtl"> | |
| LRO | U+202D | <bdo dir = "ltr"> | |
| LRM | U+200E | لا يوجد | تستخدم عند نهاية الكلمة أو الحرف. |
| RLM | U+200F | لا يوجد | تستخدم عند نهاية الكلمة أو الحرف. |
| U+202C | لا يوجد | عند الإنهاء باستخدام RLE أو LRE. لأن الإنهاء يكون بالعنصر الذي يحمل النص. | |
| </bdo> | عند الإنهاء باستخدام RLO أو LRO. |
هذه المحارف التي تتيحها لنا نظام الشفرة الموحدة، تُمكننا من تغيير توجيه النص المضمن من دون إضافة أي عناصر أخرى، حيث هذه الرموز تُعتبر من الرموز المخفية، والتي تقوم محل عنصر span السابق ذكره لتغيير التوجيه.
<title>‫المشروع(تجريبي)‬</title>

ولأنها من المحارف المخفية، فلا يُنصح باستخدامها إلا عند عدم توفر بدائل أخرى، كتضمين عنصر span أو عنصر bdo، والسبب في ذلك هو أن لغة HTML هي لغة توصيفية، وعند إدراج مثل هذه المحارف المخفية ستصعب عملية الحفاظ والتعديل لاحقاً على الصفحة.
رموز خاصة بالدين الحنيف
في البداية أود أن أوجه تحية تقدير للعاملين في إئتلاف Unicode العرب، على حفاظهم وإدراجهم للرموز العربية والإسلامية في هذا النظام. هذا جدول يبين بعض الرموز الإسلامية التي يمكنك استخدامها في صفحات HTML.
بعض الرموز والمحارف الإسلامية
| المحرف | الوصف | رمز Unicode |
|---|---|---|
| ؕ | حرف طاء صغير عالي | 0615 |
| ۚ | علامة الوقف الجائز جوازا مستوى الطَّرفين | 06DA |
| ۖ | علامة الوقف الجائز مع كون الوصل أوْلَى | 06D6 |
| ۗ | علامة الوقف الجائز مع كون الوقف أوْلَى | 06D7 |
| ۘ | علامة الوقف اللازم | 06D8 |
| ۙ | علامة الوقف الممنوع | 06D9 |
| | علامة نهاية الآية | 06DD |
| ۞ | علامة نهاية ربع الحزب | 06DE |
| ۩ | علامة موضع السجدة | 06E9 |
بعض الرموز العربية الأخرى
| المحرف | الوصف | رمز Unicode |
|---|---|---|
| ؎ | علامة بيت الشعر | 060E |
| ؞ | علامة ترقيم النقطة الثلاثية | 061E |
| ٠ | الرقم صفر | 0660 |
| ٥ | الرقم خمسة | 0665 |
| | علامة “سنه” | 0601 |
| ٖ | ألف صغيرة تحت الحرف | 0656 |
| ٰ | ألف صغيرة فوق الحرف | 0670 |
| ٯ | حرف قاف غير منقوط | 066F |
تطبيقات عملية
يمكننا الاستفادة من هذا الدرس في مجالات كثيرة، فعلى سبيل المثال، المشروع يستخدم تغيير التوجيه في عنصر title لو لاحظتم.
كما أنه كان مثيراً تطبيقه على بعض المواقع الإجتماعية التي لا تتيح توجيه النص، مثل Twitter:

بعض المراجع المفيدة
- Test for Unicode support in Web browsers
- Creating HTML Pages in Arabic, Hebrew and Other Right-to-left Scripts
- Unicode 5.2 Character Code Charts
- Unicode controls vs. markup for bidi support
هل طبقتم الدرس في مواقع ومجالات أخرى؟ إذا فعلتم، الرجاء أخبرونا في التعليقات.






موضوع أكثر من رائع ومميز وجزاك الله خير
جميل جداً جداً جداً , ومفيد كذلك,مقال رائع كالعادة :)
في الحقيقة أنا من أكثر كارهي موضوع الترميز على الرغم من فائدته ! إلا أنه في بعض الأحيان يُصيبني بجلطات :)
المشروع(تجريبي)
هناك خطأ في الكود بسبب اضافة تحويل العملات :
المشروع(تجريبي)
@عبدالملك الثاري
وجزاكم خيراً.
@فراس
أشكرك أخي الكريم فراس. بل بالعكس، الترميز من المواضيع التي يجب أن نبني عليها ونؤسس لها تأسيساً جيداً، للمنافع القيمة التي تأتي منها.
@MEG
هل يمكنك التوضيح أكثر لو تكرّمت؟
أخي بوعوف..
اشتقت لمواضيعك المتخصصة هذه.. مر وقت طويل
الموضوع أكثر شمولاً مما ذكرته لي.. وهذا أفضل وأفضل..
طريقة الرموز المخفية جديدة علي، وهي ما كنت أريده دائماً وأتساءل عن حل له..
أشكرك جزيل الشكر على هذخ النقطة..
فهمت الحيلة، وسأقوم بتطبيقها على منتدى اسمه وأسماء أقسامه بالانجليزية، لكن مواضيعه عربية.. سأرى كيف سيكون وأبلغك بالنتيجة -إن شاء الله.
كما أود الإطراء على خاصية المواضيع ذات العلاقة، فقد جعلتني أقرأ 4 مواضيع أخرى بعد هذا الموضوع.
موضوع أكثر من رائع أخي الكريم :)
ما شاء الله , مقال مفيد جدا يخدم المستخدم العربي بشكل كبير
لك كل التقدير .
أخوك ,
أبشرك..
قمت بالتعديل على title في المنتدى المذكور من قالب Showthread وانحلت مشكلة التداخل في الكلمات العربية والانجليزية في الـtitle
لك جزيل الشكر بوعوف
@المبدع العربي
مشاء الله، لا شكر على واجب بوسعود :) دائماً أسعد عندما أرى أن شخصاً قد استفاد من شيء بسيط قدمته.
مشكور على الموضوع بس يليت توحدون جهودكم وتصنعون مولد لهذي الرموز بحيث نك تكتب الخط وهو يعدله بحاله ويعطيك كود ال html >> مجرد فكره
مشكورة علي الموضيع الحلوة كتير