WPML จัดเก็บข้อมูลภาษา การแปล และสตริงไว้ในตารางฐานข้อมูลที่กำหนดเอง เรียนรู้วิธีที่ข้อมูลเหล่านี้เชื่อมต่อกับตารางและเนื้อหาของ WordPress
โมเดลฐานข้อมูลของ WPML
แผนภาพต่อไปนี้แสดงโมเดลของตารางที่ WPML ใช้งาน:

ตารางภาษาและการแปล
ตารางที่เก็บข้อมูลภาษาและการแปลเรียกว่า icl_translations
- องค์ประกอบเนื้อหาของไซต์แต่ละรายการที่กำหนดค่าให้แปลได้ (โพสต์ หน้า แท็ก หมวดหมู่ ประเภทโพสต์แบบกำหนดเอง และอนุกรมวิธานที่กำหนดเอง) จะมีรายการอยู่ในตารางนี้ หมายเหตุ: ความคิดเห็นไม่สามารถแปลได้ แต่จะมีระเบียนอยู่ใน icl_translations เนื่องจากมีการกำหนดข้อมูลภาษาไว้
- รายการนี้ระบุภาษาของรายการและกลุ่มการแปล (ประเภทองค์ประกอบ) ที่รายการนั้นสังกัดอยู่
- รายการของคลัสเตอร์การแปลเดียวกันจะใช้ค่าเดียวกันในคอลัมน์ element_type และ trid
- รายการที่ไม่มีภาษาต้นทาง (NULL) ในคลัสเตอร์เดียวกันคือรายการต้นฉบับ
ซึ่งมีคอลัมน์ต่อไปนี้:
- translation_id – หมายเลขลำดับ
- element_type – ประเภทขององค์ประกอบ ค่านี้ได้รับการอธิบายและดึงข้อมูลในฮุก wpml_element_type
- element_id – ID ของรายการ (post_id สำหรับประเภทโพสต์ term_taxonomy_id สำหรับคำในอนุกรมวิธาน)
- trid – ID ของกลุ่มการแปล
- 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 เหมือนกัน รายการเหล่านั้นจึงเป็นคำแปลของกันและกัน ตัวค่าเองนั้นไม่มีความสำคัญ | |||||

ในไซต์รุ่นเก่า (ที่สร้างก่อน 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 - ID ของแพ็คเกจที่สตริงนั้นสังกัดอยู่
- type – ประเภทของตัวแก้ไขที่ใช้เมื่อแก้ไขสตริงผ่านตัวแก้ไขการแปล ( LINE, AREA หรือ VISUAL )
- title – ชื่อของสตริงที่จะแสดงในตัวแก้ไขการแปล
- status – สถานะการแปลที่ระบุว่าสตริงได้รับการแปลเป็นทุกภาษาอย่างสมบูรณ์หรือไม่
- gettext_context – บริบทที่ตั้งค่าในฟังก์ชัน gettext เช่น _x
- domain_name_context_md5 – คีย์เฉพาะเพื่อปรับปรุงประสิทธิภาพการค้นหา
คำแปลของสตริงจะถูกเก็บไว้ในตาราง icl_string_translations:
- id – หมายเลขลำดับ
- string_id – ID (หมายเลขลำดับ) ของสตริงที่กำลังแปล
- language – ภาษาของคำแปล
- status – สถานะของคำแปล (เสร็จสมบูรณ์ / ไม่เสร็จสมบูรณ์)
- value – ตัวคำแปลเอง
- translator_id – ID ของนักแปล
- translation_service – บริการแปลภาษาที่ใช้ในการแปลสตริง สามารถเว้นว่างไว้ เป็นบริการในพื้นที่ หรือบริการระยะไกล
- batch_id – 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