WPML

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

قبل أن تبدأ

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

  • إضافة استيراد: WP All Import Pro، أو WP All Export Pro، أو أداة استيراد CSV الأصلية لـ WooCommerce، أو أداة استيراد WordPress القياسية.
  • WPML وWPML ترجمة النصوص.
  • تصدير واستيراد WPML (الملحق الذي تغطيه هذه الصفحة).
  • WPML Multilingual & Multicurrency for WooCommerce إذا كنت تستورد منتجات WooCommerce.

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

مساران – اختر المسار الذي يطابق مصدرك

هناك مساران للاستيراد، بناءً على المكان الذي تأتي منه البيانات متعددة اللغات:

  • إضافة استيراد مدعومة. إذا كنت تنقل محتوى من موقع WordPress حالي باستخدام WP All Export Pro (أو أداة تصدير أخرى مدعومة)، فإن إضافة تصدير واستيراد WPML موجودة بالفعل في ملف التصدير – يتم تضمين معلومات اللغة تلقائياً. تخطَ إلى خطوة تشغيل استيراد WPML أدناه.
  • ملف CSV أو XML مخصص. إذا كنت تحتفظ ببيانات متعددة اللغات في جدول بيانات أو كان مصدرك نظاماً غير WordPress (مثل PIM أو MLS أو ERP أو منصة حجز)، فستضيف ثلاثة أعمدة للغة إلى ملفك يدوياً. تابع إلى إعداد ملف CSV أو XML أدناه.

إعداد ملف CSV أو XML بثلاثة أعمدة للغة

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

  • _wpml_import_translation_group. قيمة فريدة تشترك فيها جميع إصدارات اللغات لقطعة محتوى واحدة. بالنسبة للمنتجات، استخدم رمز SKU. لأي شيء آخر، أنشئ المعرف الخاص بك وأعد استخدامه لصف المصدر وكل ترجمة له.
  • _wpml_import_language_code. رمز لغة ISO للصف (en للغة الإنجليزية، وes للغة الإسبانية، وfr للغة الفرنسية، وpt-pt للغة البرتغالية الأوروبية، وهكذا).
  • _wpml_import_source_language_code. في صفوف الترجمة فقط؛ رمز لغة الأصل. اتركه فارغاً لصفوف اللغة المصدر.

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

بالنسبة لإضافة WP All Import Pro والأدوات المشابهة، أعدّ جدولي بيانات: أحدهما للتصنيفات (التصنيفات، والوسوم، وتصنيفات المنتجات)، والآخر للمقالات والمنتجات. تأخذ أداة استيراد CSV الأصلية لـ WooCommerce جدول بيانات واحد لأن تصنيفات المنتجات موجودة داخل صفوف المنتجات.

أعمدة اختيارية

يمكنك إضافة عمودين إضافيين إلى صفوف المقالات والمنتجات:

  • _wpml_import_after_process_post_status. الحالة التي تحصل عليها المقالة بعد تشغيل استيراد WPML. استخدم اسم حالة WordPress: publish، أو draft، أو pending، أو private. اكتب publish، وليس published.
  • _wpml_import_tea. اضبطه على 1 في صف المصدر لإرسال ذلك العنصر إلى الترجمة التلقائية. ينشئ تشغيل استيراد WPML بعد ذلك مهام ترجمة تلقائية لكل لغة نشطة ليس لها ترجمة للعنصر بعد. يعمل هذا العمود فقط عندما يكون وضع ترجم كل شيء في WPML قيد التشغيل.

سمات WooCommerce المخصصة للمنتجات المتغيرة

إذا كان لديك منتجات متغيرة بسمات مخصصة، أضف عموداً رابعاً إلى صفوف المنتجات المترجمة: _wpml_import_wc_local_attribute_labels. القيمة عبارة عن كائن JSON من أزواج slug:translation. لمنتج متغير باللغة الفرنسية بسمتي Size وColor:

{"size":"Taille","color":"Couleur"}

المعرّف النصي للرابط هو اسم السمة بأحرف صغيرة مع استبدال المسافات بشرطات.

ترتيب الاستيراد

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

إذا قمت بتقسيم بياناتك إلى ملف واحد لكل لغة، فاستورد كل ملف لغة قبل تشغيل خطوة ربط WPML.

