【问题标题】:How to define a link in part of an i18n Thymeleaf / Spring message?如何在 i18n Thymeleaf / Spring 消息的一部分中定义链接?
【发布时间】:2016-12-23 17:22:50
【问题描述】:
使用 Spring / Thymeleaf i18n,我想创建一个 HTML 段落消息,例如“单击此处”,其中只有“此处”一词的链接。最好的方法是什么?
我尝试的方式看起来不太好,也导致了类似的中断:
在 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>
【问题讨论】:
标签:
spring
hyperlink
internationalization
thymeleaf
【解决方案1】:
回答
我觉得你的方式没问题。如果您只想解决换行问题,请继续以下问题:
<p>
<span th:text="#{error.generic.click}"></span>
<a th:text="#{error.generic.here}" th:href="@{/contact}"></a>
</p>
span 将使“点击”与“此处”保持在同一行。但是,我只想找到一个链接,上面写着“单击此处”,而不仅仅是“此处”。
例如,在德语中,您可以说“Hier klicken”。 “Hier”的意思是“这里”,“klicken”的意思是“点击”。问题是单词的含义发生了变化,但位置没有。你最终会得到一个链接说“klicken”而不是“Hier”。
不推荐
还有另一种方法,但它有一些缺点。你可以使用:
<p th:utext="#{error.generic}"></p>
带有以下messages.properties:
error.generic=Click <a href="/contact">here</a>
这个缺点是你不能使用 th:href 了。我不会推荐这种方式。但是,这在不使用 th:* 而仅使用普通 html 标记时会很有帮助。所以我想提一下。