Retorno de carro / alimentação de linha no arquivo Net Resource (App_GlobalResources)
-
06-09-2019 - |
Pergunta
Estou mantendo vários textos em um arquivo App_GlobalResources.resx
.
Os textos têm de ser multi-line e eu preciso tê-los contêm alimentações de linha. No entanto, quando eu ler o conteúdo, todos os feeds de linha são ido (\r\n
é impresso, não como caracter de controle CRLF 10 13
).
Eu sei que eu poderia contornar isso \r\n
substituindo re-(ou qualquer outra coisa para essa matéria) de volta para CRLF quando li o conteúdo, mas gostaria de saber por que esses resx claramente orientada de texto ignorar caracteres de controle - e CRLF é uma espécie de importante - e se alguém sabe se há uma configuração ou algo que permitiria que isso funcione naturalmente
Solução
Eu costumava VB.NET Express Edition para testar isto.
No editor de recursos (onde você pode especificar o nome do conteúdo de recursos e string) colocar o conteúdo string separada por Mudança + Enter .
Vamos dizer que você deseja digitar
hello
world
Digite "Olá" seguido de Mudança + Enter e "mundo".
Se você olhar para o arquivo Resources.resx (que é um arquivo xml), você pode ver que ele cria um nó com o xml:space="preserve"
atributo.
opção 2
Além disso, você pode editar o Resources.resx manualmente e modificar o conteúdo de estar sob a seção CDATA.
Suponha que você tenha a string com o nome "exemplo". Procure-o em Resources.resx e alterar o conteúdo para ter seção CDATA dentro dela como contra ter um valor simples.
por exemplo.
<data name="example">
<![CDATA[
hello
world
1
2 3
4
]]> </data>
Outras dicas
Use Mudança + Enter para inserir uma nova linha.
Ao usar o designer de interface resx
-
Se você está realmente a escrever o texto para o arquivo resx então você usaria
Mudança + Enter
como observado em outras respostas.
-
Se você estiver colando o texto no resx -. Visual Studio irá colar o texto no mesmo formato que já é (incluindo quebras de linha / multilinha)
Ao abrir o arquivo resx em formato XML
(localize o arquivo resx usando localizar e substituir .. quando você clica no arquivo do 'encontrar resultados' painel, VS irá abrir o arquivo resx em XML)
Aqui você pode adicionar o texto como você gosta (em tags de valor) e formatação será preservada.
Bem, o que funcionou na minha situação estava usando uma tag <br>
assim:
A text with a line break <br> and this goes in the second line.
Há um post com mais informações aqui: Colocar uma quebra de linha em um arquivo de recursos resx
Se acontecer de você estar usando Navalha mecanismo de exibição com ASP.NET MVC você precisa usar:
@Html.Raw(ResourceFile.ResourceString)
para que ele imprime a <br>
como HTML.
É possível editar o arquivo *.resx
com um editor de texto para adicionar quebras de linha.
Você pode fazê-lo ainda dentro do Visual Studio:
- Botão direito do mouse no arquivo de recursos
- Clique para
Open with ...
- Selecionar
XML (Text) Editor with Encoding
- Clique
OK
- Clique
OK
novamente para a codificação de selecção (auto-detecção) - Procure o nome (chave) do seu texto (por exemplo, "my_text")
- Editar o interior texto da tag
<value>
. Para linebreaks apenas empurrarEnter
. Nota: Remova os espaços à esquerda após a quebra de linha. Caso contrário, eles são inseridos, também.
Testado com o Visual Studio 2017.
<data name="MY_TEXT" xml:space="preserve">
<value>Line 1
Line 2
Line 3</value>
</data>