نص ثنائي الاتجاه
يحتوي النص ثنائي الاتجاه على اتجاهين للنص ، من اليمين إلى اليسار (RTL) ومن اليسار إلى اليمين (LTR). ويتضمن عادةً نصًا يحتوي على أنواع مختلفة من الحروف الأبجدية ، ولكنه قد يشير أيضًا إلى الكتابة المقلوبة ، والتي تُغير اتجاه النص في كل سطر.
مثال على ذلك اسم سارة العبري الذي يُكتب من اليمين إلى اليسار: שרה ، حيث تُكتب السن (ש) على اليمين، والريش (ר) في الوسط، والهاء (ה) على اليسار. وقد فشلت العديد من برامج الحاسوب في عرض هذا الاسم بشكل صحيح، لأنها صُممت لعرض النصوص في اتجاه واحد فقط.
بعض ما يُسمى بالكتابة من اليمين إلى اليسار، كالكتابة الفارسية والعربية، هي في الغالب، ولكن ليس حصراً، من اليمين إلى اليسار؛ إذ تُكتب التعبيرات الرياضية والتواريخ والأعداد التي تحتوي على وحدات من اليسار إلى اليمين. وينطبق هذا أيضاً إذا ما أُدرج نص من لغة تُكتب من اليسار إلى اليمين، كالإنجليزية، ضمنها؛ أو العكس، إذا ما أُدرجت العربية ضمن كتابة من اليسار إلى اليمين، كالإنجليزية.
دعم البرامج النصية ثنائية الاتجاه
دعم النصوص ثنائية الاتجاه هو قدرة نظام الحاسوب على عرض النصوص ثنائية الاتجاه بشكل صحيح. ويُختصر المصطلح غالبًا إلى " BiDi " أو " bidi ".
صُممت أنظمة الحاسوب المبكرة لدعم نظام كتابة واحد فقط ، عادةً للنصوص التي تُكتب من اليسار إلى اليمين والمبنية على الأبجدية اللاتينية . وقد أتاح إضافة مجموعات أحرف جديدة وتشفيرات أحرف دعم عدد من النصوص الأخرى التي تُكتب من اليسار إلى اليمين، لكنها لم تدعم بسهولة النصوص التي تُكتب من اليمين إلى اليسار مثل العربية أو العبرية ، ولم يكن الجمع بين النظامين عمليًا. تم إدخال النصوص التي تُكتب من اليمين إلى اليسار من خلال تشفيرات مثل ISO/IEC 8859-6 و ISO/IEC 8859-8 ، والتي تخزن الأحرف (عادةً) بترتيب الكتابة والقراءة. من الممكن ببساطة عكس ترتيب العرض من اليسار إلى اليمين إلى اليمين، لكن القيام بذلك يُفقد القدرة على عرض النصوص التي تُكتب من اليسار إلى اليمين بشكل صحيح. مع دعم الكتابة ثنائية الاتجاه، يُمكن دمج الأحرف من نصوص مختلفة على نفس الصفحة، بغض النظر عن اتجاه الكتابة.
وعلى وجه الخصوص، يوفر معيار Unicode أسسًا لدعم ثنائي الاتجاه الكامل، مع قواعد مفصلة حول كيفية ترميز وعرض مزيج النصوص من اليسار إلى اليمين ومن اليمين إلى اليسار.
دعم Unicode ثنائي الاتجاه
ينص معيار يونيكود على ترتيب الأحرف "منطقيًا"، أي بالتسلسل الذي يُراد تفسيرها به، وليس "بصريًا"، أي بالتسلسل الذي تظهر به. هذا التمييز مهم لدعم الكتابة ثنائية الاتجاه، لأنه عند أي انتقال بين اتجاهين، يتوقف العرض المرئي عن كونه العرض "المنطقي". لذا، ولتوفير دعم الكتابة ثنائية الاتجاه، يحدد يونيكود خوارزمية لتحويل التسلسل المنطقي للأحرف إلى العرض المرئي الصحيح. ولهذا الغرض، يقسم معيار ترميز يونيكود جميع أحرفه إلى أربعة أنواع: "قوي"، و"ضعيف"، و"محايد"، و"تنسيق صريح". [ 1 ]
شخصيات قوية
الأحرف القوية هي تلك التي لها اتجاه محدد. ومن أمثلة هذا النوع من الأحرف معظم الأحرف الأبجدية، والأحرف المقطعية، والرموز الصينية، والأرقام غير الأوروبية أو غير العربية، وعلامات الترقيم الخاصة بتلك الكتابات فقط.
شخصيات ضعيفة
الأحرف الضعيفة هي تلك التي تتسم باتجاه غامض. ومن أمثلة هذا النوع من الأحرف الأرقام الأوروبية، والأرقام العربية الشرقية، والرموز الحسابية، ورموز العملات.
شخصيات محايدة
الأحرف المحايدة لا يمكن تحديد اتجاهها بدون سياق. ومن أمثلتها فواصل الفقرات، وعلامات الجدولة، ومعظم أحرف المسافات البيضاء الأخرى. كما تندرج ضمن هذه الفئة رموز الترقيم الشائعة في العديد من الخطوط، مثل النقطتين، والفاصلة، والنقطة، والمسافة غير القابلة للكسر.
تنسيق صريح
أحرف التنسيق الصريحة، والتي تُعرف أيضًا باسم "أحرف التنسيق الاتجاهية"، هي تسلسلات يونيكود خاصة تُوجّه الخوارزمية لتعديل سلوكها الافتراضي. تُقسّم هذه الأحرف إلى "علامات" و"تضمينات" و"عزل" و"تجاوزات". ويستمر تأثيرها حتى ظهور فاصل فقرات أو حرف "pop".
ماركس
إذا تبع حرف ضعيف حرف ضعيف آخر، فإن الخوارزمية ستنظر إلى أول حرف قوي مجاور. قد يؤدي هذا أحيانًا إلى أخطاء عرض غير مقصودة. تُصحح هذه الأخطاء أو تُمنع باستخدام أحرف "شبه قوية". تُسمى أحرف التحكم في يونيكود هذه علامات . تُدرج العلامة ( U+200E علامة من اليسار إلى اليمين (LRM) أو U+200F علامة من اليمين إلى اليسار (RLM) ) في مكان ما لجعل الحرف الضعيف المُحاط بها يرث اتجاه كتابته.
For example, to correctly display the U+2122™TRADE MARK SIGN for an English name brand (LTR) in an Arabic (RTL) passage, an LRM mark is inserted after the trademark symbol if the symbol is not followed by LTR text (e.g. "قرأ Wikipedia™ طوال اليوم."). If the LRM mark is not added, the weak character ™ will be neighbored by a strong LTR character and a strong RTL character. Hence, in an RTL context, it will be considered to be RTL, and displayed in an incorrect order (e.g. "قرأ Wikipedia™ طوال اليوم.").
Embeddings
The "embedding" directional formatting characters are the classical Unicode method of explicit formatting, and as of Unicode 6.3, are being discouraged in favor of "isolates". An "embedding" signals that a piece of text is to be treated as directionally distinct. The text within the scope of the embedding formatting characters is not independent of the surrounding text. Also, characters within an embedding can affect the ordering of characters outside. Unicode 6.3 recognized that directional embeddings usually have too strong an effect on their surroundings and are thus unnecessarily difficult to use.
Isolates
The "isolate" directional formatting characters signal that a piece of text is to be treated as directionally isolated from its surroundings. As of Unicode 6.3, these are the formatting characters that are being encouraged in new documents – once target platforms are known to support them. These formatting characters were introduced after it became apparent that directional embeddings usually have too strong an effect on their surroundings and are thus unnecessarily difficult to use. Unlike the legacy 'embedding' directional formatting characters, 'isolate' characters have no effect on the ordering of the text outside their scope. Isolates can be nested, and may be placed within embeddings and overrides.
Overrides
The "override" directional formatting characters allow for special cases, such as for part numbers (e.g. to force a part number made of mixed English, digits and Hebrew letters to be written from right to left), and are recommended to be avoided wherever possible. As is true of the other directional formatting characters, "overrides" can be nested one inside another, and in embeddings and isolates.
Using Unicode to override
Using U+202DLEFT-TO-RIGHT OVERRIDE will switch the text direction from left-to-right to right-to-left. Similarly, using U+202ERIGHT-TO-LEFT OVERRIDE will switch the text direction from right-to-left to left-to-right based on the Unicode Bidirectional Algorithm.
Pops
إن حرف التنسيق الاتجاهي "pop"، المشفر في U+202C POP DIRECTIONAL FORMATTING ، ينهي نطاق أحدث "تضمين" أو "تجاوز" أو "عزل".
يركض
في هذه الخوارزمية، يُطلق على كل تسلسل من الأحرف القوية المتسلسلة اسم "سلسلة". الحرف "الضعيف" الواقع بين حرفين "قويين" لهما نفس الاتجاه يرث اتجاههما. أما الحرف "الضعيف" الواقع بين حرفين "قويين" باتجاه كتابة مختلف، فيرث اتجاه الكتابة للسياق الرئيسي (في مستند من اليسار إلى اليمين، يصبح الحرف من اليسار إلى اليمين، وفي مستند من اليمين إلى اليسار، يصبح من اليمين إلى اليسار).
جدول أنواع الأحرف ثنائية الاتجاه الممكنة
| النوع [2] | وصف | قوة | الاتجاهية | النطاق العام | حرف التحكم ثنائي الاتجاه [3] |
|---|---|---|---|---|---|
| ل | من اليسار إلى اليمين | قوي | من اليسار إلى اليمين | معظم الأحرف الأبجدية والمقطعية، والأحرف الصينية، والأرقام غير الأوروبية أو غير العربية، وحرف LRM، ... | U+200E علامة من اليسار إلى اليمين (LRM) |
| R | من اليمين إلى اليسار | قوي | من اليمين إلى اليسار | أدلام، غاراي، العبرية، المندائية، مندي كيكاكوي، نكو، السامرية، النصوص القديمة مثل الخروشتي والنبطية، حرف RLM، ... | U+200F علامة من اليمين إلى اليسار (RLM) |
| الألف | الحروف العربية | قوي | من اليمين إلى اليسار | الأبجدية العربية، والحنيفية الروهينغية، والسغدية، والسريانية، والثانوية، ومعظم علامات الترقيم الخاصة بتلك الكتابات، وحرف ALM، ... | U+061C علامة الحروف العربية (ALM) |
| الإنجليزية | الرقم الأوروبي | ضعيف | الأرقام الأوروبية، والأرقام العربية الهندية الشرقية، وأرقام إيباكت القبطية، ... | ||
| ES | فاصل أوروبي | ضعيف | علامة الجمع ، علامة الطرح ، ... | ||
| ET | مُنهي الأرقام الأوروبي | ضعيف | علامة الدرجة ، رموز العملات، ... | ||
| AN | الأرقام العربية | ضعيف | الأرقام العربية والهندية، والفواصل العشرية العربية وفواصل الآلاف، وأرقام الرومي، وأرقام الحنفي الروهينغية، ... | ||
| علوم الحاسوب | فاصل الأرقام المشترك | ضعيف | النقطتان الرأسيتان ، الفاصلة ، النقطة ، مسافة بدون كسر ، ... | ||
| NSM | علامة بدون تباعد | ضعيف | الأحرف في الفئات العامة: علامة، بدون مسافات، وعلامة، محيطة (Mn، Me) | ||
| بي إن | حياد الحدود | ضعيف | القيم الافتراضية القابلة للتجاهل، والأحرف غير النصية، وأحرف التحكم بخلاف تلك المحددة صراحةً لأنواع أخرى | ||
| ب | فاصل الفقرات | حيادي | فاصل الفقرات ، وظائف سطر جديد مناسبة، تحديد فقرات البروتوكول عالي المستوى | ||
| S | فاصل القطاعات | حيادي | علامات التبويب | ||
| WS | مساحة بيضاء | حيادي | المسافة ، مسافة الأرقام ، فاصل الأسطر ، تغذية النموذج ، مسافات كتل علامات الترقيم العامة (مجموعة أصغر من قائمة المسافات البيضاء في يونيكود ) | ||
| على | محايدون آخرون | حيادي | جميع الأحرف الأخرى، بما في ذلك أحرف استبدال الكائنات | ||
| بيئة أكثر انفتاحًا | التضمين من اليسار إلى اليمين | صريح | من اليسار إلى اليمين | شخصية LRE فقط | U+202A تضمين من اليسار إلى اليمين (LRE) |
| LRO | تجاوز من اليسار إلى اليمين | صريح | من اليسار إلى اليمين | شخصية LRO فقط | U+202D تجاوز من اليسار إلى اليمين (LRO) |
| RLE | تضمين من اليمين إلى اليسار | صريح | من اليمين إلى اليسار | شخصية RLE فقط | U+202B تضمين من اليمين إلى اليسار (RLE) |
| RLO | تجاوز من اليمين إلى اليسار | صريح | من اليمين إلى اليسار | حرف RLO فقط | U+202E تجاوز من اليمين إلى اليسار (RLO) |
| ملف PDF | تنسيق اتجاه البوب | صريح | ملف PDF للأحرف فقط | U+202C تنسيق اتجاهي لملفات POP (PDF) | |
| معهد أبحاث الرئة | عزل من اليسار إلى اليمين | صريح | من اليسار إلى اليمين | حرف LRI فقط | U+2066 عزل من اليسار إلى اليمين (LRI) |
| RLI | عزل من اليمين إلى اليسار | صريح | من اليمين إلى اليسار | حرف RLI فقط | U+2067 عزل من اليمين إلى اليسار (RLI) |
| FSI | عزل قوي أولي | صريح | رمز FSI فقط | U+2068 أول عزل قوي (FSI) | |
| PDI | عزل اتجاهي للبوب | صريح | حرف PDI فقط | U+2069 POP DIRECTIONAL ISOLATE (PDI) | |
ملحوظات
| |||||
حماية
تُستخدم الأحرف ثنائية الاتجاه في نظام يونيكود في ثغرة مصدر حصان طروادة . [ 2 ]
يُبرز برنامج Visual Studio Code أحرف التحكم ثنائية الاتجاه منذ الإصدار 1.62 الذي تم إصداره في أكتوبر 2021. [ 3 ]
يُبرز برنامج Visual Studio أحرف التحكم ثنائية الاتجاه منذ الإصدار 17.0.3 الذي تم إصداره في 14 ديسمبر 2021. [ 4 ]
نصوص تستخدم نصًا ثنائي الاتجاه
الهيروغليفية المصرية
كانت الهيروغليفية المصرية تُكتب في اتجاهين، حيث كانت العلامات التي لها "رأس" أو "ذيل" مميز تواجه بداية السطر.
الأحرف الصينية وغيرها من نصوص CJK
يمكن كتابة الأحرف الصينية في أي اتجاه، وكذلك عموديًا (من أعلى إلى أسفل ثم من اليمين إلى اليسار)، خاصةً في اللافتات (مثل اللوحات)، لكن اتجاه الأحرف الفردية لا يتغير. يُلاحظ هذا غالبًا على حافلات الرحلات السياحية في الصين، حيث يُكتب اسم الشركة عادةً من مقدمة الحافلة إلى مؤخرتها - أي من اليمين إلى اليسار على الجانب الأيمن، ومن اليسار إلى اليمين على الجانب الأيسر. كما تُكتب النصوص الإنجليزية على الجانب الأيمن من الحافلة بشكل شائع بترتيب عكسي. (انظر صور حافلة الرحلات السياحية ومركبة البريد أدناه).
وبالمثل، يمكن كتابة أنظمة الكتابة الصينية واليابانية والكورية الأخرى المكونة من نفس الأحرف المربعة، مثل نظام الكتابة الياباني ونظام الكتابة الكوري ، في أي اتجاه، على الرغم من أن الكتابة الأفقية من اليسار إلى اليمين، ومن الأعلى إلى الأسفل، والكتابة الرأسية من الأعلى إلى الأسفل ومن اليمين إلى اليسار هما الشكلان الأكثر شيوعًا.
الجانب الأيمن (يمتد النص من اليمين إلى اليسار، بما في ذلك النص الإنجليزي)
الجانب الأيسر (يمتد النص من اليسار إلى اليمين)
على الجانب الأيمن من طائرة الخطوط الجوية هاينان هذه ، يمتد النص من اليمين إلى اليسار (空航南海).- لكن الجانب الأيسر من طائرة الخطوط الجوية هاينان هذه يظهر النص الذي يمتد من اليسار إلى اليمين (海南航空).
صورة تُظهر نصًا على جانبي مركبة تابعة لبريد الصين. على الباب الأيمن، يظهر اسم "بريد الصين" بشكل خاطئ .
بوستروفيدون
الكتابة البوستروفيدون هي أسلوب كتابة موجود في النقوش اليونانية القديمة، وفي اللغة السبئية القديمة (إحدى لغات جنوب الجزيرة العربية القديمة )، وفي الأحرف الرونية المجرية . تعتمد هذه الطريقة في الكتابة على تبديل اتجاه الكتابة، وعادةً ما تعكس ترتيب الأحرف الفردية، في كل سطر متتالٍ.
نوع القمر
يُعدّ خط مون نسخةً بارزةً من الأبجدية اللاتينية، صُمّمت خصيصًا لتكون أبجديةً ملموسةً للمكفوفين. في البداية، كان النص يُغيّر اتجاهه (وليس اتجاه الأحرف) عند نهاية الأسطر. وكانت خطوط بارزة خاصة تربط نهاية السطر ببداية السطر التالي. [ 5 ] وفي حوالي عام 1990، أصبح اتجاهه من اليسار إلى اليمين .
انظر أيضاً
مراجع
- ↑ "UAX #9: خوارزمية يونيكود ثنائية الاتجاه" . Unicode.org. 2018-05-09 . تم الاطلاع عليه بتاريخ 2018-06-26 .
- ↑ "هجمات مصدر حصان طروادة" . trojansource.codes . تم الاطلاع عليه بتاريخ 17 يناير 2022 .
- ↑ "Visual Studio Code أكتوبر 2021" . code.visualstudio.com . تم الاطلاع عليه بتاريخ 11 نوفمبر 2021 .
- ↑ "ملاحظات إصدار Visual Studio 2022 الإصدار 17.0" . docs.microsoft.com . تم الاطلاع عليه بتاريخ 17 يناير 2022 .
- ↑ نوع القمر للمكفوفين ، مجموعة رامسير للكتاب المقدس ، مكتبة كاثرين أ. مارتن ، جامعة مينيسوتا دولوث .
روابط خارجية
- الملحق رقم 9 من معايير يونيكود: الخوارزمية ثنائية الاتجاه
- إرشادات اتحاد شبكة الويب العالمية (W3C) بشأن تقنيات تأليف النصوص ثنائية الاتجاه - تتضمن أمثلة وشروحات وافية
- تحتوي مكونات ICU الدولية لليونيكود على تطبيق للخوارزمية ثنائية الاتجاه - بالإضافة إلى خدمات تدويل أخرى
- ترميز الأحرف
- خوارزميات يونيكود
- التدويل والتوطين
- توجيهات الكتابة
