Эти маркеры фактически заменяются с помощью стандартных API-интерфейсов java.text.MessageFormat. Если вы отображаете сообщения, используя тег Grail g: message, он заполнит пробелы, если вы передадите подходящий атрибут args = "...":
<g:message code="mymessagecode" args="${['size', 'org.example.Something']}"/>
При определенных обстоятельствах (на страницах GSP и из контроллеров IIRC) вы не можете вызывать тег как функцию:
g.message(code:'mymessagecode',args: ['size', 'org.example.Something'])
Обратите внимание, что значение, предоставляемое в качестве кода сообщения, является только символьной строковой константой. Фактический перевод (текст сообщения с «пробелами» в нем) будет читаться платформой с использованием перезагружаемых пакетов ресурсов Spring.
Если все, что у вас есть на самом деле, это текст перевода, вы можете напрямую вызывать API форматирования сообщений. См. Например:
import java.text.MessageFormat
...
args = ["english"].toArray()
println(MessageFormat.format("Translation into {0}", args))
// Or - as the method is variadic:
println(MessageFormat.format("Translation into {0}", "english"))