3

使用 Grails 国际化 messages.properties 我正在尝试创建多行消息,但似乎无法找到不使用<br>元素来创建新行的方法,并且我更愿意将表示逻辑保留在消息之外。我试过使用“\n”,但没有得到渲染。

我知道我可以使用多条消息“message.1=...”、“message.2=...”,但这似乎也不干净。

这是我想做的事情:

消息属性

helptext=First Line\nSecond Line\nThird Line

页面.gsp

<g.message code="helptext"/>

结果:

First Line
Second Line
Third Line

我发现的所有东西要么说要使用<br>元素,要么在 \n 上做一个 replaceAll,但我希望不必使用额外的处理来处理这个问题。

4

3 回答 3

7

我认为您必须<br>直接在消息中使用。

//messages.properties
helptext=First Line<br>Second Line<br>Third Line

//Gsp
<p><g:message code="helptext"/><p>

\能够在属性文件中换行,但在视图中呈现为单行。

于 2013-08-21T15:23:36.640 回答
3

对我来说(Grails 2.0 项目中的 i18n 消息属性)工作如下:

属性 = Line1\\nLine2\\nLine3

如果在 HTML 页面上显示 HTML 标签 BR 也可以正常工作,但对我没有任何好处,因为在我的情况下,此文本需要是文本字符串而不是 HTML。

于 2014-12-03T14:50:08.553 回答
2

您也可以编写一个自定义标签,将 \n 转换为 br 标签。它只需要调用 messageSource bean 并解析结果。因此,您的消息不必是特定于 HTML 的

于 2013-08-21T20:23:57.653 回答