WPML

لا يوجد شيء لترجمته في تكامل ElasticPress. تجعل إضافة التوافق ElasticPress يعرض النتائج الصحيحة لغوياً تلقائياً؛ وتتمثل مهمتك في تثبيت المكونات، وتشغيل المزامنة الأولية، والتأكد من أن النتائج تبدو صحيحة.

قبل البدء

ثبّت هذه الإضافات وفعّلها على نفس الموقع:

تحتاج أيضاً إلى نقطة نهاية Elasticsearch: مستضافة ذاتياً، أو خدمة مدارة مثل ElasticPress.io (يفتح في علامة تبويب جديدة) أو Elastic Cloud أو AWS OpenSearch. اضبط إعدادات ElasticPress مع مضيف Elasticsearch الخاص بك وتأكد من نجاح الفهرسة على موقع أحادي اللغة قبل إضافة طبقة WPML.

اضبط إعدادات لغات WPML الخاصة بك قبل تشغيل المزامنة الأولى.

كيف تعمل الفهرسة لكل لغة

تنشئ إضافة WPML ElasticPress فهرس Elasticsearch منفصلاً لكل لغة في موقعك. ويحتوي فهرس كل لغة على:

  • ترجمات إلى تلك اللغة لكل نوع منشور قابل للترجمة.
  • منشورات اللغة الافتراضية لأي نوع منشور مضبوط على العودة إلى اللغة الافتراضية عند عدم وجود ترجمة.
  • نسخ من المنشورات غير القابلة للترجمة. يتضمن فهرس كل لغة هذه النسخ حتى تتمكن من الظهور في نتائج البحث بغض النظر عن لغة الزائر.

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

بالنسبة لبحث كل زائر، توجّه إضافة WPML ElasticPress الاستعلام إلى فهرس اللغة المطابق. وتُصفّى مجموعة النتائج بالفعل إلى اللغة الصحيحة قبل بدء ترتيب الصلة.

تشغيل المزامنة الأولية

مع تنشيط الإضافات الأربع وتكوين نقطة نهاية Elasticsearch في ElasticPress، شغّل المزامنة الأولية:

  1. افتح ElasticPressSync في لوحة تحكم WordPress.
  2. انقر على Start Sync.

تُشغّل إضافة WPML ElasticPress مزامنة واحدة لكل لغة وتبني الفهارس الخاصة بكل لغة واحدة تلو الأخرى. في المواقع الكبيرة، قد يستغرق هذا بضع ساعات؛ وتبلغ الصفحة عن التقدم أثناء تشغيل المزامنة.

إذا كنت تُحدّث من WPML ElasticPress 1.0 إلى 2.0 أو إصدار أحدث، فأعد الفهرسة. تغير تنسيق الفهرس عندما قدم الإصدار 2.0 الفهارس الخاصة بكل لغة.

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

فهرسة لغات معينة باستخدام WP-CLI

بالنسبة للمواقع الكبيرة، أو المهام المجدولة، أو نصوص النشر البرمجية، أو أي سير عمل لا تكون فيه واجهة مستخدم لوحة التحكم خياراً متاحاً، توفر إضافة WPML ElasticPress أمر WP-CLI (wp wpml_elasticpress sync) الذي يغلف مزامنة CLI الخاصة بإضافة ElasticPress ويضيف علامة --post-lang لاختيار اللغة.

تشغيل المزامنة الأولية للمقالات الإنجليزية فقط:

wp wpml_elasticpress sync --setup --post-type=post --post-lang=en

تمسح علامة --setup الفهارس الحالية قبل إعادة البناء. بعد هذا الأمر، يعرض البحث الإنجليزي نتائج إنجليزية؛ ولا تعرض عمليات البحث من اللغات الأخرى أي شيء لأن فهارسها لم تُبنَ بعد.

إضافة لغة ثانية دون مسح الفهارس الحالية:

wp wpml_elasticpress sync --post-type=post --post-lang=fr

