كل المقالات

إضافة SaintLang لتعدد اللغات في ووردبريس: كل الترجمات على نفس الـ ID وسيو مدمج

SaintLang إضافة مجانية لتعدد اللغات في ووردبريس: معرّف واحد لكل الترجمات، مع روابط اللغات وhreflang وترجمة النصوص وذكاء اصطناعي اختياري. تعرّف على طريقة عملها.

غلاف: شريط لغات SaintLang بتبويبات EN وAR وFR فوق محرر المقال، مع رابط اللغة وشارات hreflang وx-default وcanonical
في هذا المقال

SaintLang إضافة تعدد اللغات في ووردبريس تحفظ كل ترجمة على نفس المقال أو الصفحة أو المنتج (نفس المعرّف ID)، بدل أن تنشئ مقالاً جديداً لكل لغة. تختار اللغة من شريط فوق المحرر المعتاد، وتترجم داخل المحرر الذي تعرفه، وتتولى الإضافة عرض النسخة الصحيحة على رابط اللغة الخاص بها، مع hreflang وcanonical والبديل الاحتياطي. طوّرتها لتكون سريعة في التحرير، وسليمة في تحسين محركات البحث (SEO) متعدد اللغات، ومع دعم للعربية واتجاه RTL من البداية.

هذا هو الدليل الكامل: كيف تخزّن SaintLang الترجمات، وكيف تعمل في المحرر، وماذا تفعل للسيو، وكيف تتعامل مع النصوص وووكومرس (WooCommerce) وحقول ACF، وما الذي تفعله ميزات الذكاء الاصطناعي الاختيارية (وما الذي لا تفعله)، وكيف تبدأ. والإضافة مجانية ومتاحة في مستودع إضافات WordPress.org الرسمي.

أهم النقاط

  • محتوى واحد بمعرّف واحد: تُخزَّن الترجمات لكل لغة على نفس معرّف المقال أو الصفحة أو المنتج أو نوع المحتوى المخصص، وليست مقالات مكررة.
  • شريط لغات في محرر Gutenberg والمحرر الكلاسيكي يفتح المحرر الأصلي باللغة المختارة، وزر «تحديث» الخاص بووردبريس يحفظ تلك اللغة.
  • روابط اللغات بثلاثة أنماط (مجلدات أو نطاقات فرعية أو معامل في الرابط)، مع hreflang وx-default ورابط canonical يراعي اللغة.
  • ترجمة النصوص وذاكرة الترجمة وقاموس المصطلحات تغطي بقية الموقع، والترجمة بالذكاء الاصطناعي اختيارية.
  • تعمل مع ووكومرس وحقول ACF وYoast SEO وRank Math، وتكتشف إلمنتور وBricks، وتأتي بلوحة تحكم بالعربية والإنجليزية مع دعم RTL.

ما هي SaintLang؟

SaintLang مساحة عمل للترجمة داخل ووردبريس. تتطلب ووردبريس 6.5 أو أحدث وPHP 8.1 أو أحدث، ورخصتها GPLv2 أو أحدث، والنسخة الحالية 1.1.2. وهي مجانية ومتاحة في مستودع إضافات WordPress.org الرسمي، فيمكنك تثبيتها من «الإضافات» ثم «أضف جديد» بالبحث عن «SaintLang».

وتؤدي خمس مهام:

  1. إدارة اللغات. تضيف اللغات التي تحتاجها فقط من كتالوج يضم أكثر من 50 لغة، وتختار اللغة الأساسية وشكل روابط اللغات.
  2. ترجمة المحتوى. تُترجم العناوين والمحتوى والملخصات والصور البارزة وحقول Advanced Custom Fields لكل لغة، داخل المحرر.
  3. عرض النسخة الصحيحة. يحصل الزائر على اللغة المناسبة من الرابط، ويظهر المحتوى الأصلي كبديل إلى أن توجد الترجمة.
  4. التعامل مع السيو. تُخرج hreflang وx-default، وتبقي روابط canonical صحيحة، وتفحص الترجمات الناقصة أو القديمة.
  5. ترجمة بقية عناصر الموقع. نصوص Gettext في القوالب والإضافات تُترجم على الموقع العام عبر ترجمة النصوص، وتُترجم عناصر التصنيفات (Taxonomy terms) أيضاً، وتقف خلفهما ذاكرة ترجمة وقاموس مصطلحات.

لماذا الترجمة على نفس المعرّف (ID)؟

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

تسلك SaintLang الطريق المعاكس. للصفحة معرّف واحد، وعنوانها ومحتواها وملخصها وحقولها المخصصة المترجمة تُخزَّن لكل لغة في جدول خاص، وتُرجع الإضافة القيم المناسبة للغة الزائر.

