Sto sviluppando un'applicazione web PHP multilingue e ho testi lunghi (-ish) che devo tradurre con gettext. Questi sono modelli di e-mail (in genere brevi, ma ancora diverse righe) e modelli di parti di vista (blocchi di testo più lunghi e descrittivi). Questi testi includerebbero alcuni semplici HTML (cose come grassetto / corsivo per enfasi, probabilmente un link qui o là). I modelli sono script PHP il cui output viene acquisito.
Il problema è che gettext sembra molto goffo per gestire testi più lunghi. I testi più lunghi generalmente hanno più modifiche nel tempo rispetto ai brevi: posso cambiare msgid e assicurarmi di aggiornarlo in tutte le traduzioni (potrebbe essere un sacco di lavoro e molto soggetto a errori quando il msgid è lungo), oppure posso continuare msgstr è rimasto invariato e modifica solo le traduzioni (che lascerebbero testi fuorvianti fuorvianti nei template). Inoltre, ho visto dei consigli contro l'inclusione dell'HTML nelle stringhe gettext, ma evitarlo avrebbe spezzato un singolo pezzo di testo naturale in molti blocchi, che sarebbe un incubo ancora più grande da tradurre e riassemblare, e ho anche visto dei consigli contro divisione non necessaria di stringhe gettext in msgid separati.
L'altro approccio che vedo è quello di ignorare del tutto il gettext per questi testi più lunghi, e di separare quei blocchi in subtemplate esterne per ogni locale e includere solo quello per la locale corrente. Lo svantaggio è che sto separando lo sforzo di traduzione tra file .po gettext e modelli separati situati in una posizione completamente diversa.
Poiché questa applicazione verrà utilizzata come punto di partenza per altre applicazioni in futuro, sto cercando di trovare l'approccio migliore a lungo termine. Ho bisogno di un consiglio per le migliori pratiche in tali scenari. Come hai implementato casi simili? Cosa si è rivelato funzionare e cosa si è rivelata una cattiva idea?