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