· فريق Reqdesk

العربية من اليوم الأوّل ليست كالعربية في اليوم التسعين

لماذا كتبنا كل مكوّن بـ CSS Logical Properties ولم نمتلك يومًا ورقة قلب من LTR إلى RTL.

أغلب البرمجيات في الخليج تشحن بالإنجليزية أوّلاً، ثم “تضيف العربية لاحقًا”. النتيجة موثّقة: ورقة أنماط منفصلة للعربية، مكوّنات مقلوبة بطرق مفاجئة، وذيل طويل من تذاكر “هذا الحوار يفيض في الاتجاه المعاكس” لا يُغلق أبدًا.

قرّر Reqdesk الشحن ثنائي اللغة من اليوم الأوّل. ليس لأننا نُبلاء بشكل خاص، بل لأننا عرفنا تكلفة البديل.

ماذا يعني ذلك عمليًا؟

كل margin صار margin-inline-start. كل left: صار inset-inline-start:. كل اتجاه flex صار منطقيًا لا فيزيائيًا. مواصفات CSS تملك الأدوات الصحيحة — لكن عالم SaaS تجاهلها خمس عشرة سنة.

ماذا حصلنا في المقابل؟

  • ورقة أنماط واحدة، لغتان. التبديل إلى العربية يقلب التطبيق بالكامل بصورة طبيعية. لا بناء ثانٍ، ولا اختبار ثانٍ، ولا أيقونات مقلوبة بالخطأ.
  • نظام تصميم واحد. للعلامات قيم تباعد واحدة، لا “حشو يسار” و”حشو يمين”. يفكّر المصمّمون بمصطلحَي “بداية” و”نهاية” — وهو ما كانوا يفعلونه أصلًا.
  • لا افتراضات LTR في JS. الكود الذي يحسب المواقع يقرأ من القيم المنطقية ذاتها التي تقرأها CSS. لا توجد if (locale === 'ar') { /* mirror */ } في أيّ مكان.

ما الكلفة؟

الانتباه أساسًا. دعم المتصفّحات ممتاز (كل متصفّح حديث منذ 2022). الجزء الصعب كان نسيان عضليّة margin-left: 16px التي بنيناها في خمسة عشر عامًا.

الدرس، إن كان هناك درس

دعم العربية قرار وقت بناء، لا ميزة وقت تشغيل. اتّخذه في اليوم الأوّل وإلّا دفعتَه عشر مرّات في الإصدار الثاني.