الرئيسية: محمد أبوعيشهمتاح للعمل متاح للعمل English

العربية وRTL // دليل

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

تحتوي الجمل العربية كثيرًا على أسماء لاتينية وأرقام وروابط. تعرّف على كيفية ترتيبها بخوارزمية الاتجاهين وكيف تعزل النص بـ HTML وCSS.

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

ماذا تفعل خوارزمية الاتجاهين

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

ينجح ذلك في أغلب الأحيان. وتظهر المشكلات عند الحدود، خاصة مع علامات الترقيم المجاورة لكلمة لاتينية.

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

واتجاه الفقرة الأساسي مهم أيضًا، فهو يحدد الجهة التي تبدأ منها الفقرة ومكان الرموز المحايدة عند الأطراف. لذلك يكون ضبط <code>;dir<;/code>; بشكل صحيح على الصفحة وعلى كل كتلة هو الخطوة الأولى.

أسماء لاتينية وأرقام وروابط داخل العربية

اسم علامة مثل Figma داخل جملة عربية يُعرض من اليسار إلى اليمين بينما تجري الجملة من اليمين إلى اليسار حوله. وإذا تبعت الاسمَ علامة استفهام أو نقطة فقد تقفز العلامة إلى الجهة الخطأ من الكلمة اللاتينية.

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

وينطبق الأمر على الروابط ونطاقات الأرقام. افحص كل نص من هذا النوع في سياقه بدل افتراض أنه سيظهر صحيحًا.

الأدوات: dir وbdi وisolate

  • الاتجاه التلقائي

    عبر الخاصية <code>;dir="auto"</code>; يختار المتصفح الاتجاه من أول حرف قوي في النص. مفيد للمحتوى مجهول اللغة.

  • عنصر bdi

    يحيط بجزء من النص مثل اسم مستخدم، فلا يؤثر اتجاهه في النص المحيط. واتجاهه الافتراضي تلقائي.

  • العزل في CSS

    طريقة CSS لعزل عنصر عمّا حوله هي <code>;unicode-bidi: isolate<;/code>;. اجمعها مع اتجاه محدد عندما تتحكم في الشيفرة.

محتوى المستخدمين والاختبار

الأسماء والتعليقات والرسائل التي يكتبها المستخدمون قد تكون بأي لغة. لف كل قيمة مُدرجة في <code>;&lt;bdi&;gt;</code>; أو امنحها <code>;dir="auto"</code>; حتى لا يبعثر اسم عربي واحد جملة إنجليزية، والعكس.

لا تحاول إصلاح مشكلات الاتجاهين بإدراج محارف تحكم غير مرئية في النص إلا عند الضرورة. فالوسوم مثل <code>;dir<;/code>; و<code>;&lt;bdi&;gt;</code>; تُبقي المحتوى نظيفًا وأسهل صيانةً وترجمةً.

  • اختبر نصوصًا مختلطة حقيقية: اسم علامة مع علامة استفهام، وسعر، ورقم هاتف، ورابط.
  • افحص النتيجة في اتجاهَي الصفحة.
  • اطلب من قارئ عربي أصلي تأكيد الترتيب.

المصادر

  • Unicode Consortium. Unicode Standard Annex #9: Unicode Bidirectional Algorithm. https://www.unicode.org/reports/tr9/
  • W3C. Structural markup and right-to-left text in HTML. https://www.w3.org/International/questions/qa-html-dir

صيغ هذا الدليل بمساعدة الذكاء الاصطناعي اعتمادًا على معايير ومراجع عامة. وللنص الدقيق لأي معيار، ارجع إلى المصادر المذكورة أعلاه.

المزيد في هذا الموضوع

  • العربية وRTL2 دقائق قراءة

    تصميم النماذج والحقول لـ RTL

    ليست كل الحقول تنقلب. تعرّف على الحقول التي تبقى من اليسار إلى اليمين في صفحة RTL وتلك التي تستخدم الاتجاه التلقائي وكيف تحاذي التسميات والرسائل.

  • العربية وRTL2 دقائق قراءة

    ارتفاع السطر والوزن في النص العربي

    يحتاج النص العربي عادةً إلى ارتفاع سطر أكبر من اللاتيني، وقد تبهت الأوزان الرقيقة، وقد يلزم تعديل الحجم. نقاط انطلاق عملية للاختبار.

  • العربية وRTL2 دقائق قراءة

    التوطين أكثر من الترجمة

    ترجمة الكلمات خطوة واحدة فقط. أما التوطين فيشمل التخطيط والجمع والتواريخ والوحدات والصور والنبرة. قائمة تحقق للمنتجات العربية.

اختصارات لوحة المفاتيح
اختصارات المفتاح الواحد

أوقفها إن كنت تستخدم الإدخال الصوتي أو كانت تزعجك أثناء التصفح.