مقال منفصل لكل لغةSaintLang (نفس المعرّف)
طريقة تخزين الترجمةمقال جديد لكل لغة، مربوط بعلاقةصف لكل لغة على نفس معرّف المقال
المعرّفات التي تتعامل معهامعرّف لكل نسخة لغويةمعرّف واحد لكل اللغات
عند غياب الترجمةيعتمد على الإعداد، وغالباً لا توجد صفحة بتلك اللغة بعديظهر المحتوى الأصلي إلى أن تُحفظ الترجمة
الحقول المخصصةتُنسخ أو تُزامن بين المقالاتتُخزَّن لكل لغة على نفس المقال
المفاضلة الأساسيةكل نسخة مقال عادي، فيمكن لأي أداة الاستعلام عنهالترجمات في جداول الإضافة، فالقراءة تمر عبرها

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

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

طريقة العمل داخل المحرر

كان الهدف ألا توجد شاشة ترجمة منفصلة. في Gutenberg وفي المحرر الكلاسيكي يوجد شريط لغات واحد:

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

وهناك تفاصيل تهمّك في المشاريع الفعلية:

  • حقول Advanced Custom Fields: كل أنواع الحقول مدعومة، بما فيها الحقول المتكررة (Repeater) والمحتوى المرن (Flexible Content). حرّرها كالمعتاد داخل اللغة، وتُرجع get_field() قيمة لغة الزائر وتعرضها the_field()، مع الرجوع إلى الأصل إذا لم يُترجم الحقل بعد.
  • صورة بارزة لكل لغة: اختر صورة مختلفة أثناء تحرير الترجمة فتنطبق على تلك اللغة فقط. وإذا اخترت الصورة الأصلية من جديد أو أزلتها، عادت الترجمة لتتبع الأصل. وصور ACF ومعارضها (Gallery) القابلة للترجمة تعمل بالطريقة نفسها.
  • الترجمات القديمة: تحتفظ SaintLang بقيمة تجزئة (hash) للمحتوى الأصلي. وعندما يتغير الأصل بعد حفظ الترجمة، يمكن وسم الترجمة بأنها قديمة لتعرف ما يحتاج مراجعة. هذا الخيار مفعّل افتراضياً ويمكن إيقافه.

روابط اللغات والسيو متعدد اللغات

تدعم SaintLang ثلاثة أنماط لروابط اللغات، تُضبط من إعدادات SaintLang.

النمطمثالملاحظات
مجلدات اللغات (الموصى به)example.com/ar/sample-page/يحتاج إلى روابط دائمة مخصصة (Pretty Permalinks). وعند استخدام الروابط الدائمة الافتراضية (Plain) تنتقل SaintLang تلقائياً إلى نمط المعامل.
نطاقات فرعيةar.example.comتبقى اللغة الأساسية على النطاق الرئيسي. وجّه كل نطاق فرعي إلى موقعك من إعدادات DNS، مع شهادة SSL تغطيه.
معامل في الرابطexample.com/sample-page/?lang=arالأبسط، لكن روابطه الأقل نظافة.

وللسيو، المجلدات هي الخيار الموصى به، وتتولى الإضافة التفاصيل التي يسهل الخطأ فيها:

  • hreflang: تُخرج كل صفحة منفردة رابطاً بديلاً لكل لغة لها ترجمة، إضافة إلى اللغة الأصلية، ليتمكن محرك البحث من الربط بين النسخ. اللغات التي لا ترجمة لها لا تُدرج.
  • x-default: يشير إلى النسخة بلغة المصدر، ويمكن إيقافه من الإعدادات.
  • Canonical: كل ترجمة تشير إلى رابطها هي. وعندما لا تكون لغة ما مترجمة بعد ويُعرض الأصل بديلاً، يشير canonical إلى الأصل، وبذلك يُتجنب المحتوى المكرر.
  • Yoast SEO وRank Math: تعدّل SaintLang مخرجات canonical فيهما، فيسود الرابط الذي يراعي اللغة.

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

<link rel="alternate" hreflang="en" href="https://example.com/sample-page/" />
<link rel="alternate" hreflang="ar" href="https://example.com/ar/sample-page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/sample-page/" />

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

وتتضمن SaintLang أيضاً فحص سيو (SEO Audit) يعرض الترجمات القديمة والترجمات الناقصة في اللغات المفعّلة (للمحتوى الذي له ترجمة واحدة على الأقل)، ويعطي درجة صحة. يمكنك تشغيله من لوحة التحكم أو من واجهة REST API أو من WP-CLI.

