WPML

قبل البدء

ثبّت هذه الإضافات وفعّلها:

  • Advanced Custom Fields أو ACF Pro.
  • WPML وWPML ترجمة النصوص.
  • ACFML (الملحق الذي تغطيه هذه الصفحة).

يجب أن تكون مجموعات الحقول لديك مُعدّة مسبقاً في ACF. يمكنك تغيير تفضيلات الترجمة لكل حقل لاحقاً، لذا لا يهم ترتيب العمليات. أعدّ مجموعات الحقول، ثم ارجع إلى ACFML.

اختيار وضع الترجمة لكل مجموعة حقول

لا تتصرف جميع مجموعات حقول ACF بنفس الطريقة عند الترجمة. يقدّم ACFML ثلاثة أوضاع لكل مجموعة حقول، تُضبط داخل ACF > مجموعات الحقول تحت قسم إعداد المحتوى متعدد اللغات:

نفس الحقول عبر اللغات

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

حقول مختلفة عبر اللغات

استخدم هذا الوضع عندما تعرض كل لغة محتوى مختلفاً جذرياً في نفس مجموعة الحقول. الحالة الكلاسيكية هي شركة تنظّم فعاليات محلية. تعرض صفحة الفعاليات الإنجليزية فعاليات للجمهور الإنجليزي، وتعرض الصفحة الفرنسية فعاليات للجمهور الفرنسي. اضبط مجموعة الحقول على Different fields across languages (حقول مختلفة عبر اللغات)، ثم افتح المقالة التي تريد أقلمتها > في مربع اللغات على الجانب الأيمن، انقر على أيقونة الزائد للغة الهدف > تُفتح مسودة فارغة بحقول مخصصة فارغة > املأ القيم الخاصة باللغة وانشرها.

وضع الخبير

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

تفضيلات الترجمة لكل نوع من حقول ACF

