.Net リソース ファイル (App_GlobalResources) のキャリッジ リターン/ライン フィード
-
06-09-2019 - |
質問
いくつかのテキストを 1 つに保存しています App_GlobalResources.resx
ファイル。
テキストは複数行にする必要があり、改行を含める必要があります。しかし、内容を読んでみると改行が全て消えてしまっています(\r\n
としてではなく、印刷されます CRLF 10 13
制御文字)。
再交換することでこの問題を回避できることはわかっています \r\n
(あるいはその他のことについても)内容を読んだときに CRLF に戻りましたが、なぜこれらの明らかにテキストをターゲットにした resx ファイルが制御文字を無視するのか疑問に思いました - そして CRLF はある種重要です - そして誰かがそれを制御する設定か何かがあるかどうか知っていますかこれにより自然に機能するようになります。
解決
これをテストするには VB.NET Express Edition を使用しました。
リソース エディター (リソースの名前と文字列の内容を指定できます) で、文字列の内容を次のように区切って入力します。 シフト+入力.
と入力したいとします。
hello
world
「こんにちは」と入力してから シフト+入力 そして「世界」。
Resources.Resx ファイル (xml ファイル) を見ると、次の属性を持つノードが作成されていることがわかります。 xml:space="preserve"
.
2番目のオプション
また、Resources.resx を手動で編集し、CDATA セクションに含まれるコンテンツを変更することもできます。
「example」という名前の文字列があると仮定します。Resources.resx でそれを検索し、単純な値を持つのではなく、その中に CDATA セクションが含まれるようにコンテンツを変更します。
例えば
<data name="example">
<![CDATA[
hello
world
1
2 3
4
]]> </data>
他のヒント
を使用するには、シフト + 新しい行を挿入する入力します。
resx デザイナー インターフェイスを使用する場合
実際に resx ファイルにテキストを入力している場合は、次のようにします。
シフト+入力
他の回答に記載されているように。
resx にテキストを貼り付ける場合、Visual Studio はテキストを既に同じ形式 (改行/複数行を含む) で貼り付けます。
XML形式のresxファイルを開く場合
(検索と置換を使用して resx ファイルを見つけます。「検索結果」パネルからファイルをクリックすると、VS は XML で resx ファイルを開きます)
ここでは、必要に応じてテキストを (値タグ内に) 追加でき、書式設定は保持されます。
さて、私の状況でうまくいったのは、 <br>
このようなタグ:
A text with a line break <br> and this goes in the second line.
詳細については、次の投稿があります。 resxリソースファイルに改行を入れる
ASP.NET MVC で Razor ビュー エンジンを使用している場合は、以下を使用する必要があります。
@Html.Raw(ResourceFile.ResourceString)
を印刷するように <br>
HTMLとして。
編集することが可能です *.resx
ファイル テキストエディタ 改行を追加します。
Visual Studio 内でも実行できます。
- リソースファイルを右クリックします
- クリックして
Open with ...
- 選択する
XML (Text) Editor with Encoding
- クリック
OK
- クリック
OK
エンコーディングの選択 (自動検出) のために再度実行します。 - テキストの名前 (キー) を検索します (例:"MY_TEXT")
- 内のテキストを編集します。
<value>
鬼ごっこ。改行するには押すだけですEnter
. 。注記:改行後の先頭のスペースを削除します。それ以外の場合は、それらも挿入されます。
Visual Studio 2017 でテスト済み。
例:
<data name="MY_TEXT" xml:space="preserve">
<value>Line 1
Line 2
Line 3</value>
</data>