101 votes

Retour chariot / saut de ligne dans un fichier de ressources .Net (App_GlobalResources)

Je vais garder plusieurs textes dans un App_GlobalResources .fichier resx.

Les textes doivent être multiligne et j'ai besoin d'avoir entre eux contiennent des retours à la ligne. Cependant, quand j'ai lu le contenu, tous les sauts de ligne ont disparu (\r\n est imprimé, non pas comme CRLF 10 13 caractère de contrôle).

Je sais que je pourrais contourner ce problème en re-remplacer les \r\n (ou quoi que ce soit d'autre d'ailleurs) de retour à CRLF quand j'ai lu le contenu, mais je me demandais pourquoi ces clairement texte ciblé fichiers resx ignorer les caractères de contrôle et CRLF est importante - et si quelqu'un sait si il y a un paramètre ou de quelque chose qui permettrait de le travail naturellement.

Des acclamations.

Alex

167voto

shahkalpesh Points 21553

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 de la chaîne de contenu) mettre la chaîne de contenu séparés par des Maj+Entrée.

Disons que vous voulez taper dans

hello  
world

Type "bonjour" suivi par Shift+Enter et "monde".

Si vous regardez les Ressources.Fichier 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

Vous pouvez également modifier les Ressources.resx manuellement et de modifier le contenu pour être en vertu de la section CDATA.

Supposons que vous disposez de la chaîne nommée "exemple". Rechercher dans les Ressources.resx et changer le contenu pour avoir CDATA section à l'intérieur comme contre le fait d'avoir une valeur simple.

par exemple

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

19voto

Danield Points 17720

Lors de l'utilisation de la resx concepteur de l'interface

  • Si vous êtes effectivement en train de taper le texte dans le fichier resx alors vous devez utiliser

    Maj+Entrée

    comme indiqué dans d'autres réponses.

  • Si vous collez du texte dans l'resx - Visual Studio va coller le texte dans le même format qu'il ne l'est déjà (y compris les retours à la ligne (/multiligne).

Lors de l'ouverture du fichier resx au format XML

(recherchez le fichier resx aide à trouver et à remplacer.. lorsque vous cliquez sur le fichier à partir de la 'trouver des résultats de la commission, contre la volonté d'ouvrir le fichier resx dans le XML)

Ici, vous pouvez ajouter le texte que vous le souhaitez (en valeur des balises) et de mise en forme sera préservé.

18voto

Leniel Macaferi Points 38324

Eh bien, ce qui a fonctionné dans mon cas a l'aide d'un <br> balise comme ceci:

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

Il y a un post avec plus d'infos ici: Mettre un saut de ligne dans une resx fichier de ressources

Si vous arrive d'être en utilisant le Rasoir moteur d'affichage avec ASP.NET MVC, vous devez utiliser:

@Html.Raw(ResourceFile.ResourceString)

de sorte qu'il imprime l' <br> comme HTML.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X