العربية والاتجاه
العربية والاتجاه، كلغة أولى لا كإضافة.
أغلب المكتبات تكتفي بخاصية dir="rtl" وتتوقّف. أمّا dev-dga فيتعامل مع العربية كلغة أولى: تقويم هجري، وترقيم عربي للقوائم، واتصال حروف محمي، ودلالات لوحة مفاتيح منعكسة، وبيانات سعودية سليمة الاتجاه، كلها حيّة أدناه. بدّل الاتجاه وشاهد الصفحة كلها تستجيب.
الاتجاه ليس مجرّد خانة تختارها.
قلب dir يعكس الصناديق فقط. لكنه لا يعطيك تقويم أم القرى، ولا ترقيم القوائم بالعربية، ولا اتصال حروف يصمد أمام رموز التصميم، ولا أسهمًا تتبع اتجاه القراءة، ولا رقم هوية يبقى مقروءًا داخل جملة عربية. هذه أول ما يلاحظه أي فريق حكومي سعودي، ولذلك يهتم بها هذا النظام.
تقويم هجري / أم القرى، مدمج أصلًا
يحمل DatePicker وDateRangePicker مبدّلًا بين الميلادي والهجري داخل التقويم. انتقل إلى الهجري فيعرض كل يوم تاريخ أم القرى وتحته اليوم الميلادي، فتقابل بين التقويمين دون مغادرة الحقل. والقيمة المخزّنة دائمًا Date أصلية، والعرض الهجري للعرض فقط.
- مبدّل ميلادي ↔ هجريعنصر داخل النافذة، مُفعّل افتراضيًا. أو ثبّت تقويمًا واحدًا بخاصية calendar.
- خلايا بتقويمينتطبع showSecondaryCalendar رقم اليوم في التقويم الآخر صغيرًا أسفل كل يوم.
- أرقام لاتينية دائمًاتُعرض الأرقام 0-9 لا الأرقام العربية-الهندية، وهو عرف النماذج والهويّات الحكومية السعودية.
- ترويسة أيام بلغة صحيحةتُقرأ أوائل الأيام ح ن ث ر خ ج س، حروف حقيقية لا “ال” مختزلة.
صدر إصلاح أوائل الأيام في @dev-dga 0.12.2؛ كانت النسخ الأقدم تختزل عدّة أيام إلى “ال”.
القوائم المتداخلة تُرقّم بالعربية
ترقّم القائمة المرتّبة مستواها الأعلى 1-2-3 في الاتجاهين. أمّا العناصر المتداخلة فتُظهر اللغة: a-b-c في اليسار، وأ-ب-ج-د-ه في اليمين، وهو الترتيب الأبجدي العربي، مدفوعًا كليًا بـ @counter-style في CSS.
- Eligibility
- National ID
- Proof of address
- Review
- Submit
- الأهلية
- رقم الهوية
- إثبات العنوان
- المراجعة
- الإرسال
تستخدم القائمتان أدناه الترميز نفسه؛ الفارق هو الاتجاه فقط.
اتصال الحروف محمي
العربية خط متصل، حروفها تترابط. والمباعدة (letter-spacing) التي تُحسّن الخط اللاتيني تُمزّق الكلمة العربية إلى حروف منفصلة. لذا يعيد النظام letter-spacing إلى normal في اليمين ولا يحوّل العربية إلى أحرف كبيرة، فتبقى العناوين مقروءة.
الحكومة الرقمية
الحكومة الرقمية
تضيف العيّنة الثانية letter-spacing: 0.25em، وهو تمامًا ما تفعله أدوات الخط اللاتيني. لا تطبّقها على العربية أبدًا.
الأسهم تتبع اتجاه القراءة
تنعكس دلالات لوحة المفاتيح مع التخطيط. في التبويبات والمنزلق والتقييم وشريط القوائم وشبكة التقويم، السهم الذي ينقل إلى التالي يتبع اتجاه القراءة: ففي اليمين يتقدّم السهم الأيسر ويرجع الأيمن. وينقل Home وEnd إلى الأول والأخير، مع محطة تنقّل واحدة.
- ← →التنقّل بين العناصر، منعكسًا في اليمين ليطابق اتجاه القراءة.
- Home Endالقفز إلى العنصر الأول / الأخير في المجموعة.
- Tabمحطة واحدة للمجموعة كلها، والأسهم تنقّل داخلها.
الأسهم تنقّل بين التبويبات - وتنعكس في اليمين.
ركّز على عنصر أدناه وجرّب الأسهم، بدّل الاتجاه واشعر بانعكاسها.
تخطيط واحد، تعكسه الخصائص المنطقية
لا شيء في هذه الصفحة يستخدم left أو right أو margin-left أو text-align: left. فالمسافات والحدود والمحاذاة كلها بخصائص منطقية: margin-inline وinset-inline-start وtext-align: start، فيكفي قلب dir واحد لعكس الشجرة كلها دون أي عمل لكل مكوّن. والبطاقة أدناه مكوّن واحد، ينعكس تلقائيًا.
ومكوّنات @dev-dga مكتوبة بالأسلوب نفسه: خصائص منطقية للتخطيط، فقلب الاتجاه يعكس كل صندوق دون فروع خاصة بالـ RTL.
المعرّفات السعودية تبقى يسارية داخل العربية
رقم الهوية والآيبان ورقم الجوال +966 بيانات من اليسار إلى اليمين، حتى داخل جملة عربية. فلو تُركت لخوارزمية الاتجاه لقفزت + أو SA إلى الطرف الخطأ وصار الرقم غير مقروء. لذا يثبّت كل حقل قيمته بـ dir="ltr" و inputMode المناسب، فتنعكس التسمية ولا يختلّ الرقم.
التسميات والتخطيط تتبع اتجاه الصفحة، والقيم مثبّتة يسارية. القيم المعروضة نموذجية.
ابنِ منتجك العربي على نظام يفكّر بالاتجاه أصلًا.