2012-04-11 15 views
7

私は、ローカライズされるAsp.Net MVC 3ウェブサイトを持っています。ASP.Net MVC:ローカライズされたテキストに改行が含まれていますか?

私は私の文章が含まれているいくつかのRESXファイルをした、と私はいくつかの

My.NameSpace.Through.My.LocalizationFile.Key @私の見解で

ましたが、私がすることができます新しい行を表すようにしないでください。

は、私が試した:

  • Shiftキー+は、次のコマンドを入力します。私は、リソースファイルに新しい行を持ってではなく、私のブラウザで
  • \ rを\ nはしました:なるほど、\ rを\ nは私のブラウザ
  • \ nは:同じ
  • <br/>:私は私のテキストに<br/>を参照してください

だから私は、新しい行を持って何をすべき?

編集:私はHtml.Rawを使うことができると知っていますが、翻訳者に翻訳にHTMLコードを入力するよう依頼することはできません。

答えて

10

正直に言うと、私はそれが世界で最も素晴らしいことではない知っているが、それはフールプルーフだと、それはあなたの翻訳者がその翻訳で任意のコードを配置する必要がないことを意味し:

ビルすでに答えたとき<br />

でだから、例えばあなたがWelcomeという名前の文字列を持っていたと言う、で与えられ、なぜあなただ​​けHtml.Rawを使用しませんが、その前に、\r\nを交換すると+ Shiftキーを使用すると、リソースファイルの結果に入力していることリソースファイルApplicationMessageを使用して、次の操作を実行できます。

@Html.Raw(ApplicationMessage.Welcome.Replace("\r\n", "<br />") 

それはあなたに必要なものを与えるでしょう。ここでは同様の質問です:

HTMLencode HTMLdecode

+0

ハム、多分私はそれのための助けをするでしょうか? – J4N

+0

ええ良い考え:) – mattytommo

+0

それは動作しましたか? :) – mattytommo

0

あなたは、おそらくあなたは改行のため<br />を入れて、代わりに<br />文字列の改行を含む文字列を表示するように@Html.Raw()メソッドを使用することができますHtml.Raw()

2

<br />を使用して出力をレンダリングする必要があります。

-1

うん、おかげでmattytommoします。

あなたは、リソースで

First line <br /> second line 

、またはコードで

resource.Replace("\r\n", "<br />") 

を使用して、リソースエディタで入力します+ Shiftキーことができます。

正常に動作しますが、あなたは

@Html.Raw(); 
1

を使用する必要があり、私はあなたと同じように、代わりにXSSの脆弱性へのpotentionally開口部までのとCSS white-space propertyを入力しShiftキー + の組み合わせを使用すべきだと思う両方@Html.Raw()ソリューションを使用してください。

<span style="white-space: pre-line">@My.NameSpace.Through.My.LocalizationFile.Key</span> 

私は特定のケースを知らないが、それはあなたがpre-wrapスーツあなたのケースが良いことを見つけるかもしれないことが考えられます。 Read more about the different white-space properties here

+0

申し訳ありませんが、3年以上前の質問だったので、あなたの解決策をテストすることができません;) – J4N

+0

ええ、私はそれが古いことを知っています(あなたの問題の解決策を見つけたと推測しました):)ただ、将来の読者のためにチップしたいと思った;) – Squazz

関連する問題