يحتوي كل حقل في مجموعة الحقول على واحد من أربعة تفضيلات للترجمة:

  • ترجمة (Translate). تُترجم قيمة الحقل لكل لغة.
  • نسخ (Copy). تظل قيمة الحقل متزامنة عبر اللغات؛ عدّلها مرة واحدة وسينتشر التعديل.
  • نسخ مرة واحدة (Copy Once). تكون قيمة الحقل نقطة البداية للترجمة، ثم يمكن تعديل نسخة كل لغة بشكل مستقل.
  • عدم الترجمة (Don't translate). يُتجاهَل الحقل في عملية الترجمة.

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

حقول Repeater والمحتوى المرن – نسخ أو نسخ مرة واحدة

بالنسبة لحقول Repeater والمحتوى المرن، يمكنك الاختيار بين سلوكين على مستوى الصف قبل أن يبدأ تطبيق تفضيلات الحقول الفرعية:

  • نسخ (Copy). نفس التخطيط وعدد الصفوف في كل لغة. يرى المترجمون نفس الصفوف؛ وتُترجم الحقول الفرعية وفقاً لتفضيلاتها الخاصة.
  • نسخ مرة واحدة (Copy Once). يمكن أن يكون لكل لغة تخطيط مختلف وعدد مختلف من الصفوف بعد النسخة الأولية.

اختر نسخ عندما يكون الهيكل هو نفسه عبر اللغات (في معظم الحالات). واختر نسخ مرة واحدة عندما تختلف نسخ اللغات هيكلياً (على سبيل المثال، قائمة فعاليات مختلفة لكل لغة).

الحقول الأساسية

النوعنفس الحقول عبر اللغاتحقول مختلفة عبر اللغات
نص (Text)ترجمةترجمة
مساحة نص (Text Area)ترجمةترجمة
رقم (Number)نسخنسخ مرة واحدة
نطاق (Range)نسخنسخ مرة واحدة
بريد إلكتروني (Email)نسخنسخ مرة واحدة
رابط (URL)نسخنسخ مرة واحدة
كلمة مرور (Password)نسخنسخ مرة واحدة

حقول المحتوى

النوعنفس الحقول عبر اللغاتحقول مختلفة عبر اللغات
صورة (Image)نسخنسخ مرة واحدة
ملف (File)نسخنسخ مرة واحدة
محرر Wysiwygترجمةترجمة
oEmbedنسخنسخ مرة واحدة
معرض صور (Gallery)نسخنسخ مرة واحدة

حقول الاختيار

النوعنفس الحقول عبر اللغاتحقول مختلفة عبر اللغات
تحديد (Select)نسخنسخ مرة واحدة
مربع اختيار (Checkbox)نسخنسخ مرة واحدة
زر راديو (Radio Button)نسخنسخ مرة واحدة
مجموعة أزرار (Button Group)نسخنسخ مرة واحدة
صواب / خطأ (True / False)نسخنسخ مرة واحدة

حقول jQuery

النوعنفس الحقول عبر اللغاتحقول مختلفة عبر اللغات
خريطة Google Mapنسخنسخ مرة واحدة
منتقي التاريخ (Date Picker)نسخنسخ مرة واحدة
منتقي التاريخ والوقت (Date Time Picker)نسخنسخ مرة واحدة
منتقي الوقت (Time Picker)نسخنسخ مرة واحدة
منتقي الألوان (Color Picker)نسخنسخ مرة واحدة

حقول التخطيط

النوعنفس الحقول عبر اللغاتحقول مختلفة عبر اللغات
رسالة (Message)ترجمةترجمة
أكورديون (Accordion)نسخنسخ مرة واحدة
علامة تبويب (Tab)نسخنسخ مرة واحدة
مجموعة (Group)نسخنسخ مرة واحدة
Repeaterنسخنسخ مرة واحدة
محتوى مرن (Flexible Content)نسخنسخ مرة واحدة
استنساخ (Clone)نسخنسخ مرة واحدة

الحقول العلائقية

النوعنفس الحقول عبر اللغاتحقول مختلفة عبر اللغات
رابط (Link)نسخنسخ مرة واحدة
كائن مقالة (Post Object)نسخنسخ مرة واحدة
رابط صفحة (Page Link)نسخنسخ مرة واحدة
علاقة (Relationship)نسخنسخ مرة واحدة
تصنيف (Taxonomy)نسخنسخ مرة واحدة
مستخدم (User)نسخنسخ مرة واحدة

إعداد التفضيلات للحقول المسجلة في PHP أو JSON

لا تحصل مجموعات حقول ACF المسجلة في PHP (عبر acf_add_local_field_group()) أو من خلال ميزة Local JSON في ACF على تفضيلات الترجمة من واجهة الإدارة، لأن واجهة الإدارة لا تديرها. اضبط التفضيلات في نفس المكان الذي تسجل فيه الحقول.

لكل حقل في تعريف مجموعة الحقول، أضف مفتاح wpml_cf_preferences. القيمة عدد صحيح يقابل تفضيلات الترجمة الأربعة: 0 لـ عدم الترجمة (يتجاهل WPML الحقل)، و1 لـ نسخ (تظل القيمة متزامنة عبر اللغات)، و2 لـ ترجمة (تمر القيمة عبر عملية الترجمة)، و3 لـ نسخ مرة واحدة (تُنسخ القيمة إلى الترجمات الجديدة، ثم يمكن تعديل كل لغة بشكل مستقل).

مثال بسيط:

acf_add_local_field_group( [
    'key'    => 'group_1',
    'title'  => 'My Group',
    'fields' => [
        [
            'key'                 => 'field_1',
            'label'               => 'Sub Title',
            'name'                => 'sub_title',
            'type'                => 'text',
            'wpml_cf_preferences' => 2, // Translate.
        ],
    ],
    // ...rest of the field-group config
] );

بعد تعريف الحقول في الكود، زامِن التفضيلات مع WPML حتى تتعرف عليها واجهة الإدارة:

  1. اذهب إلى ACF > أدوات.
  2. مرر لأسفل إلى Translate ACF Local JSON and PHP-Registered Fields.
  3. في Sync Translation Preferences for Local Fields، اختر Sync once now وانقر على Apply (تطبيق).

يقرأ WPML التفضيلات من تعريفات PHP الخاصة بك ويخزنها. تعمل المزامنة مرة واحدة عند تشغيلها، وليس عند كل تحميل للصفحة.

إذا كنت تستخدم ميزة Local JSON في ACF لمشاركة مجموعات الحقول بين المواقع، يكتب ACFML تفضيلات الترجمة في ملفات JSON تلقائياً. صَدِّر ملف JSON من موقع، واستورده في موقع آخر، وسيتعرّف الموقع المستهدف على التفضيلات بمجرد أن يكون ACFML نشطاً في كلا الطرفين.

ترجمة تسميات حقول ACF

تسميات حقول ACF هي الأسماء التي تعرّف كل حقل مخصص في محرر WordPress وعلى الواجهة الأمامية (مثل رقم الهاتف، العنوان). تُترجم هذه التسميات بشكل منفصل عن قيم الحقول، وتوجد في WPML ترجمة النصوص، وليس في مهمة ترجمة المقالة.

لإرسال تسميات الحقول للترجمة:

  1. افتح WPML > الترجمات > لوحة التحكم.
  2. وسّع قسم مجموعة حقول ACF.
  3. حدد عنصر Field Group Labels (تسميات مجموعة الحقول) لمجموعة الحقول التي تريد ترجمتها.
  4. اختر طريقة ترجمة (PTC، أو مترجمك، أو أترجم بنفسي) وأرسل.

تظهر التسميات المترجمة على الواجهة الأمامية تلقائياً بمجرد اكتمال الترجمة.

ترجمة خيارات حقول ACF

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

  1. افتح WPML > الترجمات > لوحة التحكم.
  2. وسّع قسم مجموعة حقول ACF.
  3. حدد مجموعة الحقول التي تريد ترجمة قيم خياراتها.
  4. اختر طريقة ترجمة وأرسل.

ترجمة صفحات خيارات ACF

تُترجم صفحات خيارات ACF (شاشات الإعدادات العامة مثل تفاصيل الاتصال، إعدادات الترويسة، روابط التذييل) كنوع كائن خاص بها، بشكل منفصل عن المقالات:

  1. افتح WPML > الترجمات > لوحة التحكم.
  2. وسّع قسم خيارات ACF.
  3. حدد صفحة الخيارات التي تريد ترجمتها.
  4. اختر طريقة ترجمة وأرسل.

تظهر قيم صفحة الخيارات الخاصة بكل لغة تلقائياً عندما يقرأ ACF الخيار في سياق تلك اللغة.

المشاكل الشائعة

  • تبدو تسميات الحقول غير مترجمة. مكانها في ترجمة النصوص، وليس في ترجمة المقالة. أرسل عنصر Field Group Labels (تسميات مجموعة الحقول) الخاص بمجموعة الحقول من لوحة التحكم (انظر ترجمة تسميات حقول ACF أعلاه).
  • تبدو قيم الخيارات غير مترجمة. نفس الحالة. أرسل مجموعة الحقول من قسم مجموعة حقول ACF في لوحة التحكم بحيث تُضمَّن قيم الخيارات.
  • تفقد صفوف حقل Repeater تزامنها. من المحتمل أن الحقل مضبوط على نسخ مرة واحدة بينما يحافظ نسخ على تطابق الصفوف. افتح مجموعة الحقول > وبدّل سلوك حقل Repeater إلى نسخ.
  • يتصرف المنطق الشرطي بشكل غير متوقع. عندما يُضبط الحقل المتحكم على نسخ أو عدم الترجمة، يتبع السلوك الشرطي قيمة اللغة المصدر عبر جميع الترجمات. اضبط الحقل المتحكم على ترجمة إذا كان يجب أن تختلف قيمته لكل لغة.
  • تتجاهل الحقول المحلية (المسجلة في PHP) تفضيلات الترجمة المضبوطة في واجهة الإدارة. اضبط مفتاح wpml_cf_preferences في تعريف مجموعة الحقول نفسها وزامنها من ACF > أدوات. الإجراء موجود في إعداد التفضيلات للحقول المسجلة في PHP أو JSON أعلاه. أضاف ACFML 2.2.0 (فبراير 2026) دعماً كاملاً للحقول المحلية؛ أما الإصدارات الأقدم فكانت لها قيود في هذا الجانب.

خطاطيف المطورين للحالات الاستثنائية

للتحكم البرمجي (استبعاد حقول معينة من الترجمة، أو تجاوز التفضيل الافتراضي لنوع حقل على مستوى الموقع بالكامل، أو إخفاء التعليقات التوضيحية عن المترجمين، أو استبعاد سلاسل مجموعة الحقول من مهام ترجمة المقالات)، يوفر ACFML مرشِّحين وأربعة ثوابت. يتوفر المرجع الكامل مع أمثلة برمجية في مرجع خطاطيف وثوابت ACFML.

بقلم Amir · آخر تحديث في 2 يوليو 2026

بقلم Amir · آخر تحديث 2 يوليو 2026