Je garde plusieurs textes dans un fichier App_GlobalResources.resx
.
Les textes doivent être multilignes et je dois leur faire contenir des sauts de ligne. Cependant, lorsque je lis le contenu, tous les sauts de ligne ont disparu (\r\n
est imprimé et non sous le caractère de contrôle CRLF 10 13
).
Je sais que je pourrais contourner ce problème en remplaçant \r\n
(ou toute autre chose) par CRLF lorsque je lisais le contenu, mais je me demandais pourquoi ces fichiers resx clairement ciblés par le texte ignorent les caractères de contrôle - et CRLF est un peu important - et si quelqu'un sait s'il existe un paramètre ou quelque chose qui permettrait à cela de fonctionner naturellement.
J'ai utilisé VB.NET Express Edition pour tester cela.
Dans l'éditeur de ressources (où vous pouvez spécifier le nom de la ressource et le contenu de la chaîne), placez le contenu de la chaîne séparé par Shift+Enter.
Disons que vous voulez taper
hello
world
Tapez "bonjour" suivi de Shift+Enter et "monde".
Si vous examinez le fichier Resources.Resx (qui est un fichier xml), vous pouvez voir qu'il crée un nœud avec l'attribut xml:space="preserve"
.
2ème option
En outre, vous pouvez modifier le fichier Resources.resx manuellement et modifier le contenu afin qu'il soit dans la section CDATA.
Supposons que vous ayez la chaîne nommée "exemple". Recherchez-le dans Resources.resx et modifiez le contenu pour qu'il contienne une section CDATA, par opposition à une valeur simple.
par exemple.
<data name="example">
<![CDATA[
hello
world
1
2 3
4
]]> </data>
Utilisation Shift+Enter insérer une nouvelle ligne.
Si vous tapez réellement le texte dans le fichier resx, vous utiliserez
Shift+Enter
comme indiqué dans d'autres réponses.
Si vous collez du texte dans le resx - Visual Studio le colle dans le même format qu’il est déjà (y compris les sauts de ligne et les multilignes).
(localisez le fichier resx à l'aide de find and replace .. lorsque vous cliquez sur le fichier dans le panneau "find results", VS ouvre le fichier resx en XML)
Ici, vous pouvez ajouter du texte à votre guise (dans les balises value) et la mise en forme sera préservée.
Eh bien, dans ma situation, l’utilisation d’une balise <br>
comme celle-ci a fonctionné:
A text with a line break <br> and this goes in the second line.
Il y a un article avec plus d'informations ici: Ajout d'un saut de ligne dans un fichier de ressources resx
Si vous utilisez le moteur de vue Razor avec ASP.NET MVC, vous devez utiliser:
@Html.Raw(ResourceFile.ResourceString)
afin qu'il imprime le <br>
au format HTML.
Il est possible de modifier le fichier *.resx
avec un éditeur de texte pour ajouter des sauts de ligne.
Vous pouvez le faire même dans Visual Studio:
Open with ...
XML (Text) Editor with Encoding
OK
OK
pour sélectionner l'encodage (détection automatique).<value>
. Pour les sauts de ligne, appuyez simplement sur Enter
. Remarque: Supprimez les espaces de début après le saut de ligne. Sinon, ils sont également insérés.Testé avec Visual Studio 2017.
Exemple:
<data name="MY_TEXT" xml:space="preserve">
<value>Line 1
Line 2
Line 3</value>
</data>