تعيين أعمدة اللغة في إضافة الاستيراد الخاصة بك

تتعامل كل إضافة استيراد مع الأعمدة المخصصة بطريقتها الخاصة. الخطوة الحاسمة هي تعيين أعمدة WPML الثلاثة إلى حقول مخصصة (أو بيانات المصطلح الوصفية، للتصنيفات). في WP All Import Pro، يحدث هذا في الخطوة 3 من معالج الاستيراد:

  • للمقالات والمنتجات. افتح Custom Fields، وأضف ثلاثة حقول، واسحب أعمدة اللغة إلى مربعات Value، واستخدم أسماء الأعمدة بدون أقواس في مربعات Name.
  • للتصنيفات. افتح Term Meta، وأضف ثلاثة حقول لبيانات المصطلح الوصفية، وعيّن أعمدة اللغة بنفس الطريقة.

إذا لم يتم تعيين الأعمدة، فلن يجد WPML شيئاً ليقرأه عند تشغيل خطوة الربط.

ما ستراه بين الاستيراد وخطوة الربط

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

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

تشغيل استيراد WPML

بمجرد انتهاء إضافة الاستيراد:

  1. افتح WPMLتصدير واستيراد في لوحة تحكم WordPress.
  2. انقر على تشغيل استيراد WPML.

يقرأ WPML أعمدة اللغة لكل صف، ويعيّن اللغة لذلك الصف، ويربط الترجمات بمصدرها. في الكتالوجات الكبيرة، قد يستغرق هذا عدة دقائق. عند الانتهاء، يتم نشر المحتوى المستورد باللغة الصحيحة مع ربط كل ترجمة بمصدرها.

قم بإجراء فحص عشوائي في لوحة التحكم والواجهة الأمامية:

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

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

ما لا يغطيه استيراد WPML

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

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

أتمتة العملية – تشغيل استيراد WPML بعد كل استيراد مجدول

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

الخيار 1 – نقطة نهاية POST (لعمليات الاستيراد المعتمدة على Cron مثل الإجراءات المجدولة في WP All Import)

هذه هي الطريقة الموصى بها. أضف مفتاحاً سرياً قوياً إلى wp-config.php:

define( 'WPML_IMPORT_KEY', 'your-strong-secret-key-here' );

ثم أضف أمراً ثانياً إلى إعداد الاستيراد المجدول لديك. يرسل هذا الأمر طلب POST إلى موقعك ويمرر المفتاح في نص الطلب:

curl -X POST https://yoursite.com/ \
  -d 'wpml_import_trigger=your-strong-secret-key-here'

نفس الاستدعاء باستخدام wget:

wget -q -O - \
  --post-data='wpml_import_trigger=your-strong-secret-key-here' \
  https://yoursite.com/

بالنسبة للجدولة اليدوية في WP All Import Pro، أضف أياً من الأمرين مباشرة بعد أمر الاستيراد.

عند تشغيل خطوة الربط، يستجيب موقعك بالحالة 200 وهذه الرسالة:

Import process completed

هناك إجابتان أخريان تخبرانك بما حدث: 401 تعني أن المفتاح غير متطابق، و204 تعني أنه لم يتبق شيء لمعالجته.

الخيار 2 – نقطة نهاية عنوان URL (أُزيلت في الإصدار 5.0.0)

قبل الإصدار 1.2.0 من إضافة تصدير واستيراد WPML، كنت تمرر المفتاح في عنوان URL:

https://yoursite.com/?wpml_import_trigger=your-strong-secret-key-here

منذ الإصدار 5.0.0 من إضافة تصدير واستيراد WPML، لم يعد عنوان URL هذا يشغّل الاستيراد. يحصل الطلب الذي يحمل المفتاح في عنوان URL على الحالة 405. انقل عمليات الاستيراد المجدولة الخاصة بك إلى استدعاء POST في الخيار 1.

السبب هو المفتاح. ينتقل عنوان URL عبر سجلات الخادم وسجل المتصفح والتحليلات، وينتقل مفتاحك معه. يحافظ طلب POST على المفتاح في نص الطلب.

الخيار 3 – خطّاف الإجراء (لعمليات الاستيراد المجدولة عبر PHP)

