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

Steps for processing requests from different domains

عند وصول طلب، هذا ما يحدث:

  1. يقوم DNS بإخبار المستعرض موضع استضافة الموقع.
  2. يصل الطلب إلى خادم الويب ويحدد المستضيف الافتراضي الذي سيقوم بالرد.
  3. يقوم المستضيف الافتراضي بتشغيل WordPress و WPML. يقوم WPML بإخبار WordPress بالصفحة الواجب الرد بها لكل لغة.

كي تعمل اللغات في النطاقات المختلفة، تحتاج جميع اللغات إلى الإشارة إلى نفس تثبيت WordPress. وتكون في حاجة إلى إعداد تكوين DNS وخادم الويب Apache للقيام بذلك.

إذا وجدت نفسك تقوم بتحرير ملف htaccess.، محاولاً إعادة توجيه الطلبات من نطاق إلى آخر، فأنت تقوم بشيء خاطئ. هناك تثبيت WordPress واحد، ومن ثم ليس هناك أي شيء تعيد التوجيه إليه.

1) إعداد DNS

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

إذا كنت تدير موقعًا محليًا (localhost) وترغب في اختبار هذا التكوين، ستحتاج إلى تحرير ملف ‘hosts’ وإضافة مدخلات للنطاقات المختلفة.

في المعتاد، يكون عنوان الخادم المحلي 127.0.0.1، ولذا إذا كنت ترغب في اختبار النطاقات مثل es.local و de.local، قم بإضافة هذه الأكواد إلى ملف hosts الحالي:

127.0.0.1  es.local
127.0.0.1  de.local

على الأجهزة العاملة بنظام لينكس، ملف hosts يكون في المسار /etc/hosts. وفي نظام ويندوز، عادة ما يكون في المسار C:WINDOWSsystem32driversetchosts.

2) إعداد خادم الويب

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

الطريقة الأسهل للحصول على مدخل VirtualHost مفرد لجميع النطاقات واستخدام تعليمات ServerAlias لإخبار خادم الويب Apache أن يقوم بالرد على النطاقات المختلفة بنفس المستضيف الافتراضي.

على سبيل المثال:

<VirtualHost *>
  DocumentRoot /your_wp_install_directory/wordpress
  ServerName www.english-domain.com
  ServerAlias www.french-domain.fr

  ... your other stuff here ...
</VirtualHost>

يقوم ذلك بإخبار Apache أن هناك تثبيت WordPress واحد وهو الذي سيقوم بالرد على الطلبات الواردة من www.english-domain.com و www.french-domain.fr. لا يهم إذا كانت هذه الروابط نطاقات أو نطاقات فرعية مختلفة تمامًا.

إذا كنت لا تعرف كيفية إعداد ServerAlias في ملف المستضيف الافتراضي (ربما لأنك ليس لديك وصول مباشر إليه)، يمكنك إعداد أقسام VirtualHost، بحيث يشير كلاهما إلى نفس مسار DocumentRoot (المسار لمكان تثبيت WordPress)، ولكن مع قيم ServerName مختلفة.

يمكنك اختبار هذا الإعداد حتى بدون WPML (موصى به). اذهب إلى كلا النطاقين وتأكد من مشاهدتك لموقع WordPress الخاص بك.

ملحوظة: لن يسمح لك العديد من مقدمي خدمة الاستضافة المشاركة بتحرير ملف تكوين Apache مباشرة. بدلاً من ذلك يمكنك محاولة إنشاء نطاقات cPanel-addon تشير إلى نفس تثبيت WordPress الفعلي.

3) إخبار WPML بأنك تستخدم لغات مختلفة في النطاقات

بمجرد عمل هذا الإعداد، يمكنك إخبار WPML أن يقوم باستخدامه لتحديد اللغات.

اذهب إلى WPML->Languages (اللغات). وهناك، قم بتحديد اللغات ‘A different domain per language‘ (نطاق مختلف لكل لغة). سيطلب منك WPML تحديد النطاقات لكل لغة. أدخل القيم، وتحقق منها، ثم احفظ.

‘A different domain per language’ in WPML.

القيم الافتراضية، التي يقوم WPML بتحديدها في حقول اللغة، تكون النطاقات الفرعية مع أسماء الإعدادات المحلية. يمكنك استبدالها بالأسماء الفعلية للنطاق.


الدعم متعدد المواقع

يصف لك قسم الأسئلة الشائعة هذا الخطوات المطلوبة لإعداد اللغات في النطاقات لتثبيت WordPress أحادي الموقع.

يمكنك استخدام اللغات في النطاقات في الوضع متعدد المواقع، وذلك بعد القيام بعمليات تكوين إضافية. لفعل ذلك، اتبع الدليل الخاص بإعداد اللغات في النطاقات في الوضع متعدد المواقع.