النصوص والتصنيفات والذاكرة والقاموس

المحتوى جزء واحد فقط من الموقع متعدد اللغات. الأزرار وتسميات النماذج ونصوص القالب تأتي من الكود.

  • ترجمة النصوص (String Translation): تتصل SaintLang بدوال gettext في ووردبريس (بما فيها صيغ الجمع والسياق) وتتيح لك ترجمة تلك النصوص لكل لغة. ويمكنها مسح الموقع بحثاً عن النصوص، من لوحة التحكم أو بالأمر wp saintlang scan-strings.
  • الأقسام والوسوم والتصنيفات المخصصة (Taxonomy terms): يحتفظ كل عنصر بمعرّف واحد، ويمكن ترجمة اسمه ووصفه وحقوله المخصصة لكل لغة. وفي الكود تُرجع saintlang_term_name() اسم العنصر بلغة معينة.
  • ذاكرة الترجمة: تُخزَّن الترجمات الناتجة عن طلبات الذكاء الاصطناعي وعن شاشة ترجمة النصوص لإعادة استخدامها. وعندما يظهر النص المصدر نفسه من جديد في زوج اللغات نفسه، تُستخدم الترجمة المخزنة قبل أي طلب إلى الذكاء الاصطناعي.
  • القاموس: عرّف مصطلحات يجب أن تُترجم دائماً بشكل محدد، ومصطلحات يجب ألا تُترجم أبداً، مثل أسماء العلامات التجارية. وتُضاف هذه القواعد إلى التعليمات المرسلة عبر WordPress AI Client، ولا تصل إلى طلبات DeepL وGoogle Cloud Translation.

الترجمة بالذكاء الاصطناعي (اختيارية)

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

المزوّدطريقة الاتصالملاحظات
WordPress AI Clientعبر المزوّد الذي تربطه من الإعدادات ثم الموصّلات (Connectors) في ووردبريس 7.0 أو أحدثلا تخزّن SaintLang بيانات اعتماد الذكاء الاصطناعي ولا تتصل بالمزوّد مباشرة.
DeepLمفتاح DeepL API الخاص بكتُدعم المفاتيح المجانية والمدفوعة.
Google Cloud Translationمفتاح Google Cloud API الخاص بك

وهناك أمور تستحق أن تعرفها قبل استخدامها في موقع عميل:

  • التنسيق محمي. مع WordPress AI Client تطلب التعليمات من المزوّد الحفاظ على HTML وتعليقات كتل Gutenberg والشورتكودات والعناصر النائبة والروابط ورموز المنتجات. أما DeepL وGoogle Cloud Translation فتستقبلان طلبات تراعي HTML بدلاً من تلك التعليمات.
  • أنت تتحكم في الأسلوب. مع WordPress AI Client اختر نبرة (طبيعية أو احترافية أو ودية أو فاخرة أو تقنية أو تسويقية)، وأضف تعليماتك الخاصة. ولا تُرسل النبرة ولا التعليمات الخاصة إلى DeepL أو Google Cloud Translation.
  • المهام الكبيرة تعمل في الخلفية. ترجمة عدد كبير من العناصر تنشئ مهمة تعمل عبر Action Scheduler إن كان متاحاً، أو WP-Cron بخلاف ذلك، مع تتبع للتقدم.
  • الاستخدام مسجّل. تسجّل SaintLang المزوّد واللغات وحجم المدخلات والمخرجات لكل طلب، فتعرف حجم ما أُرسل.
  • لا يُرسل شيء من تلقاء نفسه. لا يغادر المحتوى موقعك إلا عند ضبط مزوّد وتشغيل مستخدم مخوّل لإجراء ترجمة.

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

ووكومرس وACF وأدوات بناء الصفحات

تكتشف SaintLang الأدوات التي تعتمد عليها المواقع متعددة اللغات عادةً، وتتعامل معها كما يلي:

الأداةما تفعله SaintLang
ووكومرستترجم المنتجات على معرّف المنتج نفسه، فيظل السعر والمخزون والخصائص على منتج واحد.
Advanced Custom Fieldsتترجم كل أنواع الحقول، بما فيها Repeater وFlexible Content.
Yoast SEO وRank Mathتجعل روابط canonical فيهما تراعي اللغة.
إلمنتور وBricksتكتشفهما، وتبقى بيانات البناء على معرّف المقال نفسه.

لا تترجم SaintLang تخطيطات أدوات بناء الصفحات (page builders) عبر تكامل مخصص، فاختبر الصفحات المبنية بإلمنتور أو Bricks على نسخة تجريبية (Staging) قبل الاعتماد عليها.

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

