ทำไม Magento 2 จึงระงับการแปลแบบอินไลน์ในขณะที่ส่งอีเมลธุรกรรม


11

Magento 2 คืออะไรพยายามหลีกเลี่ยงโดยระงับการแปลแบบอินไลน์ก่อนที่จะส่งแล้วกลับมาทำงานต่อหลังจาก?

คำตอบ:


5

การแปลแบบอินไลน์ถูกปิดใช้งานเมื่อส่งอีเมลเนื่องจากเมื่อการแปลแบบอินไลน์เปิดใช้งานข้อความที่พิมพ์ที่แปลได้ ( __('Text here')) จะต้องผ่านMagento\Framework\Phrase\RendererMagento\Framework\Phrase\Renderer\Inline::render

วิธีนี้จะเพิ่มมาร์กอัพรอบข้อความ{{{และ}}}ใช้ในภายหลังโดยโค้ดจาวาสคริปต์ที่ตีความได้และแสดงปุ่มเล็ก ๆ และป๊อปอัปสำหรับการแปลแบบอินไลน์ .... แต่ ....

สิ่งนี้ใช้ได้เฉพาะเมื่อคุณอยู่ในเว็บไซต์ดังกล่าวและโหลด js นั้นแล้ว
เนื่องจากphtmlสามารถใช้เทมเพลตในเทมเพลตอีเมลได้หากเปิดใช้งานการแปลแบบอินไลน์คุณจะได้รับข้อความในอีเมลเช่นนี้{{{ some text here }}{{ other text here }}}เพราะมาร์กอัปพิเศษจะไม่ถูกตีความ
นี่เป็นมาตรการรักษาความปลอดภัยดังนั้นคุณจึงไม่ต้องเสียเวลากับอีเมลชั่วคราว


3

เมื่อการแปลในบรรทัดได้รับอนุญาตให้ฟังก์ชั่นสาธารณะสตริงจะแปลตาม ดังนั้นคุณต้องปิดการใช้งานและดำเนินการในภายหลัง

นอกจากนี้ยังป้องกันปัญหาเกี่ยวกับการแปลแบบอินไลน์ที่เปิดใช้งานไม่ถูกต้อง

การเพิ่มฟังก์ชั่นสำหรับการแปลแบบอินไลน์ระงับนั้นเกี่ยวข้องกับความขัดแย้งโปรดอ่าน:

https://github.com/magento/magento2/pull/11320

https://www.absolute-design.co.uk/services/magento-ecommerce/how-can-i-fix-magento-translation-conflicts/


ไม่ตอบคำถามในทางที่ฉันเข้าใจ
LM_Fielding

ฉันให้คุณ upvote ของฉัน นี่เป็นคำตอบที่คุณต้องการอย่างแท้จริง คุณถามสิ่งที่พยายามหลีกเลี่ยงและเขามีคำตอบที่มั่นคงสำหรับ อย่าเพิ่งลงคะแนนเพราะคุณไม่เข้าใจ
CompactCode

"เมื่อการแปลในบรรทัดได้รับอนุญาตให้ฟังก์ชั่นสาธารณะจะแปลตามลำดับดังนั้นคุณต้องปิดการใช้งานและดำเนินการต่อในภายหลัง" แก้ไขล่วงหน้าดังนั้นอย่าแสดงความคิดเห็นในสิ่งที่คุณไม่เข้าใจ
LM_Fielding
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.