Wagenrücklauf / Zeilenvorschub in .Net-Ressourcendatei (App_GlobalResources)


94

Ich behalte mehrere Texte in einer App_GlobalResources.resxDatei.

Die Texte müssen mehrzeilig sein und ich muss Zeilenvorschübe enthalten. Wenn ich jedoch den Inhalt lese, sind alle Zeilenvorschübe weg ( \r\nwird gedruckt, nicht als CRLF 10 13Steuerzeichen).

Ich weiß, dass ich dies \r\numgehen könnte, indem ich beim Lesen des Inhalts wieder CRLF ersetze (oder irgendetwas anderes), aber ich habe mich gefragt, warum diese eindeutig textbezogenen Resx-Dateien Steuerzeichen ignorieren - und CRLF ist irgendwie wichtig - und wenn jemand weiß, ob es eine Einstellung oder etwas gibt, das es ermöglicht, dass dies natürlich funktioniert.

Antworten:


159

Ich habe VB.NET Express Edition verwendet, um dies zu testen.

Fügen Sie im Ressourceneditor (in dem Sie den Namen der Ressource und den Zeichenfolgeninhalt angeben können) den Zeichenfolgeninhalt durch Shift+ getrennt ein Enter.

Nehmen wir an, Sie möchten eingeben

hello  
world

Geben Sie "Hallo" gefolgt von Shift+ Enterund "Welt" ein.

Wenn Sie sich die Datei Resources.Resx (eine XML-Datei) ansehen, sehen Sie, dass ein Knoten mit dem Attribut erstellt wird xml:space="preserve".

2. Option

Sie können die Datei Resources.resx auch manuell bearbeiten und den Inhalt so ändern, dass er sich im Abschnitt CDATA befindet.

Angenommen, Sie haben die Zeichenfolge "example". Suchen Sie in Resources.resx danach und ändern Sie den Inhalt so, dass der CDATA-Abschnitt darin enthalten ist, anstatt einen einfachen Wert zu haben.

z.B

<data name="example">
<![CDATA[
hello
world
1
2   3
4
]]>  </data>

3
Ich fand diese Antwort auf der Suche nach einer Möglichkeit, \tTabulatoren einzufügen . Ich musste tatsächlich in die Einstellungen von Visual Studio für Tabulatoren in XML-Dateien gehen und die Option "Tabulatoren als Leerzeichen" deaktivieren (wobei Tabulatorzeichen stattdessen durch eine Anzahl von Leerzeichen ersetzt werden), damit ich ein wörtliches Tabulatorzeichen in meine Zeichenfolge einfügen konnte.
Jon O

Fantastisch ... wusste nicht, dass es möglich ist! :)
Leniel Maccaferri

Besser spät als nie ... Nachdem ich angenommen hatte, dass \ n der richtige Weg war. Nur 50 Änderungen vorzunehmen!
Andez

Hat meinen Tag gerettet. Danke dir!!
xyzWty

35

Verwenden Sie Shift+ Enter, um eine neue Zeile einzufügen.


4
wer hätte das gedacht. versucht Strg + Enter, Alt + Enter. Konsistenz MS!
Illuminati

18

Bei Verwendung der Resx Designer-Oberfläche

  • Wenn Sie den Text tatsächlich in die resx-Datei eingeben, würden Sie verwenden

    Shift+Enter

    wie in anderen Antworten angegeben.

  • Wenn Sie Text in resx einfügen, fügt Visual Studio den Text im gleichen Format wie bereits ein (einschließlich Zeilenumbrüche / mehrzeilig).

Beim Öffnen der resx-Datei im XML-Format

(Suchen Sie die Resx-Datei mithilfe von Suchen und Ersetzen. Wenn Sie im Bereich "Ergebnisse suchen" auf die Datei klicken, öffnet VS die Resx-Datei in XML.)

Hier können Sie nach Belieben Text hinzufügen (in Wertetags) und die Formatierung bleibt erhalten.


17

Was in meiner Situation funktionierte, war die Verwendung eines <br>Tags wie dieses:

A text with a line break <br> and this goes in the second line.

Hier gibt es einen Beitrag mit weiteren Informationen: Einfügen eines Zeilenumbruchs in eine Resx-Ressourcendatei

Wenn Sie zufällig die Razor View Engine mit ASP.NET MVC verwenden, müssen Sie Folgendes verwenden:

@Html.Raw(ResourceFile.ResourceString)

so dass es das <br>als HTML druckt .


10
Dies funktioniert, wenn Ihre Ressourcenzeichenfolge zur Verwendung als HTML bestimmt ist. Wenn die Zeichenfolge jedoch nicht in HTML verwendet werden soll (z. B. als Zeichenfolge für einen Tooltip oder einen Fehlermeldungsdialog in einer Desktop-App), wird nur <br> in Ihre Zeichenfolge eingefügt.
Peter Meyer

0

Es ist möglich, die *.resxDatei mit einem Texteditor zu bearbeiten , um Zeilenumbrüche hinzuzufügen.

Sie können dies sogar in Visual Studio tun:

  • Klicken Sie mit der rechten Maustaste auf die Ressourcendatei
  • Klicke um Open with ...
  • Wählen XML (Text) Editor with Encoding
  • Klicken OK
  • Klicken Sie OKerneut, um die Codierungsauswahl zu treffen (automatische Erkennung).
  • Suchen Sie nach dem Namen (Schlüssel) Ihres Textes (zB "MY_TEXT")
  • Bearbeiten Sie den Text innerhalb des <value>Tags. Bei Zeilenumbrüchen einfach drücken Enter. Hinweis: Entfernen Sie die führenden Leerzeichen nach dem Zeilenumbruch. Ansonsten werden sie auch eingefügt.

Getestet mit Visual Studio 2017.

Beispiel:

  <data name="MY_TEXT" xml:space="preserve">
    <value>Line 1
Line 2
Line 3</value>
  </data>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.