مبنية للعربية واتجاه RTL

أعمل غالباً على مشاريع عربية وثنائية اللغة، فهذا الجزء ليس لمسة أخيرة:

  • كتالوج اللغات: أكثر من 50 لغة، منها العربية مع نسخها الإقليمية للسعودية ومصر والإمارات. وتحمل كل لغة علامة RTL خاصة بها.
  • لوحة تحكم بالعربية: واجهة SaintLang متاحة بالإنجليزية والعربية مع دعم كامل لـ RTL، ويُحفظ الاختيار لكل مستخدم.
  • تغيير الاتجاه محصور: لا تغيّر SaintLang موضع قائمة ووردبريس الإدارية أو شريط الأدوات الأصلي ولا تنسيقهما ولا اتجاههما. يقتصر تغيير الاتجاه على شاشات SaintLang نفسها.
  • بلا طلبات خارجية: خط الواجهة (Cairo) والأيقونات وأعلام الدول كلها مضمّنة في الإضافة، فلا يُحمَّل شيء من خادم طرف ثالث.

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

مبدّل اللغة

يمكن لـ SaintLang إضافة مبدّل لغة في الهيدر تلقائياً (معطّل افتراضياً)، ويمكنك وضع مبدّل في أي مكان بشورتكود:

[saintlang_switcher flags="1" names="1" hide_current="0" style="dropdown"]

تقبل السمة style القيم dropdown وpills وminimal. وكل رابط لغة يحمل السمتين lang وhreflang. ومن الإعدادات يمكنك تفعيل الإدراج التلقائي أو إيقافه، واختيار إدراج ذكي في قائمة الهيدر أو مبدّل عائم.

للمطورين

تعرض SaintLang واجهة صغيرة للمطورين:

  • دوال PHP: saintlang_current_language() وsaintlang_get_languages() وsaintlang_translate_string() وsaintlang_term_name() وsaintlang_with_language() التي تشغّل دالة استدعاء (callback) بلغة أخرى مؤقتاً.
  • فلتر (Filter): saintlang_translatable_post_type يتيح استبعاد أنواع المحتوى الخاصة، مثل إدخالات النماذج أو السجلات، من الترجمة.
  • واجهة REST: مسارات تحت saintlang/v1 للغات والترجمات والنصوص والقاموس والمهام وفحص السيو والإعدادات وفحص الصحة، وكلها محمية بفحص الصلاحيات.
  • WP-CLI: wp saintlang languages وwp saintlang scan-strings وwp saintlang translate 123 --to=ar وwp saintlang seo-audit.
  • الأدوار: دورا SaintLang Translator وSaintLang Translation Manager، ليتمكن المترجمون من العمل دون صلاحيات المدير الكاملة.
// استبعاد نوع محتوى خاص من الترجمة
add_filter( 'saintlang_translatable_post_type', fn( $on, $type ) => 'my_form_entry' === $type ? false : $on, 10, 2 );

// عرض شيء في النسخة العربية فقط
if ( 'ar' === saintlang_current_language() ) {
	// ...
}

الأداء والخصوصية وسلامة البيانات

  • مبنية للمواقع الكبيرة: استعلامات تراعي ذاكرة الكائنات (Object Cache)، وقواعد إعادة كتابة مختصرة، وتنظيف تلقائي للسجلات القديمة. ولتعرف أين يقف بقية موقعك، اتبع دليل تسريع موقع ووردبريس وتحسين Core Web Vitals.
  • بلا تتبع: لا إعلانات ولا تتبع خفي. وعندما يختار الزائر لغة، يحفظ ملف تعريف الارتباط (cookie) باسم saintlang_lang لغة الطلبات الخلفية (مثل تحديث السلة عبر AJAX)، لكن رابط الصفحة هو دائماً من يحدد لغتها.
  • تُحفظ ترجماتك افتراضياً عند حذف الإضافة. أما مفاتيح الذكاء الاصطناعي المخزنة فتُحذف دائماً. ولإزالة كل جدول وخيار ودور وبيانات وصفية (post meta)، أضف define( 'SAINTLANG_REMOVE_ALL_DATA', true ); إلى wp-config.php قبل حذفها.
  • الأمان: مسارات REST تستخدم دوال فحص الصلاحيات (permission callbacks). وتظل قائمة حماية موقع ووردبريس سارية على موقعك ككل.

SaintLang في موقع حقيقي: موقع True Ventures

النسختان العربية والإنجليزية من موقع True Ventures تعملان بـ SaintLang. العربية هي اللغة الأساسية وتقع في جذر النطاق، والإنجليزية تحت /en/. وهذه وسوم اللغات التي يُخرجها الموقع في الـ head، منسوخة من صفحاته الحية:

