Sto sviluppando un'applicazione web PHP multilingue, e ho dei testi lunghi (-ish) che devo tradurre con gettext. Si tratta di modelli di e-mail (in genere brevi, ma ancora diverse linee) e parti di modelli di visualizzazione (blocchi descrittivi più lunghi di testo). Questi testi includevano alcuni semplici HTML (cose come grassetto / corsivo per enfasi, probabilmente un link qua o là). I modelli sono script PHP il cui output è catturato.
Il problema è che gettext sembra molto maldestro per la gestione di testi più lunghi. I testi più lunghi generalmente hanno più cambiamenti nel tempo rispetto ai testi brevi - Posso cambiare il msgid e assicurarmi di aggiornarlo in tutte le traduzioni (potrebbe essere molto lavoro e molto soggetto ad errori quando il msgid è lungo), oppure posso mantenere msgid invariato e modifica solo le traduzioni (che lascerebbero fuorvianti testi obsoleti nei template). Inoltre, ho visto il consiglio di non includere l'HTML nelle stringhe gettext, ma evitarlo spezzerebbe un singolo testo naturale in molti blocchi, che sarà un incubo ancora più grande da tradurre e riassemblare, e ho anche visto un consiglio contro divisione non necessaria delle stringhe gettext in msgids separati.
L'altro approccio che vedo è di ignorare gettext del tutto per questi testi più lunghi, e di separare quei blocchi in sottotasti esterni per ogni locale, e solo includere quello per le impostazioni locali correnti. Lo svantaggio è che sto separando lo sforzo di traduzione tra i file gettext .po e i modelli separati situati in una posizione completamente diversa.
Dato che questa applicazione sarà utilizzata come punto di partenza per altre applicazioni in futuro, sto cercando di trovare il miglior approccio a lungo termine. Ho bisogno di un consiglio per le migliori pratiche in tali scenari. Come hai implementato casi simili? Che risultato ha funzionato e che cosa è risultata una cattiva idea?