2017-11-28 2 views
0

Ich habe HTML-Code, der in verschiedenen Sprachen generiert werden muss.Thymoleaf Internationalisierung (i18n) und HTML-Tags

Click <a href="https://here">here</a> 
Kliknij <a href="https://here">tutaj</a> 

Wie dieses einfache Beispiel zu handhaben mit i18n und Thymeleaf davon aus, dass url eine Benutzereingabe?

Ich versuche:

messages.click_here = Click <a href="{0}">here</a> 

und dann in thymeleaf:

<span th:text="#{messages.click_here(${url})}"></span> 

aber dann ist mein Code nicht als HTML interpretiert

so kann ich utext

<span th:utext="#{messages.click_here(${url})}"></span> 

Aber Jetzt ist meine Anwendung der Code-Injektion ausgesetzt. Jemand könnte böswillige Parameter über ${url} übergeben, das Tag schließen und js generieren. utext kann alles tun.

Was ist die beste Lösung dafür?

Antwort

0

Vielleicht wäre es besser geteilt Click <a href="https://here">here</a> in 2 Nachrichten-String?

message.click=Click 
message.here=here 

<sapn th:text="#{message.click}"/> <a th:href="@{/here}" th:text="#{message.here}"></a> 
+0

Für dieses einfache Beispiel funktioniert es. Es kann jedoch vorkommen, dass die Reihenfolge der Wörter im Satz wichtig ist (unterschiedliche Sprachfamilien) und die Übersetzung "hier klicken" ist. –

Verwandte Themen