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

.
Foi útil?

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 empurrar Enter. 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.

Exemplo:

  <data name="MY_TEXT" xml:space="preserve">
    <value>Line 1
Line 2
Line 3</value>
  </data>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top