Web アプリの多言語サポートを開発しています。gettextライブラリでDjango のヘルパーを使用しています。重要な HTML マークアップを含む文をどのように処理するかという問題を除いて、すべてが驚くほど簡単でした。簡単な例を次に示します。
Please <a href="/login/">log in</a> to continue.
私が考えることができるアプローチは次のとおりです。
文全体が含まれるようにリンクを変更します。この場合、変更が良いアイデアであるかどうかに関係なく、このソリューションの問題は、理想的には 2 つが独立している場合に、UI が i18n のニーズに依存するようになることです。
上記の文字列全体を翻訳用にマークします (書式設定を含む)。翻訳文字列には、HTML も直接含まれます。これに関する問題は、HTML フォーマットを変更するには、すべての翻訳を変更する必要があることです。
複数の翻訳を密結合し、文字列補間を使用してそれらを結合します。たとえば、"Please %s to continue" と "log in" というフレーズは、翻訳用に別々にマークしてから組み合わせることができます。「ログイン」はローカライズされ、HREF でラップされ、翻訳されたフレーズに挿入されます。これにより、リンク先を示すために %s が翻訳されたままになります。このアプローチはコードを複雑にし、翻訳文字列の独立性を壊します。
他のオプションはありますか?他の人はこの問題をどのように解決しましたか?