<link rel="alternate" hreflang="ar" href="https://truevs.sa/" />
<link rel="alternate" hreflang="en" href="https://truevs.sa/en/" />
<link rel="alternate" hreflang="x-default" href="https://truevs.sa/" />

كل صفحة تشير إلى نظيرتها، ويشير x-default إلى نسخة اللغة الأساسية. ورابط الصفحة وحده هو الذي يحدد اللغة المعروضة، فيصل الزائر وزاحف البحث والرابط المشارَك إلى النسخة نفسها.

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

الانتقال من WPML

تكتشف SaintLang وجود WPML وتستورد ترجمات المقالات منه. ويدعم الاستيراد وضع التجربة (Dry Run)، فتعاين ما سيُستورد قبل كتابة أي شيء. وتقرأ الإضافة جدول الترجمات الخاص بـ WPML وتجمع ترجمات المحتوى نفسه معاً.

وتكتشف الإضافة Polylang وTranslatePress، لكنها لا تستورد منهما بعد. وأياً كان ما تنقله، خذ نسخة احتياطية كاملة أولاً واختبر على نسخة تجريبية (Staging).

كيف تبدأ

  1. ثبّت SaintLang من «الإضافات» ثم «أضف جديد» بالبحث عن «SaintLang» (أو نزّلها من WordPress.org)، ثم فعّلها.
  2. افتح SaintLang من قائمة ووردبريس الإدارية.
  3. أضف اللغات التي تريد استخدامها فقط.
  4. اختر اللغة الأساسية وبنية الروابط (المجلدات هي الموصى بها).
  5. افتح مقالاً أو صفحة أو منتجاً واستخدم تبويبات اللغات في المحرر.
  6. أضف بيانات مزوّد الذكاء الاصطناعي فقط إذا أردت الترجمة الآلية.
  7. شغّل فحص السيو ومسح النصوص، ثم أضف مبدّل اللغة.

متى تكون SaintLang الاختيار المناسب؟

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

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

الأسئلة الشائعة

هل SaintLang مجانية، ومن أين أحصل عليها؟

نعم. SaintLang مجانية، ورخصتها GPLv2 أو أحدث، ومتاحة في مستودع إضافات WordPress.org. من لوحة التحكم افتح «الإضافات» ثم «أضف جديد» وابحث عن «SaintLang». وتتطلب ووردبريس 6.5 أو أحدث وPHP 8.1 أو أحدث.

هل تنشئ SaintLang مقالاً منفصلاً في ووردبريس لكل لغة؟

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

ماذا يحدث عندما تكون الترجمة ناقصة؟

تعرض SaintLang محتوى لغة المصدر بديلاً إلى أن تُترجم تلك اللغة وتُحفظ. ويشير رابط canonical لتلك الصفحة إلى الأصل، فلا تواجه محركات البحث محتوى مكرراً.

أي بنية روابط أستخدم؟

مجلدات اللغات هي الموصى بها للسيو متعدد اللغات، مثل /ar/sample-page/. وهي تحتاج إلى روابط دائمة مخصصة (Pretty Permalinks). وفي المواقع التي تستخدم الروابط الدائمة الافتراضية، تستخدم SaintLang بدلاً منها المعامل ?lang=.

هل تترجم SaintLang حقول Advanced Custom Fields؟

نعم. افتح المقال بإحدى اللغات من شريط اللغات وحرّر حقول ACF كالمعتاد. والحفظ يخزّنها لتلك اللغة فقط، وتُرجع get_field() قيمة لغة الزائر، مع الرجوع إلى الأصل.

هل تحتاج SaintLang إلى خدمة ذكاء اصطناعي؟

لا. الترجمة بالذكاء الاصطناعي اختيارية. كل شيء آخر يعمل دون حساب ذكاء اصطناعي، ولا يُرسل شيء إلى أي مزوّد ما لم تضبط واحداً وتشغّل الترجمة.

ماذا يحدث لترجماتي إذا حذفت الإضافة؟

تُحفظ افتراضياً. أما مفاتيح مزوّد الذكاء الاصطناعي المخزنة فتُحذف دائماً. ولحذف كل بيانات SaintLang، عرّف الثابت SAINTLANG_REMOVE_ALL_DATA في wp-config.php قبل حذفها.

الخلاصة

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

SaintLang مجانية: ثبّتها من WordPress.org وجرّبها أولاً على نسخة تجريبية من موقعك. والملاحظات والتقييمات على صفحة الإضافة موضع ترحيب.

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