Как отформатировать сообщение с именами аргументов вместо чисел?

У меня есть что-то вроде:

String text = "The user {0} has email address {1}."
// params = { "Robert", "myemailaddr@gmail.com" }
String msg = MessageFormat.format(text, params);

Это не очень хорошо для меня, потому что иногда мои переводчики не уверены, что входит в {0} и {1}, а также было бы неплохо иметь возможность перефразировать сообщения, не беспокоясь о порядке аргументов.

Я бы хотел заменить аргументы читаемыми именами вместо чисел. Примерно так:

String text = "The user {USERNAME} has email address {EMAILADDRESS}."
// Map map = new HashMap( ... [USERNAME="Robert", EMAILADDRESS="myemailaddr@gmail.com"]
String msg = MessageFormat.format(text, map);

Есть простой способ сделать это?

Спасибо! rob

53
задан Robert Hume 6 September 2017 в 19:20
поделиться