我有一个Asp.Net MVC 3网站,该网站将被本地化。
我有几个包含我的文本的resx文件,我在视图中有一些
@ My.NameSpace.Through.My.LocalizationFile.Key
但我不能让它代表新的一线。
我试过了:
<br/>
:我在文字中看到<br/>
那么我应该怎么做才能换新线?
编辑:我知道我可以使用Html.Raw,但我不能要求译员在其翻译中加入HTML代码。
答案 0 :(得分:10)
说实话,我知道这不是世界上最好的东西,但它是万无一失的,这意味着你的翻译人员不必在翻译中加入任何代码:
根据已经给出的答案,为什么不使用Html.Raw
,但在此之前,在资源文件中使用Shift + Enter替换\r\n
会产生{ {1}}
例如,假设您在资源文件<br />
中有一个名为Welcome
的字符串,您可以这样做:
ApplicationMessage
这将为您提供所需。这是一个类似的问题:
答案 1 :(得分:2)
您可以为换行符添加<br />
,并使用@Html.Raw()
方法显示带换行符的字符串,而不是<br />
字符串。
答案 2 :(得分:1)
我认为您应该使用 Shift + Enter 和CSS white-space property的组合,而不是潜在地开放XSS漏洞,就像使用{ {1}}解决方案。
@Html.Raw()
我不知道具体案例,但可能会发现<span style="white-space: pre-line">@My.NameSpace.Through.My.LocalizationFile.Key</span>
更适合您的情况。 Read more about the different white-space properties here
答案 3 :(得分:0)
您应该使用<br />
并使用Html.Raw()
答案 4 :(得分:-1)
是的,多亏了mattytommo。
您可以使用
First line <br /> second line
在资源中,或
resource.Replace("\r\n", "<br />")
代码中的和资源编辑器中的Shift + Enter。
两者都可以,但你必须使用
@Html.Raw();