كرر ذلك لكل لغة إضافية. احذف --setup حتى تبقى اللغات المفهرسة سابقاً في مكانها.

مزامنة عدة لغات في تشغيل واحد:

wp wpml_elasticpress sync --post-lang=en,es

تعديل حجم الدفعة إذا كانت الذاكرة محدودة:

wp wpml_elasticpress sync --per-page=200

حجم الدفعة الافتراضي هو 350؛ ويساعد خفضه في الخوادم ذات الذاكرة المحدودة.

إعادة بناء كل فهرس من الصفر:

wp wpml_elasticpress sync --setup

يمسح هذا كل فهرس لغة ويعيد بناءها جميعاً. استخدم هذا عندما يبدو أن هناك خطأ ما عبر جميع اللغات أو بعد ترقية رئيسية.

كيفية التحقق من أن عمليات بحث ElasticPress تعرض المحتوى باللغة الصحيحة

تعتبر المزامنة الفنية عملية مباشرة؛ وتكمن قيمة هذه الصفحة في التحقق. قم بإجراء هذه الفحوصات بعد اكتمال المزامنة الأولية، ومرة أخرى في أي وقت تغيّر فيه المحتوى أو الإعدادات التي تؤثر على سلوك البحث.

1. البحث يعرض نتائج بنفس اللغة من كل لغة

من الواجهة الأمامية، بدّل مبدل اللغة إلى كل لغة على التوالي وابحث عن مصطلح تعرف أنه موجود بصيغة مترجمة.

  • النجاح. تسرد صفحة النتائج المقالات بتلك اللغة فقط.
  • الفشل. تظهر نتائج من لغات أخرى جنباً إلى جنب مع التطابقات بنفس اللغة. ربما لم تكتمل المزامنة لتلك اللغة – تحقق من ElasticPressSync بحثاً عن أخطاء وأعد تشغيل أمر WP-CLI الخاص باللغة.

2. المحتوى باللغة المصدر فقط لا يعرض أي نتائج في اللغات الأخرى

اختر مقالة موجودة فقط في لغتك الافتراضية – بدون ترجمة في اللغات الأخرى على الموقع. من نسخة الموقع بلغة غير افتراضية، ابحث عن عبارة من تلك المقالة.

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

افتح مقالة مترجمة في الواجهة الأمامية. يجب أن تسرد ودجت المقالات ذات الصلة مقالات أخرى بنفس اللغة فقط.

  • النجاح. ترتبط كل مقالة ذات صلة بمحتوى بنفس لغة الصفحة الحالية.
  • الفشل. تظهر مقالات ذات صلة من لغات أخرى. تأكد من تمكين ميزة المقالات ذات الصلة (Related Posts) في ElasticPressFeatures ومن انتهاء مزامنة فهرس اللغة للغة الحالية.

إذا تم تمكين ميزة المستندات (Documents) في ElasticPress: ارفع ملف PDF مترجماً إلى نسخة اللغة المصدر لمقالة، ثم ارفع ملف PDF بلغة مختلفة إلى ترجمتها. ابحث عن عبارة تظهر فقط في ملف PDF المترجم.

  • النجاح. يعرض البحث من الواجهة الأمامية باللغة المطابقة ملف PDF الصحيح؛ ولا يعرض البحث باللغة المصدر ملف PDF المترجم والعكس صحيح.
  • الفشل. تظهر ملفات PDF من لغات أخرى في النتائج. أعد المزامنة بعد تمكين المستندات (Documents). يعيد الأمر wp wpml_elasticpress sync --setup بناء كل فهرس مع فهرسة المستندات.

5. عمليات بحث الواجهة الخلفية (المصطلحات، التعليقات، المستخدمون) تُصفّى حسب اللغة

إذا قمت بتمكين ميزات Terms أو Comments أو Users في ElasticPressFeatures، فابحث فيها من لوحة تحكم WordPress وتأكد من تصفية النتائج حسب لغة لوحة التحكم الحالية. يؤثر هذا على المستخدمين الذين يبحثون في الواجهة الخلفية لموقع متعدد اللغات.

