Magento 2 คืออะไรพยายามหลีกเลี่ยงโดยระงับการแปลแบบอินไลน์ก่อนที่จะส่งแล้วกลับมาทำงานต่อหลังจาก?
Magento 2 คืออะไรพยายามหลีกเลี่ยงโดยระงับการแปลแบบอินไลน์ก่อนที่จะส่งแล้วกลับมาทำงานต่อหลังจาก?
คำตอบ:
การแปลแบบอินไลน์ถูกปิดใช้งานเมื่อส่งอีเมลเนื่องจากเมื่อการแปลแบบอินไลน์เปิดใช้งานข้อความที่พิมพ์ที่แปลได้ ( __('Text here')
) จะต้องผ่านMagento\Framework\Phrase\RendererMagento\Framework\Phrase\Renderer\Inline::render
วิธีนี้จะเพิ่มมาร์กอัพรอบข้อความ{{{
และ}}}
ใช้ในภายหลังโดยโค้ดจาวาสคริปต์ที่ตีความได้และแสดงปุ่มเล็ก ๆ และป๊อปอัปสำหรับการแปลแบบอินไลน์ .... แต่ ....
สิ่งนี้ใช้ได้เฉพาะเมื่อคุณอยู่ในเว็บไซต์ดังกล่าวและโหลด js นั้นแล้ว
เนื่องจากphtml
สามารถใช้เทมเพลตในเทมเพลตอีเมลได้หากเปิดใช้งานการแปลแบบอินไลน์คุณจะได้รับข้อความในอีเมลเช่นนี้{{{ some text here }}{{ other text here }}}
เพราะมาร์กอัปพิเศษจะไม่ถูกตีความ
นี่เป็นมาตรการรักษาความปลอดภัยดังนั้นคุณจึงไม่ต้องเสียเวลากับอีเมลชั่วคราว
เมื่อการแปลในบรรทัดได้รับอนุญาตให้ฟังก์ชั่นสาธารณะสตริงจะแปลตาม ดังนั้นคุณต้องปิดการใช้งานและดำเนินการในภายหลัง
นอกจากนี้ยังป้องกันปัญหาเกี่ยวกับการแปลแบบอินไลน์ที่เปิดใช้งานไม่ถูกต้อง
การเพิ่มฟังก์ชั่นสำหรับการแปลแบบอินไลน์ระงับนั้นเกี่ยวข้องกับความขัดแย้งโปรดอ่าน: