คุณสมบัติปลั๊กอินราคาแหล่งข้อมูล
เปลี่ยนภาษา
แหล่งข้อมูลทำไมการแปลภาษาของคุณถึงไม่แสดงผลใน WordPress (คู่มือแก้ไขปัญหา)

ทำไมการแปลภาษาของคุณถึงไม่แสดงผลใน WordPress (คู่มือแก้ไขปัญหา)

SimplePoTranslate Team5 ธันวาคม 2568
ทำไมการแปลภาษาของคุณถึงไม่แสดงผลใน WordPress (คู่มือแก้ไขปัญหา)

ไม่มีอะไรน่าหงุดหงิดใจในการพัฒนา WordPress มากไปกว่า "ความล้มเหลวแบบเงียบๆ"

คุณทำทุกอย่างถูกต้องแล้ว คุณแปลไฟล์ .po คุณคอมไพล์เป็นไฟล์ .mo คุณอัปโหลดไปยังเซิร์ฟเวอร์ของคุณผ่าน FTP คุณล้างแคชแล้ว

คุณรีเฟรชหน้าเว็บ โดยหวังว่าจะเห็นเป็นภาษาสเปน ฝรั่งเศส หรือเยอรมัน แต่สิ่งที่คุณเห็นคือ... ภาษาอังกฤษ

ไม่มีข้อความแสดงข้อผิดพลาด ไม่มีหน้าจอสีขาว—มีเพียงข้อความที่ไม่ได้รับการแปลที่ดื้อรั้น ก่อนที่คุณจะดึงผมตัวเองจนหมดหัว โปรดอ่านคู่มือนี้ นี่คือ 5 สาเหตุที่พบบ่อยที่สุดที่ทำให้การแปลภาษาไม่โหลดใน WordPress และวิธีแก้ไข

1. คุณตั้งชื่อไฟล์ผิด

WordPress เข้มงวดอย่างมากเกี่ยวกับการตั้งชื่อไฟล์ หากคุณพลาดอักขระไปเพียงตัวเดียว ไฟล์จะไม่ถูกโหลด

รูปแบบมาตรฐานคือ: {text-domain}-{locale}.mo

  • Text Domain: นี่คือ ID เฉพาะของธีมหรือปลั๊กอิน (เช่น woocommerce, twentytwentyfour, my-custom-plugin)
  • Locale: รหัสโลแคล WP (เช่น es_ES สำหรับภาษาสเปนของสเปน, fr_FR สำหรับภาษาฝรั่งเศส)

ข้อผิดพลาดทั่วไป:

  • ตั้งชื่อไฟล์เป็นเพียง es_ES.mo (วิธีนี้ใช้ได้เฉพาะกับไฟล์หลักของ WordPress เท่านั้น ไม่ใช่ปลั๊กอิน)
  • ใช้เครื่องหมายขีดที่ไม่ถูกต้อง: my_plugin_es_ES.mo (ขีดล่าง) แทน my-plugin-es_ES.mo (ยัติภังค์)
  • เดา text domain คุณต้องตรวจสอบโค้ดของปลั๊กอิน (ส่วนหัว style.css หรือฟังก์ชัน load_plugin_textdomain) เพื่อค้นหา slug ที่แน่นอน

2. คุณใส่ไฟล์ในโฟลเดอร์ผิด

ตำแหน่งที่คุณอัปโหลดไฟล์มีความสำคัญไม่แพ้กับชื่อไฟล์ WordPress จะมองหาในไดเร็กทอรีเฉพาะตามลำดับที่กำหนด

  • โฟลเดอร์ระบบ "ปลอดภัย": /wp-content/languages/plugins/ หรือ /wp-content/languages/themes/
    • ข้อดี: ปลอดภัยจากการอัปเดตปลั๊กอิน
    • ข้อเสีย: คุณต้องตั้งชื่อไฟล์เป็น textdomain-locale.mo
  • โฟลเดอร์ผู้สร้าง: /wp-content/plugins/plugin-name/languages/
    • ข้อดี: หาได้ง่าย
    • ข้อเสีย: อันตราย เมื่อคุณอัปเดตปลั๊กอิน โฟลเดอร์นี้จะถูกล้างทั้งหมด การแปลภาษาของคุณจะหายไป

แนวทางปฏิบัติที่ดีที่สุด: ควรใส่ไฟล์ .mo ที่กำหนดเองของคุณไว้ในไดเร็กทอรี /wp-content/languages/ เสมอ เพื่อป้องกันการสูญหายของข้อมูลระหว่างการอัปเดต

3. "ฆาตกรเงียบ": ไวยากรณ์ที่เสียหายในไฟล์ .po

นี่คือปัญหาที่แก้ไขได้ยากที่สุด และมักเกิดขึ้นกับเครื่องมือแปลภาษา AI ทั่วไป

WordPress อ่านไฟล์ .mo แบบไบนารี ซึ่งคอมไพล์มาจากไฟล์ข้อความ .po หากไฟล์ .po ของคุณมีข้อผิดพลาดทางไวยากรณ์ ไฟล์ .mo อาจถูกสร้างขึ้น แต่จะ "เสีย" ภายใน

