2017-11-28 5 views
0

다른 언어로 생성해야하는 html 코드가 있습니다. Thymeleaf 국제화 (i18n) 및 html 태그

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

방법 I18N 및 Thymeleaf url는 사용자 입력이라고 가정이 간단한 예를 처리하기 위해?

나는 시도 :

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

다음 thymeleaf의 :

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

하지만 내 코드는 HTML로 해석되지 않습니다

내가 사용할 수 있습니다 utext

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

하지만 이제는 내 애플리케이션이 코드 삽입에 노출된다. 누군가 ${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

이 간단한 예제의 경우 작동합니다. 그러나 문장 내의 단어 순서가 중요하고 다른 언어 계열 인 경우가있을 수 있으며 번역은 "여기를 클릭하십시오". –

관련 문제