إذا كنت تجدول عمليات الاستيراد من PHP باستخدام Action Scheduler أو wp_schedule_single_event، فشغّل خطوة WPML باستدعاء إجراء واحد:

do_action( 'wpml_import_process' );

لتشغيله كمهمة خلفية لمرة واحدة مباشرة بعد إجراء الاستيراد الخاص بك:

wp_schedule_single_event( time(), 'wpml_import_process' );

إذا فشل شيء ما في أي من هذه المسارات، فقم بتشغيل WP_DEBUG_LOG في wp-config.php لالتقاط الخطأ في سجل أخطاء PHP.

تشغيل استيراد WPML من سطر الأوامر

بالنسبة لبرامج النشر النصية، أو بناء الحاويات، أو أي مسار عمل لا تتوفر فيه واجهة مستخدم لوحة التحكم، قم بتشغيل خطوة الربط من WP-CLI:

wp wpml import process

يُبلغ الأمر عن عدد الترجمات التي تم ربطها. وهو بديل مباشر لزر تشغيل استيراد WPML.

أخطاء شائعة

  • ملف الاستيراد يفتقد أعمدة اللغة الثلاثة. يتم استيراد المحتوى ولكنه يصل كصفوف لغة مصدر غير مميزة بعلامات؛ ولا يجد تشغيل استيراد WPML أي شيء لربطه. الإصلاح: أضف الأعمدة إلى بيانات المصدر الخاصة بك، وأعد التصدير، وأعد الاستيراد.
  • تم تخطي تعيين Custom Fields / Term Meta في WP All Import. نفس حالة الأعمدة المفقودة. البيانات موجودة في الملف لكن إضافة الاستيراد لم تخزنها في المقالة. أعد تشغيل الاستيراد مع تعيين الحقول.
  • اللغات الهدف غير معدة على موقع الاستيراد. تصل الصفوف المستوردة للغة غير مهيأة إلى اللغة الافتراضية. أضف اللغات المفقودة في WPMLإعداداتاللغات أولاً، ثم أعد التشغيل.
  • إضافة استيراد غير مدعومة. تظل المقالات المستوردة في حالة مسودة بعد خطوة الربط. قم بنشرها يدوياً، أو بدّل إلى إضافة مدعومة.
  • برامج استيراد نصية مخصصة لا تمرر بيانات اللغة. الإصلاح يكون على مستوى البرنامج النصي. يجب أن تصل أعمدة اللغة الثلاثة (وعمود سمة WooCommerce عند الاقتضاء) إلى الصف.
  • المحتوى الذي يضيفه الكود الخاص بك لا يتم الاحتفاظ به كمسودة. يحتفظ WPML بالمحتوى كمسودة فقط لإضافات الاستيراد المدعومة. المحتوى الذي يضيفه الكود الخاص بك باستخدام wp_insert_post، أو استيراد WooCommerce الذي يتم تشغيله من PHP أو WP-CLI، يحتفظ بالحالة التي يعطيها الكود له. أنشئ محتوى جديداً كمسودات بنفسك، واضبط _wpml_import_after_process_post_status على publish.
  • wp export يُسقط أعمدة اللغة للمصطلحات. يأتي WP-CLI 2.12.0 مزوداً بـ export-command 2.1.14، والذي لا يكتب بيانات المصطلح الوصفية. بعد wp import، يفقد كل تصنيف ووسم أعمدة اللغة الخاصة به. قم بتحديث export-command إلى 2.1.15 أو أحدث، أو قم بالتصدير من أدواتتصدير في لوحة تحكم WordPress.

إذا استمرت عمليات الاستيراد في التعثر بسبب نفس المشكلة، فإن فريق دعم WPML يجيب على أسئلة الاستيراد على مدار 24 ساعة طوال أيام الأسبوع.

إذا كنت تبحث عن إضافة WPML All Import

WPML All Import هي الإضافة القديمة التي تسبق تصدير واستيراد WPML. ولم تعد مدعومة أو موصى بها. الإجراء المذكور أعلاه هو الطريقة المحدّثة لاستيراد المحتوى متعدد اللغات إلى موقع WordPress – استخدمه بدلاً من أي سير عمل موصوف في وثائق الإضافة القديمة.

بقلمAmir

بقلمAmir