สิ่งนี้เกิดขึ้นได้อย่างไร? หากนักแปล (ไม่ว่าจะเป็นคนหรือ AI) ทำรูปแบบ Gettext ผิดพลาด สตริงนั้นจะไม่ถูกต้อง

  • ตัวอย่าง: ไม่มีเครื่องหมายอัญประกาศปิด "
  • ตัวอย่าง: ทำให้ตัวแปรเสียหาย (เปลี่ยน %s เป็น % s)
  • ตัวอย่าง: ทำให้การนับ msgid_plural ผิดพลาด

เมื่อ WordPress พบรายการที่เสียในไฟล์ .mo มักจะข้ามไป หรือหยุดอ่านไฟล์ทั้งหมด และกลับไปเป็นภาษาอังกฤษดั้งเดิม

4. คุณลืมคอมไพล์ (.po เทียบกับ .mo)

WordPress ไม่สามารถ อ่านไฟล์ .po ได้โดยตรง นี่เป็นความเข้าใจผิดที่พบบ่อย

  • .po = อ่านได้โดยมนุษย์ (Portable Object)
  • .mo = อ่านได้โดยเครื่อง (Machine Object)

หากคุณอัปโหลดไฟล์ my-theme-es_ES.po แต่ลืมสร้างไฟล์ .mo ที่ตรงกัน จะไม่มีอะไรเกิดขึ้น คุณต้องคอมไพล์

5. การแคช (ผู้ต้องสงสัยตามปกติ)

หากคุณใช้ปลั๊กอินแคช (WP Rocket, LiteSpeed) หรือแคชฝั่งเซิร์ฟเวอร์ (Varnish, Redis) ไซต์ของคุณอาจให้บริการ HTML เวอร์ชันที่แคชไว้จาก ก่อนหน้า ที่คุณอัปโหลดการแปล

วิธีแก้ไข: ล้างแคชทั้งหมด รวมถึงแคชของเบราว์เซอร์และ object cache

วิธีแก้ไขขั้นสุดยอด: ไฟล์ที่ถูกต้องตั้งแต่เริ่มต้น

การแก้ไขปัญหาเส้นทางและชื่อไฟล์เป็นเรื่องง่าย การแก้ไขปัญหา ไวยากรณ์ที่เสียหาย (เหตุผล #3) คือฝันร้าย

หากคุณใช้เครื่องมือที่ทำให้ตัวแปรโค้ดของคุณเสียหาย หรือทำให้โครงสร้าง Gettext เสียหาย คุณจะต้องใช้เวลาหลายชั่วโมงในการสงสัยว่าทำไมไฟล์ถึงใช้งานไม่ได้ โดยไม่รู้ว่าตัวไฟล์เองนั้น "เป็นพิษ"

นี่คือเหตุผลที่เราสร้าง SimplePoTranslate

  • การล็อกไวยากรณ์: เรารับประกันว่าทุกสตริงจะถูกต้องตามไวยากรณ์ก่อนที่คุณจะดาวน์โหลด เราล็อกตัวแปรต่างๆ เช่น %s เพื่อไม่ให้เสียหายได้
  • การจัดรูปแบบที่สมบูรณ์แบบ: เราสร้างไฟล์ .po ที่สะอาดและได้มาตรฐาน ซึ่งคอมไพล์เป็นไฟล์ .mo ที่ใช้งานได้ 100% ของเวลา
  • ไม่จำเป็นต้องใช้ปลั๊กอิน: คุณดาวน์โหลดไฟล์ และคุณรู้ว่ามันใช้งานได้ คุณเพียงแค่ต้องอัปโหลดไปยังโฟลเดอร์ที่ถูกต้อง
  • ปลั๊กอิน WordPress: ต้องการข้ามการอัปโหลดด้วยตนเองทั้งหมดหรือไม่ ปลั๊กอิน SimplePoTranslate WordPress อย่างเป็นทางการของเราจะตรวจจับไฟล์ .pot ของธีมและปลั๊กอินของคุณโดยอัตโนมัติ แปลในคลาวด์ และปรับใช้ผลลัพธ์ไปยังไดเร็กทอรีที่ถูกต้องด้วยชื่อไฟล์ที่ถูกต้อง ไม่มีการตั้งชื่อไฟล์ผิดอีกต่อไป ไม่มีเส้นทางโฟลเดอร์ที่ไม่ถูกต้อง — สองสาเหตุที่พบบ่อยที่สุดที่ทำให้การแปลภาษาไม่ปรากฏ

หยุดคาดเดาว่าทำไมการแปลภาษาของคุณถึงมองไม่เห็น เริ่มต้นด้วยไฟล์ที่คุณวางใจได้

พร้อมที่จะแปลภาษาโดยไม่ต้องปวดหัวแล้วหรือยัง เริ่มต้นฟรีได้ที่ SimplePoTranslate.com

หัวข้อที่เกี่ยวข้อง

แชร์บทความนี้