ฉันกำลังพัฒนาเว็บแอปพลิเคชั่น PHP หลายภาษาและฉันมีข้อความยาว (-ish) ที่ฉันต้องการแปลด้วย gettext เหล่านี้คือเทมเพลตอีเมล (โดยปกติจะสั้น แต่ก็ยังมีอีกหลายบรรทัด) และบางส่วนของเทมเพลตการดู (บล็อคข้อความที่มีความหมายที่ยาวกว่า) ข้อความเหล่านี้จะมี HTML ง่ายๆ (เช่นตัวหนา / ตัวเอียงเพื่อเน้นอาจเป็นลิงค์ที่นี่หรือที่นั่น) แม่แบบเป็นสคริปต์ PHP ที่มีการบันทึกผลลัพธ์
ปัญหาคือ gettext ดูงุ่มง่ามมากสำหรับการจัดการข้อความที่ยาวขึ้น โดยทั่วไปแล้วข้อความที่ยาวจะมีการเปลี่ยนแปลงมากกว่าระยะเวลาสั้นกว่าข้อความสั้น - ฉันสามารถเปลี่ยน msgid และตรวจสอบให้แน่ใจว่าได้อัปเดตในการแปลทั้งหมด (อาจเป็นงานจำนวนมากและมีข้อผิดพลาดเกิดขึ้นได้ง่ายเมื่อ msgid ยาว) หรือ msgid ไม่เปลี่ยนแปลงและแก้ไขเฉพาะการแปล (ซึ่งจะทำให้ข้อความล้าสมัยในแม่แบบที่ทำให้เข้าใจผิด) นอกจากนี้ฉันเคยเห็นคำแนะนำเกี่ยวกับการรวม HTML ในสตริง gettext แต่การหลีกเลี่ยงมันจะทำให้ข้อความธรรมดาชิ้นเดียวกลายเป็นชิ้นส่วนจำนวนมากซึ่งจะเป็นฝันร้ายที่ยิ่งใหญ่กว่าในการแปลและรวมกันอีกครั้งและฉันก็เห็นคำแนะนำ การแยก gettext สตริงที่ไม่จำเป็นออกเป็น msgids แยกกัน
วิธีอื่นที่ฉันเห็นคือละเว้น gettext ทั้งหมดสำหรับข้อความที่ยาวกว่านี้และแยกบล็อกเหล่านั้นในซับเทมเพลตภายนอกสำหรับแต่ละโลแคลและเพียงแค่รวมบล็อกสำหรับโลแคลปัจจุบัน ข้อเสียคือฉันกำลังแยกความพยายามในการแปลระหว่างไฟล์. po ของ gettext และเทมเพลตที่แยกต่างหากซึ่งอยู่ในตำแหน่งที่แตกต่างอย่างสิ้นเชิง
เนื่องจากแอปพลิเคชันนี้จะถูกใช้เป็นจุดเริ่มต้นสำหรับแอปพลิเคชันอื่น ๆ ในอนาคตฉันจึงพยายามหาวิธีที่ดีที่สุดในระยะยาว ฉันต้องการคำแนะนำสำหรับแนวทางปฏิบัติที่ดีที่สุดในสถานการณ์ดังกล่าว คุณใช้กรณีที่คล้ายกันอย่างไร เกิดอะไรขึ้นกับการทำงานและอะไรที่ทำให้เกิดความคิดที่ไม่ดี