私は Web プロジェクトに取り組んでおり、それは (できれば) いつの日か複数の言語で利用できるようになります (「できれば」と言うのは、今日は英語のサイトしか計画していませんが、私の会社の他の製品は多言語対応であり、それも必要なほど成功しています)。
ベスト プラクティス (ここでは Java、Spring MVC、および Velocity を使用しています) は、ユーザーに表示されるすべてのテキストを外部ファイルに配置し、UI ファイルで次のように名前で参照することであることを理解しています。
#in messages_en.properties:
welcome.header = Welcome to AppName!
#in the markup
<title>#springMessage("welcome.header")</title>
しかし、これまでプロジェクトでこのプロセスを実行する必要がなかったので、次のようなマークアップに重きを置いた UI セグメントがある場合、これに対処する最善の方法は何かに興味があります。
<p>We are excited to announce that Company1 has been acquired by
<a href="http://www.companydivisionx.com" class="boldLink">Division X</a>,
a fast-growing division of <a href="http://www.company2.com" class="boldLink">Company 2</a>, Inc.
(Nasdaq: <a href="http://finance.google.com/finance?q=blah" class="boldLink">BLAH</a>), based in...
私が考えることができる1つのオプションは、この「低レベル」のマークアップをメッセージのmessages.properties自体に保存することですが、これは考えられる最悪のオプションのようです。
私が考えることができる他のオプションは次のとおりです。
- 、 、など
acquisitionAnnounce1
、各非マークアップ内部フラグメントを messages.properties に格納します。しかし、これは非常に退屈に思えます。acquisitionAnnounce2
acquisitionAnnounce3
- このメッセージを 、 、 などの再利用可能なコンポーネントに分割し
Company1.name
ますCompany2.name
。Company2.ticker
これらの各コンポーネントは他の多くのメッセージで再利用される可能性があります。これはおそらく、この特定のメッセージの単語の 80% を占めるでしょう。
このようなマークアップを多用した国際化テキストを処理するためのベスト プラクティスはありますか? すべてのテキストを分割する苦痛に耐えなければなりませんか? あなたが個人的に扱ったプロジェクトの中で、最善の解決策は何ですか?