How to show localization messages with parameters in Spring 3 / Thymeleaf

You can even use a calculated message key as a parameter:

<p th:text="#{messages.msg1(${param1})}"></p>
<p th:text="#{messages.msg2(${param2},${param3})}"></p>
<p th:text="#{messages.msg3(#{${param4}})}"></p>

Above, the parameter of [msg3] is a message key [#{key}] where key is itself calculated [${param4}]. The benefit is that you can insert internationalized calculated fragments in an internationalized message.


You can use

#{welcome.message(${some.attribute})}

where some.attribute would be the value to use when replacing {0}.

You should be able to comma separate the values between the () to add more values to be used.


If you need to pass an array of parameters where you don't know the size of the array then you can use:

<p th:text="${#messages.msgWithParams(messageKey, messageParams)}"></p>
<!-- or -->
<p th:text="${#messages.msgOrNullWithParams(messageKey, messageParams)}"></p>

https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#messages-1