- สถานะ
- แก้ไขแล้ว
ภาพรวมของปัญหา
เมื่อคุณเปลี่ยนโลแคลของภาษา ตัวอย่างเช่น สำหรับภาษาเยอรมันจาก de_DE เป็น de_DE_formal คุณอาจสังเกตเห็นว่าการแปลสตริงหยุดแสดงผล
ปัญหานี้เกิดขึ้นเนื่องจาก WPML ไม่สามารถค้นหาไฟล์ MO ที่มีโลแคลของภาษาตรงกันได้อีกต่อไป ในตัวอย่างของเรา ระบบจะค้นหา some-domain-de_DE_formal.mo แต่ไม่มีไฟล์ดังกล่าวอยู่ ในทางกลับกัน WPML มีเพียงข้อมูลของ some-domain-de_DE.mo เท่านั้น
วิธีแก้ปัญหาชั่วคราว
เพื่อแก้ปัญหานี้ คุณต้องทำสองสิ่งดังนี้:
1. หากคุณมีสตริงที่แปลผ่านหน้า WPML -> การแปลสตริง ให้ไปที่หน้า WPML -> ฝ่ายสนับสนุน -> การแก้ปัญหา และคลิกปุ่ม Show custom MO Files Pre-generation dialog box ในกล่องโต้ตอบที่ปรากฏขึ้น ให้คลิกปุ่มสีน้ำเงินเพื่อสร้างไฟล์ MO แบบกำหนดเองใหม่
2. เป็นไปได้มากว่าขั้นตอนแรกจะไม่สามารถซ่อมแซมสตริงที่หายไปได้ทั้งหมด ทั้งนี้เนื่องจากค่าบางค่าอาจมาจากไฟล์ MO ดั้งเดิมที่หายไป ซึ่งมาจากปลั๊กอินหรือธีมอื่น ๆ เพื่อแก้ปัญหานี้ คุณต้องค้นหาไฟล์ MO ที่หายไปและสร้างสำเนาโดยใช้ชื่อใหม่ที่มีรหัสภาษาใหม่
ในตัวอย่างของเรา หากปกติแล้วระบบโหลดสตริงจากไฟล์ woocommerce-de_DE.mo เราต้องค้นหาไฟล์นั้นและสร้างสำเนาโดยใช้ชื่อที่ตรงกับโลแคลปัจจุบันคือ woocommerce-de_DE_formal.mo คุณต้องคัดลอกไฟล์ที่หายไปทั้งหมดที่ไซต์ของคุณใช้งาน
ตำแหน่งทั่วไปที่คุณสามารถค้นหาไฟล์ MO เหล่านี้ได้คือ:
- ../wp-content/languages/
- ../wp-content/plugins/plugin-in-question/
- ../wp-content/plugins/plugin-in-question/languages/
สุดท้าย คุณยังสามารถค้นหาเส้นทางเฉพาะได้ในตาราง wp_icl_mo_files_domains ในฐานข้อมูลของคุณ