2012-04-11 20 views
7

Mam stronę Asp.Net MVC 3, która będzie zlokalizowana.ASP.Net MVC: Zlokalizowane teksty z nową linią?

Mam kilka plików RESX który zawiera moje teksty, a ja w moich poglądów niektórych

@ My.NameSpace.Through.My.LocalizationFile.Key

ale mogę sprawiają, że reprezentuje nową linię.

Próbowałem:

  • Shift + Enter: Mam nową linię w pliku zasobów, ale nie w mojej przeglądarce
  • \ r \ n: widzę \ r \ nw moja przeglądarka
  • \ n: Same
  • <br/>: widzę <br/> w moim tekście

Więc co należy zrobić, aby mieć nową linię?

Edit: Wiem, że mogę używać Html.Raw, ale po prostu nie mogę poprosić o tłumacza, aby umieścić kod HTML w ich tłumaczeniu.

Odpowiedz

10

Szczerze mówiąc, wiem, że to nie jest najmilsza rzecz na świecie, ale jest idiotoodporny i to znaczy, że tłumacze nie muszą umieścić dowolny kod w swoich tłumaczeniach:

opierając się na odpowiedziach już biorąc pod uwagę, dlaczego nie można po prostu użyć Html.Raw, ale przed tym, zastępując \r\n że za pomocą klawiszy Shift + Enter w wynikach w pliku zasobów, z <br />

tak mówią na przykład miałeś ciąg nazwie Welcome w plik zasobów ApplicationMessage, możesz zrobić:

@Html.Raw(ApplicationMessage.Welcome.Replace("\r\n", "<br />") 

To da ci to, czego potrzebujesz. Oto podobne pytanie:

HTMLencode HTMLdecode

+0

Hum, może zrobię dla tego pomocnika, nie? – J4N

+0

Tak, dobry pomysł :) – mattytommo

+0

Czy to działa? :) – mattytommo

0

Powinieneś raczej użyć <br /> i renderowanie wyjście z Html.Raw()

2

można umieścić <br /> dla podziały wiersza i użyć metody @Html.Raw() pokazać ciąg z przerwą linii zamiast napisu <br />.

-1

Tak, dzięki mattytommo.

Można użyć

First line <br /> second line 

w zasobie lub

resource.Replace("\r\n", "<br />") 

w kodzie i Shift + Enter w edytorze zasobów.

Zarówno działa dobrze, ale trzeba użyć

@Html.Raw(); 
1

myślę, że należy użyć kombinacji z SHIFT + Wprowadź i CSS white-space property zamiast otwierania potentionally się do luki XSS, tak jak z wykorzystaniem rozwiązania @Html.Raw().

<span style="white-space: pre-line">@My.NameSpace.Through.My.LocalizationFile.Key</span> 

nie wiem konkretnego przypadku, ale może być tak, że może się okazać, że pre-wrap garniturach sprawy lepiej. Read more about the different white-space properties here

+0

Przepraszam, ale ponieważ pytanie było ponad 3 lata temu, nie jestem w stanie przetestować twojego rozwiązania;) – J4N

+0

Tak, wiem, że to jest stare (zgadłeś, że znalazłeś rozwiązanie dla twojego problemu) :) Właśnie przeszedłem nad nim, i chciałem się zalogować dla przyszłych czytelników;) – Squazz