Eu tenho uma pergunta usando o Spring i18n. Posso passar parâmetros para mensagens i18s de outros códigos de mensagens?
Por exemplo
YesKey=Yes
NoKey=No
Message1=This is {YesKey}
Message2=This is {NoKey}
Existe alguma alternativa para isso, se eu não posso implementar.
Respostas:
2 para resposta № 1Como eu sei, não é possível usar uma mensagem em outra mensagem simplesmente usando o nome. - Esta não é uma limitação da primavera, é uma limitação de java.text.MessageFormat
.
Mas o que você pode fazer é isto:
message.properties:
YesKey=Yes
NoKey=No
Message1=This is {0}
Message2=This is {0}
código java
MessageSource messageSource =...
String param = messageSource.getMessage("YesKey",
new Object[0], Locale.English);
String message = messageSource.getMessage("Message1",
new Object[]{param}, Locale.English);
ou em jsp (x):
<spring:message var="param" code="YesKey" />
<spring:message var="message" code="Message1" arguments="${param}" />