多言語のPHP Webアプリケーションを開発していて、gettextで翻訳する必要がある長い(-っぽい)テキストがあります。これらは、電子メールテンプレート(通常は短いですが、それでも数行)とビューテンプレートの一部(テキストのより長い説明ブロック)です。これらのテキストには、いくつかの単純なHTMLが含まれます(強調のための太字/斜体など、おそらくここまたはそこへのリンク)。テンプレートは、出力がキャプチャされるPHPスクリプトです。
問題は、gettextが長いテキストを処理するのに非常に扱いにくいように見えることです。長いテキストは通常、短いテキストよりも時間の経過により多くの変化があります— msgidを変更して、すべての翻訳で更新することを確認できます(多くの作業が必要で、msgidが長い場合はエラーが発生しやすくなります)。 msgidは変更されず、翻訳のみが変更されます(テンプレートに古いテキストが紛らわしくなります)。また、私はgettext文字列にHTMLを含めることに対するアドバイスを見てきましたが、これを回避すると、単一の自然なテキストが多数のチャンクに分割され、翻訳と再構築の悪夢がさらに大きくなるでしょう。 gettext文字列を個別のmsgidに不要に分割する。
私が目にするもう1つのアプローチは、これらの長いテキストではgettextを完全に無視し、それらのブロックを各ロケールの外部サブテンプレートに分離し、現在のロケールのブロックを含めることです。欠点は、gettext .poファイルと完全に異なる場所にある個別のテンプレートとの間の変換作業を分離していることです。
このアプリケーションは将来的に他のアプリケーションの出発点として使用されるので、長期的には最善のアプローチを考え出そうとしています。このようなシナリオでのベストプラクティスについていくつかアドバイスが必要です。同様のケースをどのように実装しましたか?何がうまくいき、何が悪い考えになったのですか?