0

C#.net と VS2010 で開発されたサイトがあります。ローカライズされており、全体的にうまく機能します。ただし、一部のローカライズ文字列は見栄えがよくありません。

たとえば、ログインページの上部にメッセージがあります

現在、次のように表示されます:
セッションの有効期限が切れました。
続行するにはログインしてください。

次のように表示してほしい:
セッションの有効期限が切れました。
続行するにはログインしてください。

言語ごとに幅が異なる可能性があるため、含まれている div のサイズを変更することはできません。

ローカリゼーション ファイルにレイアウト機能を追加する方法を探しています。(表面上) 最も単純な方法は、文字列に改行文字を入れることです。ただし、\n、\r\n、および<br/>すべてが文字列に表示されるのは、文字列が " で囲まれてレンダリングされるためです。

うまくいく別のアプローチはありますか?これは悪い考えですか?多くの言語間での長さの違いを補うには、他にどのようにすればよいでしょうか?

4

1 に答える 1

1

この場合の最善の方法は、文字列 (英語と翻訳の両方) で HTML 書式を使用し、必要に応じて翻訳を調整することです。<br />文字列に含めることができず、意図したとおりにレンダリングできない理由はありません。WebForms を使用しているか、ASP.NET MVC を使用しているかはわかりませんが、MVC の場合、たとえば次の代わりに Html.Raw ヘルパーを使用して、デフォルトの動作 (文字列の自動 HTML エンコード) を回避できます。

<div class='whatever'>@Resources.MyString</div>

これを行う:

<div class='whatever'>@Html.Raw(Resources.MyString)</div>
于 2012-05-25T08:39:44.527 に答える