WPML
สถานะ
แก้ไขแล้ว
แก้ไขใน
4.2.0

ภาพรวมของปัญหา

อัปเดต 13/08/2020:

ตั้งแต่ WPML 4.2.0 ไฟล์การแปล JavaScript (JED) จะถูกนำเข้าและสามารถปรับเปลี่ยนการแปลได้ WPML กำลังสร้างไฟล์ JED ของตัวเองพร้อมการแปลที่กำหนดเอง

เราได้พยายามนำฟีเจอร์การสแกนสตริงในไฟล์ JS มาใช้ แต่เราต้องยกเลิกเนื่องจากข้อจำกัดทางเทคนิค:

- สตริงแต่ละรายการควรแนบไปกับไฟล์ JS ที่โหลด

- ไฟล์ที่โหลดมักจะเป็นไฟล์ที่คอมไพล์แล้ว (เช่น babel / webpack) ซึ่งไม่สามารถตรวจจับสตริงได้อย่างถูกต้อง

- แม้ว่าเราจะสามารถเชื่อมโยงไฟล์ที่คอมไพล์แล้วเข้ากับไฟล์ต้นฉบับได้ แต่ไฟล์ต้นฉบับเหล่านั้นมักจะถูกแยกออกจากเวอร์ชันที่เผยแพร่ของปลั๊กอิน/ธีม จึงไม่มีประโยชน์สำหรับผู้ใช้ส่วนใหญ่

หากคุณสร้างธีมหรือปลั๊กอินที่มีสตริงในไฟล์ JS เราขอแนะนำให้สร้างไฟล์ POT ในขณะที่คอมไพล์สคริปต์ JS (ดูเพิ่มเติมที่ https://developer.wordpress.org/block-editor/developers/internationalization/#provide-your-own-translations)

ตัวแก้ไขบล็อก WordPress (”Gutenberg”) มาพร้อมกับกลยุทธ์ใหม่สำหรับการแปลสตริง ขณะนี้คุณสามารถแปลสตริงภายในฟังก์ชัน JavaScript ได้แล้ว ผลที่ตามมาของฟีเจอร์ใหม่นี้คือสตริงทั้งหมดของสคริปต์ที่เกี่ยวข้องจะต้องถูกโหลดในฝั่งเบราว์เซอร์ สิ่งนี้ไม่สอดคล้องกับกลยุทธ์ปัจจุบันของ WPML ในการสแกนและกรองการแปล

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

สิ่งนี้ไม่น่าจะส่งผลกระทบต่อประสบการณ์ของผู้ใช้มากนัก เนื่องจากฟีเจอร์ใหม่นี้ใช้เฉพาะในแบ็กเอนด์ (ตัวแก้ไขบล็อก) เท่านั้น และได้รับการแปลโดยชุมชนไปเป็นส่วนใหญ่แล้ว

ปัญหาที่ทราบแล้วทั้งหมด →