.Netリソースファイルのキャリッジリターン/ラインフィード(App_GlobalResources)


94

App_GlobalResources.resxファイルにいくつかのテキストを保存しています。

テキストは複数行である必要があり、改行を含める必要があります。しかし、内容を読むとすべての改行がなくなっています(制御文字\r\nとしてではなく印刷されCRLF 10 13ます)。

\r\n内容を読んだときにCRLFに(またはそのほかのことは何でも)再置換することでこの問題を回避できることはわかっていますが、これらの明確にテキストターゲットされたresxファイルが制御文字を無視する理由を疑問に思いました-CRLFは重要です-そして、誰かがこれを自然に機能させる設定や何かがあるかどうか知っているなら。

回答:


159

これをテストするためにVB.NET Express Editionを使用しました。

リソースエディター(リソースの名前と文字列コンテンツを指定できます)で、文字列コンテンツをShift+で区切って入力しEnterます。

入力したいとしましょう

hello  
world

「hello」と入力し、続けてShift+ Enterと「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>

3
\tタブを挿入する方法を探しているこの答えを見つけました。実際にXMLファイルのタブのVisual Studioの設定に移動し、「タブをスペースとして」オプションをオフにする必要がありました(タブ文字がいくつかのスペースに置き換えられます)。これにより、文字列にリテラルタブ文字を取得できます。
Jon O

素晴らしい...それが可能だとは知らなかった!:)
Leniel Maccaferri

決して遅くないよりはましです...私が\ nが正しい方法であると思った後。たった50の変更!
アンデス14

私の日を救った。ありがとうございました!!
xyzWty 2018年

35

Shift+ Enterを使用して新しい行を挿入します。


4
誰が推測したでしょう。Ctrl + Enter、Alt + Enterを試してみました。一貫性MS!
Illuminati

18

resxデザイナーインターフェイスを使用する場合

  • 実際にテキストをresxファイルに入力する場合は、

    Shift+Enter

    他の回答で述べたように。

  • resxにテキストを貼り付ける場合-Visual Studioは、テキストを現在と同じ形式(改行/複数行を含む)で貼り付けます。

XML形式のresxファイルを開くとき

(検索と置換を使用してresxファイルを検索します。「検索結果」パネルからファイルをクリックすると、VSはresxファイルをXMLで開きます)

ここでは、(値タグで)好きなようにテキストを追加でき、フォーマットは保持されます。


17

まあ、私の状況でうまくいったのは次の<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として印刷されます。


10
これは、リソース文字列がHTMLとして使用される予定の場合に機能します。ただし、文字列がHTML以外の方法で使用される場合(たとえば、デスクトップアプリのツールチップやエラーメッセージダイアログの文字列として)、文字列に<br>が含まれるだけです。
Peter Meyer、

0

テキストエディターで*.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>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.