Я разрабатываю многоязычное веб-приложение PHP, и у меня есть длинные (-ish) тексты, которые мне нужно перевести с помощью gettext. Это шаблоны электронной почты (обычно короткие, но несколько строк) и части шаблонов представлений (более длинные описательные блоки текста). Эти тексты будут включать в себя некоторые простые HTML (например, жирный/курсивный для акцента, возможно, ссылка здесь или там). Шаблоны представляют собой PHP-скрипты, выходные данные которых записаны.
Проблема в том, что gettext кажется очень неуклюжим для обработки более длинных текстов. Более длинные тексты, как правило, будут иметь больше изменений с течением времени, чем короткие тексты - я могу либо сменить msgid, и обязательно обновить его во всех переводах (может быть много работы и очень подвержено ошибкам, когда долгое время существует), или я могу сохранить msgstr "Не изменяйте и изменяйте только переводы (которые оставляют в шаблонах устаревшие тексты). Кроме того, я видел совет против включения HTML в строки gettext, но, избегая этого, он разбил бы один естественный фрагмент текста на множество кусков, что станет еще большим кошмаром для перевода и сборки, и я также видел совет против ненужное разбиение строк gettext на отдельные msgid.
Другой подход, который я вижу, заключается в том, чтобы игнорировать gettext в целом для этих более длинных текстов и отделить эти блоки во внешних подтемах для каждого языкового стандарта и просто включить один из них для текущей локали. Недостатком является то, что я отделяю усилия перевода между файлами gettext.po и отдельными шаблонами, расположенными в совершенно другом месте.
Так как это приложение будет использоваться в качестве отправной точки для других приложений в будущем, я пытаюсь найти лучший подход в долгосрочной перспективе. Мне нужны рекомендации для лучших практик в таких сценариях. Как вы реализовали подобные случаи? Что оказалось работать и что получилось плохой идеей?