如何在i18n Thymeleaf / Spring消息的一部分中定义链接?

时间:2016-12-23 17:22:50

标签: spring hyperlink internationalization thymeleaf

使用Spring / Thymeleaf i18n,我想创建一个像“点击这里”这样的HTML段落消息,其中只有“here”这个词的链接。这样做的最佳方式是什么?

我尝试的方式看起来不太好,也导致了类似的休息:

在messages.properties文件中:

error.generic.click=Click
error.generic.here=here

在HTML文件中:

        <p th:text="#{error.generic.click}"></p><p><a th:text="#{error.generic.here}" th:href="@{/contact}"></a></p>

1 个答案:

答案 0 :(得分:3)

<强>答案

你的方式对我来说似乎没问题。如果您只想解决换行问题,请继续使用以下内容:

<p>
    <span th:text="#{error.generic.click}"></span>
    <a th:text="#{error.generic.here}" th:href="@{/contact}"></a>
</p>

span将使&#34;点击&#34;和&#34;在这里&#34;保持同一条线。但是,我只是想找一个链接说“&#34;点击这里&#34;而不只是&#34;在这里&#34;。

例如在德语中你可以说&#34; Hier klicken&#34;。 &#34;海尔&#34;意味着&#34;在这里&#34;和&#34; klicken&#34;意味着&#34;点击&#34;。问题是单词的含义发生了变化但位置没有变化。你最终会得到一个链接说&#34; klicken&#34;而不是&#34; Hier&#34;。

未推荐

还有另一种方法,但它有一些缺点。你可以使用:

<p th:utext="#{error.generic}"></p>

使用以下messages.properties:

error.generic=Click <a href="/contact">here</a>

这个的缺点是你不能再使用th:href。我不会这样推荐。但是,如果不使用th:*和普通的html标记,这可能会有所帮助。所以我想提一下。