2017-11-28 21 views
0

私は異なる言語で生成する必要があるhtmlコードを持っています。 urlは、ユーザーの入力であると仮定すると国際化とThymeleafでこの単純な例を処理する方法をThymeleaf国際化(i18n)とhtmlタグ

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

私が試してみてください。私はutext

<span th:utext="#{messages.click_here(${url})}"></span> 
を使用することができます

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

が、その後、私のコードはHTML

として解釈されません。thymeleafで

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

、その後、

今では私のアプリケーションはコードインジェクションに晒されています。誰かが${url}によって悪意のあるパラメータを渡し、タグを閉じてjsを生成する可能性があります。 utextは何でもできます。

これに最適な解決策は何ですか?

答えて

0

多分Click <a href="https://here">here</a>を2つのメッセージ文字列に分割する方が良いでしょうか?

message.click=Click 
message.here=here 

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

この簡単な例では、しかし、文章内の単語の順序が重要で(異なる言語ファミリ)、翻訳が「ここをクリック」する場合があります。 –