handle the {index} parameter like a native MessageFormat argument.

For example that allows to specified leading zero by using
{index,number,0000}
why is this using `replace` and not `replaceall`?