.Net Kaynak Dosyasında Satır İade / Satır Besleme (App_GlobalResources)


96

Bir App_GlobalResources.resxdosyada birkaç metin tutuyorum .

Metinler çok satırlı olmalı ve satır beslemeleri içermem gerekiyor. Bununla birlikte, içeriği okuduğumda, tüm satır beslemeleri gitti ( kontrol karakteri \r\nolarak değil, yazdırılıyor CRLF 10 13).

\r\nİçeriği okuduğumda (veya bu konuda başka herhangi bir şeyi) tekrar CRLF'ye değiştirerek bu sorunu çözebileceğimi biliyorum, ancak bu açıkça metin hedefli resx dosyalarının neden kontrol karakterlerini göz ardı ettiğini merak ettim - ve CRLF biraz önemli. - ve bunun doğal olarak çalışmasını sağlayacak bir ortam veya bir şey olup olmadığını bilen varsa.

Yanıtlar:


161

Bunu test etmek için VB.NET Express Edition kullandım.

Kaynak düzenleyicide (kaynağın adını ve dize içeriğini belirtebileceğiniz yer) dize içeriğini Shift+ ile ayırarak yerleştirin Enter.

Yazmak istediğinizi söyleyelim

hello  
world

"Merhaba" ve ardından Shift+ Enterve "dünya" yazın.

Resources.Resx dosyasına (bir xml dosyası olan) bakarsanız, özniteliğe sahip bir düğüm oluşturduğunu görebilirsiniz xml:space="preserve".

2. seçenek

Ayrıca Resources.resx'i manuel olarak düzenleyebilir ve içeriği CDATA bölümünde olacak şekilde değiştirebilirsiniz.

"Örnek" adlı dizeye sahip olduğunuzu varsayın. Kaynakları Resources.resx'te arayın ve basit bir değere sahip olmamak üzere CDATA bölümü içerecek şekilde içeriği değiştirin.

Örneğin

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

3
Bu yanıtı \tsekme eklemenin bir yolunu ararken buldum . Aslında xml dosyalarındaki sekmeler için görsel stüdyosunun ayarlarına girmem ve dizime gerçek bir sekme karakteri alabilmem için "boşluk olarak sekmeler" seçeneğini kapatmam gerekiyordu (burada sekme karakterlerini birkaç boşlukla değiştiriyor).
Jon O

Fantastik ... bunun mümkün olduğunu bilmiyordum! :)
Leniel Maccaferri

Geç olmak hiç olmamasından iyidir ... Doğru yolun \ n olduğunu varsaydıktan sonra. Sadece 50 değişiklik yapılacak!
Andez

Günümü kurtardım. Teşekkür ederim!!
xyzWty

35

Yeni bir satır eklemek için Shift+ kullanın Enter.


4
kim tahmin ederdi. ctrl + enter, alt + enter denedi. tutarlılık MS!
Illuminati

18

Benim durumumda işe yarayan şey şöyle bir <br>etiket kullanmaktı :

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

Burada daha fazla bilgi içeren bir gönderi var: Bir resx kaynak dosyasına satır sonu koymak

ASP.NET MVC ile Razor görünüm motorunu kullanıyorsanız şunları kullanmanız gerekir:

@Html.Raw(ResourceFile.ResourceString)

böylece <br>HTML olarak yazdırır .


10
Bu, kaynak dizeniz HTML olarak kullanılacaksa işe yarar. Ancak dize HTML olmayan bir şekilde kullanılacaksa (örneğin, bir masaüstü uygulamasında bir araç ipucu veya hata mesajı iletişim kutusu için dize olarak), dizenizde sadece <br> yazacaksınız.
Peter Meyer

Evet! Ancak bunu şu şekilde biçimlendirmeniz gerekebilir: <br/> Lütfen etiketi kapatmadan önce eğik çizgiye dikkat edin , böylece XML uyumlu olsun (çünkü tüm xml etiketlerinin bir kapanış etiketi olması gerekir).
Arno 2501

18

Resx tasarımcısı arayüzünü kullanırken

  • Aslında metni resx dosyasına yazıyorsanız, o zaman şunu kullanırsınız:

    Shift+Enter

    diğer cevaplarda belirtildiği gibi.

  • Resx'e metin yapıştırıyorsanız - Visual Studio, metni halihazırda olduğu gibi aynı biçimde yapıştırır (satır kesmeleri / çoklu satır dahil).

Resx dosyasını XML biçiminde açarken

(bul ve değiştir kullanarak resx dosyasını bulun .. 'sonuçları bul' panelinden dosyayı tıkladığınızda, VS resx dosyasını XML olarak açar)

Burada istediğiniz gibi metin ekleyebilirsiniz (değer etiketlerinde) ve biçimlendirme korunacaktır.


0

Satır sonu eklemek için *.resxdosyayı bir metin düzenleyiciyle düzenlemek mümkündür .

Bunu Visual Studio içinde bile yapabilirsiniz:

  • Kaynak dosyasına sağ tıklayın
  • Tıkla Open with ...
  • Seçiniz XML (Text) Editor with Encoding
  • Tıklayın OK
  • OKKodlama seçimi için tekrar tıklayın (otomatik algılama)
  • Metninizin adını (anahtar) arayın (ör. "MY_TEXT")
  • <value>Etiketin içindeki metni düzenleyin . Satır sonları için itin Enter. Not: Satır kırılmasından sonra baştaki boşlukları kaldırın. Aksi takdirde onlar da eklenir.

Visual Studio 2017 ile test edilmiştir.

Misal:

  <data name="MY_TEXT" xml:space="preserve">
    <value>Line 1
Line 2
Line 3</value>
  </data>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.