Estou desenvolvendo um aplicativo Web PHP multilíngue e tenho textos longos (-ish) que preciso traduzir com gettext. Esses são modelos de email (geralmente curtos, mas ainda com várias linhas) e partes de modelos de exibição (blocos de texto descritivos mais longos). Esses textos incluiriam algum HTML simples (coisas como negrito / itálico para ênfase, provavelmente um link aqui ou ali). Os modelos são scripts PHP cuja saída é capturada.
O problema é que o gettext parece muito desajeitado para lidar com textos mais longos. Os textos mais longos geralmente apresentam mais alterações ao longo do tempo do que os textos curtos - eu posso alterar o msgid e atualizá-lo em todas as traduções (pode ser muito trabalhoso e muito propenso a erros quando o msgid for longo), ou posso continuar o msgid inalterado e modifica apenas as traduções (o que deixaria textos desatualizados enganosos nos modelos). Além disso, vi conselhos contra a inclusão de HTML em seqüências de caracteres gettext, mas evitá-lo dividiria um único pedaço de texto natural em vários pedaços, o que será um pesadelo ainda maior para traduzir e remontar, e também vi conselhos contra divisão desnecessária de seqüências de caracteres gettext em msgids separados.
A outra abordagem que eu vejo é ignorar completamente o gettext para esses textos mais longos, e separar esses blocos em sub-modelos externos para cada localidade e apenas incluir o da localidade atual. A desvantagem é que estou separando o esforço de tradução entre os arquivos gettext .po e os modelos separados localizados em um local completamente diferente.
Como esse aplicativo será usado como ponto de partida para outros aplicativos no futuro, estou tentando encontrar a melhor abordagem para o longo prazo. Preciso de alguns conselhos para as melhores práticas em tais cenários. Como você implementou casos semelhantes? O que acabou funcionando e o que acabou sendo uma péssima idéia?