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

جدول اللغة والترجمة
يُسمى الجدول الذي يحتوي على معلومات اللغة والترجمة icl_translations.
- يحتوي كل عنصر من عناصر محتوى الموقع تم إعداده كعنصر قابل للترجمة (مقالة، صفحة، وسم، تصنيف، نوع منشور مخصص، والتصنيفات المخصصة) على إدخال في هذا الجدول. ملاحظة: التعليقات غير قابلة للترجمة ولكن لها سجل في icl_translations لأنه تم تعيين معلومات لغة لها.
- يحدد الإدخال لغة العنصر ومجموعة الترجمة (نوع العنصر) التي ينتمي إليها.
- تشترك إدخالات نفس مجموعة الترجمة في نفس القيمة في عمودي element_type و trid.
- الإدخال الذي ليس له لغة مصدر (NULL) في نفس المجموعة هو الإدخال الأصلي.
يحتوي على الأعمدة التالية:
- translation_id – رقم تسلسلي
- element_type – نوع العنصر. يتم شرح هذه القيمة واستردادها في الخطّاف wpml_element_type.
- element_id – معرّف العنصر (post_id لأنواع المنشورات، term_taxonomy_id لمصطلحات التصنيفات)
- trid – معرّف مجموعة الترجمة
- language_code – رمز لغة العنصر
- source_language_code – في حال تمت الترجمة، لغة العنصر الأصلي
على سبيل المثال، إذا كان لدينا مقالة باللغة الإنجليزية بمعرّف ID=3، وتمت ترجمتها إلى الإسبانية وكانت الترجمة الإسبانية تحمل المعرّف ID=7، فسيبدو جدول icl_translations كما يلي:
| translation_id | element_type | element_id | trid | language_code | source_language_code |
|---|---|---|---|---|---|
| 1 | post_post | 3 | 2 | en | NULL |
| 2 | post_post | 7 | 2 | es | en |
| * نظراً لأن الإدخالين لهما نفس قيمة trid بالنسبة لـ trid، فهما ترجمتان لبعضهما البعض. القيمة نفسها ليست مهمة. | |||||

في المواقع القديمة (التي تم إنشاؤها قبل WPML 4.8)، يمكنك تشغيل عملية لمرة واحدة لـ تحسين جداول الترجمة.
جدول أعلام الدول
تأتي WPML مزودة بمجموعة كبيرة من أعلام الدول. كن على دراية بأن ربط اللغات بالدول قد يكون إشكالياً. فالعديد من اللغات يتم التحدث بها (بشكل مختلف أحياناً) في دول مختلفة. ومع ذلك، تظل أعلام الدول إشارة مرئية مفيدة وتساعد الزوار على تحديد لغتهم بسهولة.
يتم تخزين أعلام دول WPML في دليل res/flags ويشير جدول icl_flags إلى العلم الذي يجب إرجاعه لكل دولة. أعمدة جدول icl_flags هي:
- id – رقم تسلسلي
- lang_code – رمز اللغة
- flag – اسم ملف العلم
- from_template – «0»: أخذ العلم من مجلد res/flags الخاص بـ WPML، «1»: أخذ العلم من دليل القالب
إذا كنت تريد استخدام علم مختلف، يمكنك رفع ملف علم مخصص بالذهاب إلى WPML → اللغات والنقر على تعديل اللغات.

يمكنك استخدام صفحة تعديل اللغات نفسها لـ إضافة لغة مخصصة.
جدول ترجمة النصوص
تتضمن معظم مواقع WordPress بعض السلاسل النصية التي لا تنتمي إلى أي عنصر (مقالة، صفحة، وسم، تصنيف) ولكنها لا تزال بحاجة إلى الترجمة - على سبيل المثال، سطر الوصف الخاص بالمدونة.
تتضمن WPML آلية تُسمى ترجمة النصوص، للتعامل مع هذه السلاسل النصية.
يتم الاحتفاظ بالسلاسل النصية في جدول icl_strings مع الأعمدة التالية:
- id – رقم تسلسلي
- language – اللغة
- context – سياق السلسلة النصية (يشير إلى ما تنتمي إليه السلسلة النصية)
- name – اسم السلسلة النصية
- value – قيمة السلسلة النصية (محتوياتها)
- string_package_id - معرّف الحزمة التي تنتمي إليها السلسلة النصية
- type – نوع المحرر المراد استخدامه عند تعديل السلسلة النصية عبر محرر الترجمة (LINE أو AREA أو VISUAL)
- title – عنوان السلسلة النصية المراد عرضه في محرر الترجمة
- status – حالة الترجمة التي تشير إلى ما إذا كانت السلسلة النصية مترجمة بالكامل إلى جميع اللغات
- gettext_context – السياق المعيّن في دالة gettext، على سبيل المثال _x
- domain_name_context_md5 – مفتاح فريد لتحسين أداء البحث
يتم الاحتفاظ بترجمات السلسلة النصية في جدول icl_string_translations:
- id – رقم تسلسلي
- string_id – معرّف (الرقم التسلسلي) السلسلة النصية التي تتم ترجمتها
- language – لغة الترجمة
- status – حالة الترجمة (مكتمل / غير مكتمل)
- value – الترجمة نفسها
- translator_id – معرّف المترجم
- translation_service – خدمة الترجمة المستخدمة لترجمة السلسلة النصية. يمكن أن تكون فارغة، أو محلية، أو خدمة عن بُعد
- batch_id – معرّف الدفعة عندما تتم ترجمة سلسلة نصية بواسطة خدمة ترجمة
- translation_date – تاريخ الترجمة

جميع جداول WPML
إليك قائمة كاملة بجميع الجداول التي تستخدمها WPML:
wp_icl_background_taskwp_icl_content_statuswp_icl_core_statuswp_icl_flagswp_icl_languageswp_icl_languages_translationswp_icl_locale_mapwp_icl_message_statuswp_icl_mo_files_domainswp_icl_nodewp_icl_reminderswp_icl_stringswp_icl_string_batcheswp_icl_string_packageswp_icl_string_positionswp_icl_string_statuswp_icl_string_translationswp_icl_translatewp_icl_translate_jobwp_icl_translationswp_icl_translation_batcheswp_icl_translation_downloadswp_icl_translation_status