0

MessageFormatterクラスを使用して、翻訳された文字列をフォーマットし、エンド ユーザーに表示しています。

問題は、HTML マークアップを最終結果に挿入する必要があることです。たとえば、文字列は だけかもしれませんPeter liked a photoが、最終結果にマークアップを含める必要があります。

<a href="blah.com">Peter</a> liked <a href="blah2.com">a photo</a>

多くの調査を行った後、特にこれらの質問は

私はこのアプローチを使用することにしました:

{1}{0}{2} liked {3}a photo{4}

どこ:

{0} = Peter
{1} = <a href="blah.com">
{2} = </a>
{3} = <a href="blah2.com">
{4} = </a>

これは、少し面倒であることに加えて、かなりうまく機能しています。ただし、マークアップをリソース バンドル文字列に含めたくない主な理由は、HTML タグなしで文字列を返したい場合があるためです。

問題は、1 つのパラメーター (Peter) を に渡すだけでMessageFormatter、パラメーターが不足していると不平を言うことです。

私ができる回避策の1つは、これを渡すことです({1}to{5}は空の文字列になります):

{0} = Peter
{1} = 
{2} = 
{3} = 
{4} = 

ただし、これは非常に面倒で、あまり良い方法ではありません。

とにかく、メッセージ形式の文字列でパラメーターをオプションとしてマークすることはできますか (基本的に、パラメーターの値が渡されない場合はパラメーターを無視するだけです)。

4

1 に答える 1