2012-04-11 22 views
7

Tôi có trang web Asp.Net MVC 3, sẽ được bản địa hóa.ASP.Net MVC: Các văn bản được bản địa hóa với dòng mới?

Tôi đã nhiều file resx trong đó có văn bản của tôi, và tôi đã trong quan điểm của tôi một số

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

Nhưng tôi có thể không làm cho nó đại diện cho dòng mới.

tôi đã cố gắng:

  • Shift + enter: Tôi đã có những dòng sản phẩm mới trong tập tin tài nguyên, nhưng không phải trong trình duyệt của tôi
  • \ r \ n: Tôi thấy thông báo \ r \ n trong trình duyệt của tôi
  • \ n: Cùng
  • <br/>: tôi thấy <br/> trong văn bản của tôi

Vì vậy, những gì tôi nên làm gì để có một dòng sản phẩm mới?

Chỉnh sửa: Tôi biết rằng tôi có thể sử dụng Html.Raw, nhưng tôi không thể yêu cầu người dịch đưa mã html vào bản dịch của họ.

Trả lời

10

Thành thật mà nói, tôi biết nó không phải là điều đẹp nhất trên thế giới, nhưng nó fool-proof và nó có nghĩa là dịch giả của bạn không cần phải đặt bất kỳ mã trong bản dịch của họ:

xây dựng trên những câu trả lời đã nhất định, tại sao bạn không chỉ cần sử dụng Html.Raw, nhưng trước khi làm như vậy, thay thế \r\n rằng việc sử dụng phím Shift + Enter kết quả tập tin tài nguyên trong, với một <br />

vì vậy, nói ví dụ bạn có chuỗi tên Welcome trong tài nguyên tệp ApplicationMessage, bạn có thể làm:

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

Điều đó sẽ cung cấp cho bạn những gì bạn cần. Đây là một câu hỏi tương tự:

HTMLencode HTMLdecode

+0

Hum, có lẽ tôi sẽ làm trợ giúp cho điều đó, phải không? – J4N

+0

Vâng ý tưởng tốt :) – mattytommo

+0

Nó có hoạt động không? :) – mattytommo

0

Bạn có lẽ nên sử dụng <br /> và đưa ra kết quả với Html.Raw()

2

Bạn có thể đặt các <br /> cho các ngắt dòng và sử dụng phương pháp @Html.Raw() để hiển thị các chuỗi với ngắt dòng thay vì <br /> chuỗi.

-1

Vâng, nhờ vào mattytommo.

Bạn có thể sử dụng

First line <br /> second line 

trong tài nguyên, hoặc

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

trong mã và Shift + Enter trong trình soạn thảo tài nguyên.

Cả hai hoạt động tốt, nhưng bạn phải sử dụng

@Html.Raw(); 
1

Tôi nghĩ rằng bạn nên sử dụng một sự kết hợp của phím Shift + NhậpCSS white-space property thay vì potentionally mở cửa để các lỗ hổng XSS, như bạn sẽ sử dụng giải pháp @Html.Raw().

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

Tôi không biết trường hợp cụ thể, nhưng có thể bạn thấy rằng pre-wrap phù hợp với trường hợp của bạn tốt hơn. Read more about the different white-space properties here

+0

Xin lỗi, nhưng vì câu hỏi đã được hơn 3 năm trước, tôi không thể kiểm tra giải pháp của bạn;) – J4N

+0

Vâng, tôi biết nó cũ (đoán bạn đã tìm thấy một giải pháp cho vấn đề của bạn) :) Chỉ cần stubled trên nó, và muốn thu hút người đọc trong tương lai;) – Squazz

Các vấn đề liên quan