6. مزامنة المواقع المتعددة لا تمسح فهارس المواقع الشقيقة

إذا كنت تشغّل WPML وElasticPress على شبكة متعددة المواقع، فشغّل مزامنة الفهرس على موقع واحد ثم تحقق من المواقع الأخرى في الشبكة. يجب أن تظل فهارسها سليمة.

  • النجاح. فهرسة موقع واحد تترك فهارس المواقع الشقيقة كما هي دون مساس.
  • الفشل. الفهارس الشقيقة فارغة. توقف، وأعد تشغيل عمليات المزامنة على المواقع المتأثرة، وأبلغ دعم WPML بالمشكلة حتى يتمكنوا من تأكيد ما إذا كنت تواجه مشكلة تاريخية في المواقع المتعددة أم مشكلة جديدة.

إذا نجح كل فحص أعلاه، فإن البحث متعدد اللغات الخاص بك يعمل كما هو مصمم.

ميزات ElasticPress المدعومة

تجعل إضافة WPML ElasticPress حالياً ميزات ElasticPress التالية متوافقة مع اللغات:

  • بحث المقالات. البحث في الواجهة الأمامية عبر المقالات، والصفحات، وأنواع المنشورات المخصصة.
  • المقالات ذات الصلة. تُصفّي ودجت المقالات ذات الصلة التطابقات لتكون بنفس اللغة.
  • المستندات. البحث داخل ملفات PDF المرفقة، و.docx، و.pptx، وأنواع الملفات الأخرى.
  • المصطلحات، والتعليقات، والمستخدمون. عمليات بحث الواجهة الخلفية.

ميزات البحث الخاصة بإضافة WooCommerce في ElasticPress (اكتشاف المنتجات، وتصفية المنتجات متعددة الأوجه، والبحث الفوري عن المنتجات عبر الكتالوجات) ليست متعددة اللغات حالياً. التغطية متعددة اللغات لبحث WooCommerce مدرجة في خارطة طريق WPML؛ وإلى أن يتم إطلاقها، يتدفق بحث WooCommerce في المواقع متعددة اللغات من خلال المعالجة القياسية لإضافة WooCommerce Multilingual الخاصة بـ WPML، وليس من خلال ElasticPress.

المزالق الشائعة

  • لم تُشغّل المزامنة بعد تمكين ميزة ElasticPress جديدة. إن تمكين Documents أو Related Posts في ElasticPressFeatures لا يضيف تلك المستندات بأثر رجعي إلى الفهرس. أعد المزامنة بعد تبديل الميزات.
  • مزامنة WP-CLI بدون --setup بعد تغيير رئيسي. إذا غيّرت أنواع المنشورات القابلة للترجمة، أو الميزات المُمكّنة، أو قمت بترقية WPML ElasticPress عبر حدود إصدار رئيسي، فشغّل wp wpml_elasticpress sync --setup لإعادة بناء كل فهرس من الصفر.
  • قالب نتائج البحث الخاص بالقالب يتجاوز مرشحات ElasticPress. تنفذ بعض القوالب المخصصة استعلام نتائج البحث الخاص بها والذي لا يمر عبر ElasticPress. إذا كانت النتائج تبدو خاطئة فقط في الواجهة الأمامية (وتجتاز فحوصات لوحة التحكم)، فقد يحتاج ملف القالب إلى التحديث.
  • بحث منتجات WooCommerce يعرض نتائج بلغات مختلطة. هذه ليست مشكلة مزامنة. إنها فجوة تغطية WooCommerce المذكورة أعلاه. وجّه بحث المنتجات من خلال المعالجة القياسية لإضافة WooCommerce Multilingual في الوقت الحالي.
  • نص المستندات لا يظهر في البحث. تأكد من تمكين ميزة المستندات (Documents) في ElasticPressFeatures ومن تشغيل المزامنة منذ تمكينها.

بقلمAmir

بقلمAmir