web-dev-qa-db-fra.com

Comment afficher les messages de localisation avec des paramètres dans Spring 3 / Thymeleaf

J'utilise Spring 3 et Thymeleaf pour créer des pages Web et je ne sais pas comment afficher des messages comme celui-ci:

welcome.message = Bonjour {0}, bienvenue!

puis remplacez {0} par le nom d'utilisateur à l'intérieur des balises thymeleaf:

<h1 th:text="#{welcome.message}">Welcome Placeholder</h1>

Je ne suis même pas sûr que {0} soit la bonne syntaxe pour le message groupé.

43
Hoffmann

Vous pouvez utiliser

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

some.attribute serait la valeur à utiliser lors du remplacement de {0}.

Vous devriez pouvoir séparer les valeurs par des virgules entre les () pour ajouter d'autres valeurs à utiliser.

73

Vous pouvez même utiliser une clé de message calculée comme paramètre:

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

Ci-dessus, le paramètre de [msg3] est une clé de message [# {key}] où la clé est elle-même calculée [$ {param4}]. L'avantage est que vous pouvez insérer des fragments calculés internationalisés dans un message internationalisé.

22
Serge Tahé

Si vous devez passer un tableau de paramètres dont vous ne connaissez pas la taille, vous pouvez utiliser:

<p th:text="${#messages.msgWithParams(messageKey, messageParams)}"></p>
0
Brett Y