كل الأدلّة

بناء منتجات ثنائية اللغة عربي/إنجليزي

ثنائية اللغة قرار معماري لا مهمّة ترجمة. حفنة من الاختيارات المبكّرة تقرّر إن كانت اللغة الثانية منتجًا حقيقيًا أم فكرةً لاحقة ظاهرة للعيان.

مدّة القراءة · ٩ دقائق

أعطِ كل لغة رابطها الخاص

هذا القرار الذي يقوم عليه كل ما سواه، وأكثرها شيوعًا في الخطأ. فإن كان مفتاح اللغة يعيد كتابة الصفحة في مكانها — الرابط نفسه، محتوى مختلف، والتفضيل مخزّن في `localStorage` — فهناك عنوان واحد للغتين. ومحرّك البحث يستطيع فهرسة إحداهما، والأخرى عمليًا غير موجودة، ولا يغيّر ذلك أي قدر من عمل الترجمة.

والحل أن تكون كل لغة مستندًا حقيقيًا بعنوان حقيقي، ولها وسم canonical خاص بها. الإنجليزية في الجذر والعربية تحت `/ar/` هو الترتيب الشائع وهو ما يستخدمه هذا الموقع. وأي بادئة تختار أقلّ أهمية بكثير من أن تختار واحدة.

والفائدة الثانوية أن اللغة تصير معروفة وقت البناء. فالخادم الذي يُصيّر الصفحة يستطيع إصدار اللغة الصحيحة في أول بايت بدل أن يخمّن ويترك العميل يصحّح — وهذا هو الفرق بين صفحة تُفهرس صحيحًا وصفحة يرى فيها الزاحف الإنجليزية بينما يرى الزائر العربية.

hreflang، والطريقة التي يفشل بها عادةً

بعد أن يصير لكل لغة عنوان، يخبر `hreflang` محركات البحث أنها الصفحة نفسها بلغات مختلفة. وثلاث قواعد تفسّر تقريبًا كل تطبيق مكسور.

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

وأضف `x-default` لتقول أي نسخة تخدم زائرًا لا تملك لغته. ولا تُشر إلى صفحة غير موجودة: فـ`hreflang` يشير إلى 404 أسوأ من غياب الإشارة أصلًا. وإن كان قسم موجودًا بلغة واحدة فقط، فقل ذلك بالإغفال لا بوعد صفحة لم تكتبها.

الخطوط والتكافؤ والانحراف

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

وتكافؤ المحتوى قرار منتج ينبغي أن يُتخذ بصوت مسموع. فموقع عربي من تسع صفحات يقابله نظير إنجليزي من صفحة واحدة استراتيجية مشروعة إن كان مشتروك يبحثون بالعربية — ولا يصير مشكلة إلا حين لا يقرّره أحد. وما ليس مشروعًا هو الترجمة الآلية للغة الثانية لتحقيق تكافؤ اسمي: فالصفحات الرقيقة المترجَمة آليًا أداؤها سيئ وقراءتها أسوأ.

والانحراف هو الفشل بعيد المدى. الإنجليزية تُحدَّث، والعربية لا، وبعد ثمانية عشر شهرًا تصف الاثنتان منتجين مختلفين. والدفاع البنيوي أن تبقى اللغتان في مصدر واحد منظّم بحيث يصير المفتاح الناقص خطأ بناء لا فجوة صامتة — وهكذا بُني هذا الموقع بالضبط: الصفحة العربية تفشل في التوليد إن نقص نصّ.

القرارات التي تُتخذ قبل البناء

  • رابط واحد لكل لغة، ولكلٍّ وسم canonical خاص — يُقرَّر قبل وجود أول مسار.
  • إشارات hreflang متبادلة وذاتية الإشارة ومحدّدة بالصفحة، مع x-default.
  • أي محتوى يوجد بأي لغة، مذكورًا عن قصد لا مكتشفًا.
  • خطوط مجزّأة لكل لغة، لا حزمة واحدة للجميع.
  • مصدر واحد منظّم للّغتين، بحيث تكسر الترجمة الناقصة البناء.
  • من يراجع العربية ومتى — مترجم عند الإطلاق ليس خطة صيانة.

أسئلة متكرّرة

هل تعيش النسخة العربية على نطاق فرعي أم على مسار؟

المسار (`/ar/`) أبسط تشغيليًا ويبقي الثقل على مضيف واحد. والنطاقات الفرعية ونطاقات الدول مبرّرة حين تختلف الأسواق فعلًا في المحتوى والملكية، لكنها أكثر عبئًا في التشغيل.

هل نطلق بالإنجليزية ونضيف العربية لاحقًا؟

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

هل الترجمة الآلية كافية للبداية؟

لفهم واجهة، غالبًا نعم. أما لصفحة تريدها مفهرسة وموثوقة، فلا. الصفحات الرقيقة المترجَمة آليًا تُقرأ على حقيقتها، وكلفة المصداقية التي تخسرها تتجاوز ما وفّرته الترجمة.

أدلّة ذات صلة

تشتغل على شيء من هذا؟

احكِ لنا ما الذي تبنيه. نردّ بصفحة واحدة فيها النطاق والمدّة ورقم تقدر تخطّط عليه.

أرسل لنا ملخّصًا