الانتقال إلى المحتوى الرئيسي
برايم ديف
الواجهة الأمامية٩ دقائق قراءة

موقع ثنائي اللغة بـ Next.js: دروس من الفارسية و RTL

نيلوفر أحمديمهندسة الواجهة الأمامية

الدعم الحقيقي للفارسية أكبر بكثير من dir="rtl". هذه خلاصة تجربتنا في عدة مشاريع ثنائية اللغة.

القاعدة الأولى: لا نص داخل المكوّنات

كل نص — حتى تسميات الوصول ورسائل الخطأ — يجب أن يأتي من كتالوج الترجمة. نستخدم next-intl، وسكربت في CI يُفشل البناء عند ظهور نص مكتوب داخل JSX.

القاعدة الثانية: خصائص CSS المنطقية

استخدم margin-inline-start بدل margin-left، و inset-inline-start بدل left. حينها يعمل التصميم في الاتجاهين بلا أي شرط. الأيقونات الاتجاهية (الأسهم) هي الاستثناء الوحيد وتُقلب بـ rtl:rotate-180.

القاعدة الثالثة: أرقام وتواريخ أصلية

التقويم الفارسي عبر Intl.DateTimeFormat('fa-IR-u-ca-persian') والأرقام عبر Intl.NumberFormat متاحة أصلاً بلا مكتبة إضافية.

النتيجة؟ موقع لا يبدو «مترجماً» لقارئه؛ بل مكتوب بلغته من البداية.