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

Nel*_*ves 3 spring hyperlink internationalization thymeleaf

使用 Spring / Thymeleaf i18n,我想创建一个 HTML 段落消息,如“单击此处”,其中只有“此处”一词的链接。做这个的最好方式是什么?

我尝试的方式看起来不太好,也会导致类似的中断:

在messages.properties 文件中:

error.generic.click=Click
error.generic.here=here
Run Code Online (Sandbox Code Playgroud)

在 HTML 文件中:

        <p th:text="#{error.generic.click}"></p><p><a th:text="#{error.generic.here}" th:href="@{/contact}"></a></p>
Run Code Online (Sandbox Code Playgroud)

Tom*_*idt 6

回答

你的方式在我看来没问题。如果您只想解决换行问题,请继续执行以下操作:

<p>
    <span th:text="#{error.generic.click}"></span>
    <a th:text="#{error.generic.here}" th:href="@{/contact}"></a>
</p>
Run Code Online (Sandbox Code Playgroud)

span将使“单击”与“此处”保持在同一行上。然而,我只是去寻找一个链接,上面写着“点击这里”而不是“这里”。

例如,在德语中,您可以说“Hier klicken”。“Hier”表示“这里”,“klicken”表示“点击”。问题是单词的含义改变了,但位置没有。你最终会得到一个链接,上面写着“klicken”而不是“Hier”。

不推荐

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

<p th:utext="#{error.generic}"></p>
Run Code Online (Sandbox Code Playgroud)

具有以下messages.properties:

error.generic=Click <a href="/contact">here</a>
Run Code Online (Sandbox Code Playgroud)

这个的缺点是你不能再使用 th:href 了。我不会推荐这种方式。但是,这在不使用th:*和仅使用纯 html 标签时会很有帮助。所以我想提一下。