Çok dilli bir PHP web uygulaması geliştiriyorum ve gettext ile çevirmem gereken uzun (-ish) metinlerim var. Bunlar e-posta şablonları (genellikle kısa, ancak yine de birkaç satır) ve görünüm şablonlarının parçalarıdır (daha uzun açıklayıcı metin blokları). Bu metinler bazı basit HTML'leri içerir (vurgu için kalın / italik, muhtemelen burada veya orada bir bağlantı). Şablonlar çıktısı alınan PHP komut dosyalarıdır.
Sorun, gettext'in daha uzun metinleri işlemek için çok sakar görünmesi. Daha uzun metinlerde zamanla kısa metinlerden daha fazla değişiklik olur - msgid'i değiştirebilir ve tüm çevirilerde güncelleyebileceğimden emin olabilirim (msgid uzun olduğunda çok fazla iş yapabilir ve hataya açık olabilir) veya tutabilirim msgstr değişmedi ve sadece çevirileri değiştirdi (bunlar şablonlarda yanıltıcı metinler bırakacaktı). Ayrıca, HTML'yi gettext dizelerine eklemeye karşı tavsiyede bulundum, ancak bundan kaçınmak, tek bir doğal metni çok sayıda parçaya bölebiliyordu, bu da çevirmek ve yeniden birleştirmek için daha büyük bir kabus olacak ve ayrıca gettext dizelerinin ayrı msgidlere gereksiz yere bölünmesi.
Gördüğüm diğer yaklaşım, bu uzun metinler için gettext'i tamamen yok saymak ve bu blokları her yerel ayar için harici alt şablonlarda ayırmak ve sadece geçerli yerel ayar için olanı dahil etmektir. Dezavantajı, gettext .po dosyaları ve tamamen farklı bir konumda bulunan ayrı şablonlar arasındaki çeviri çabasını ayırmam.
Bu uygulama gelecekte diğer uygulamalar için bir başlangıç noktası olarak kullanılacağından, uzun vadede en iyi yaklaşımı bulmaya çalışıyorum. Bu senaryolarda en iyi uygulamalar için tavsiyeye ihtiyacım var. Benzer vakaları nasıl uyguladınız? Ne işe yaradı ve ne kötü bir fikir ortaya çıktı?