نص ثنائي الاتجاه

يحتوي النص ثنائي الاتجاه على اتجاهين للنص ، من اليمين إلى اليسار (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+2122TRADE 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 ، ينهي نطاق أحدث "تضمين" أو "تجاوز" أو "عزل".

يركض

في هذه الخوارزمية، يُطلق على كل تسلسل من الأحرف القوية المتسلسلة اسم "سلسلة". الحرف "الضعيف" الواقع بين حرفين "قويين" لهما نفس الاتجاه يرث اتجاههما. أما الحرف "الضعيف" الواقع بين حرفين "قويين" باتجاه كتابة مختلف، فيرث اتجاه الكتابة للسياق الرئيسي (في مستند من اليسار إلى اليمين، يصبح الحرف من اليسار إلى اليمين، وفي مستند من اليمين إلى اليسار، يصبح من اليمين إلى اليسار).

جدول أنواع الأحرف ثنائية الاتجاه الممكنة

نوع الأحرف ثنائي الاتجاه ( خاصية أحرف Unicode من فئة Bidi_Class ) [1]
النوع [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)
ملحوظات
1. ^ خوارزمية يونيكود ثنائية الاتجاه (UAX#9) ، اعتبارًا من إصدار يونيكود 16.0
2. ^ أنواع الأحرف ثنائية الاتجاه الممكنة لخاصية الحرف: Bidi_Class أو 'type'
3. ^ أحرف التحكم ثنائي الاتجاه : تم تعريف اثني عشر حرفًا لتنسيق التحكم ثنائي الاتجاه. وهي غير مرئية، وليس لها أي تأثير سوى تحديد الاتجاه. تسعة منها لها نوع ثنائي الاتجاه فريد ومُهيمن يستخدمه الخوارزمية. نوع كل حرف هو اختصاره (على سبيل المثال، الحرف 'LRE' له نوع ثنائي الاتجاه 'LRE').

حماية

تُستخدم الأحرف ثنائية الاتجاه في نظام يونيكود في ثغرة مصدر حصان طروادة . [ 2 ]

يُبرز برنامج Visual Studio Code أحرف التحكم ثنائية الاتجاه منذ الإصدار 1.62 الذي تم إصداره في أكتوبر 2021. [ 3 ]

يُبرز برنامج Visual Studio أحرف التحكم ثنائية الاتجاه منذ الإصدار 17.0.3 الذي تم إصداره في 14 ديسمبر 2021. [ 4 ]

نصوص تستخدم نصًا ثنائي الاتجاه

الهيروغليفية المصرية

كانت الهيروغليفية المصرية تُكتب في اتجاهين، حيث كانت العلامات التي لها "رأس" أو "ذيل" مميز تواجه بداية السطر.

الأحرف الصينية وغيرها من نصوص CJK

يمكن كتابة الأحرف الصينية في أي اتجاه، وكذلك عموديًا (من أعلى إلى أسفل ثم من اليمين إلى اليسار)، خاصةً في اللافتات (مثل اللوحات)، لكن اتجاه الأحرف الفردية لا يتغير. يُلاحظ هذا غالبًا على حافلات الرحلات السياحية في الصين، حيث يُكتب اسم الشركة عادةً من مقدمة الحافلة إلى مؤخرتها - أي من اليمين إلى اليسار على الجانب الأيمن، ومن اليسار إلى اليمين على الجانب الأيسر. كما تُكتب النصوص الإنجليزية على الجانب الأيمن من الحافلة بشكل شائع بترتيب عكسي. (انظر صور حافلة الرحلات السياحية ومركبة البريد أدناه).

وبالمثل، يمكن كتابة أنظمة الكتابة الصينية واليابانية والكورية الأخرى المكونة من نفس الأحرف المربعة، مثل نظام الكتابة الياباني ونظام الكتابة الكوري ، في أي اتجاه، على الرغم من أن الكتابة الأفقية من اليسار إلى اليمين، ومن الأعلى إلى الأسفل، والكتابة الرأسية من الأعلى إلى الأسفل ومن اليمين إلى اليسار هما الشكلان الأكثر شيوعًا.

بوستروفيدون

الكتابة البوستروفيدون هي أسلوب كتابة موجود في النقوش اليونانية القديمة، وفي اللغة السبئية القديمة (إحدى لغات جنوب الجزيرة العربية القديمة )، وفي الأحرف الرونية المجرية . تعتمد هذه الطريقة في الكتابة على تبديل اتجاه الكتابة، وعادةً ما تعكس ترتيب الأحرف الفردية، في كل سطر متتالٍ.

نوع القمر

يُعدّ خط مون نسخةً بارزةً من الأبجدية اللاتينية، صُمّمت خصيصًا لتكون أبجديةً ملموسةً للمكفوفين. في البداية، كان النص يُغيّر اتجاهه (وليس اتجاه الأحرف) عند نهاية الأسطر. وكانت خطوط بارزة خاصة تربط نهاية السطر ببداية السطر التالي. [ 5 ] وفي حوالي عام 1990، أصبح اتجاهه من اليسار إلى اليمين .

انظر أيضاً

مراجع

  1. "UAX #9: خوارزمية يونيكود ثنائية الاتجاه" . Unicode.org. 2018-05-09 . تم الاطلاع عليه بتاريخ 2018-06-26 .
  2. "هجمات مصدر حصان طروادة" . trojansource.codes . تم الاطلاع عليه بتاريخ 17 يناير 2022 .
  3. "Visual Studio Code أكتوبر 2021" . code.visualstudio.com . تم الاطلاع عليه بتاريخ 11 نوفمبر 2021 .
  4. "ملاحظات إصدار Visual Studio 2022 الإصدار 17.0" . docs.microsoft.com . تم الاطلاع عليه بتاريخ 17 يناير 2022 .
  5. نوع القمر للمكفوفين ، مجموعة رامسير للكتاب المقدس ، مكتبة كاثرين أ. مارتن ، جامعة مينيسوتا دولوث .