Spring\'s ResourceBundleMessageSource uses MessageFormat for replacing placeholders ({0}) inside messages.
MessageFormat
ResourceBundleMessageSource provides a flag called alwaysUseMessageFormat that can be used if MessageFormat should be applied to all messages.
Configure one time for all your resource boundle with:
...
and your translator have to be aware of a single rule in writing and maintaining resource bundle:
'')See also Why Spring MessageSource arguments are not filled correctly in some locales.