web-dev-qa-db-ja.com

Spring 3 / Thymeleafでパラメーター付きのローカライズメッセージを表示する方法

私はSpring 3とThymeleafを使用していくつかのWebページを作成していますが、このようなメッセージを表示する方法については失われています:

welcome.message =こんにちは{0}、ようこそ!

そして{0}をthymeleafタグ内のユーザー名に置き換えます:

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

{0}がバンドルメッセージの正しい構文であるかどうかさえわかりません。

43
Hoffmann

使用できます

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

ここで、some.attributeは、{0}を置き換えるときに使用する値です。

使用する値を追加するには、()の間の値をコンマで区切ることができます。

73

計算されたメッセージキーをパラメーターとして使用することもできます。

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

上記では、[msg3]のパラメーターはメッセージキー[#{key}]であり、キー自体は[$ {param4}]で計算されます。利点は、国際化された計算済みのフラグメントを国際化されたメッセージに挿入できることです。

22
Serge Tahé

配列のサイズがわからないパラメーターの配列を渡す必要がある場合は、次を使用できます。

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