grails i18n换行

时间:2013-08-21 14:56:00

标签: grails internationalization

使用Grails internationalization messages.properties我正在尝试创建一个多行消息,但似乎找不到一种方法来创建一个不使用<br>元素的新行,我更喜欢将表示逻辑保留在消息之外。我尝试过使用“\ n”但是没有渲染。

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

以下是我希望能够做到的事情:

messages.properties

helptext=First Line\nSecond Line\nThird Line

page.gsp

<g.message code="helptext"/>

结果:

First Line
Second Line
Third Line

我发现的所有内容都说要使用<br>元素,或者在\ n上执行replaceAll,但我希望不必使用额外的处理来处理它。

3 个答案:

答案 0 :(得分:6)

我认为您必须直接在邮件中使用<br>

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

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

\可以破坏属性文件中的行,但在视图中呈现为单行。

答案 1 :(得分:3)

对我来说(Grails 2.0项目中的i18n消息属性)按照以下行进行:

property = Line1 \\ nLine2 \\ nLine3

HTML标签BR如果在HTML页面上显示也很好,但对我来说没有任何好处,因为在我的情况下,这个文本需要是一个文本字符串而不是HTML。

答案 2 :(得分:2)

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