Можно ли включить значения свойств i18n в другие интернационализированные сообщения в графе?grails i18n перекрестная ссылка?
У меня есть класс домена, содержащий 2 свойства, «minDelay» и «maxDelay», и я хочу написать интернационализированное сообщение, ссылающееся на метки на оба.
Я написал пользовательский валидатор (maxDelay должно быть больше или равно minDelay):
maxDelay(validator:{
value, reference ->
if (value < reference.minDelay) {
return ['custom.error', it]
} else {
return true;
}
})
, когда это не удается, я печать свойство stub.maxDelay.custom.error
.
В моих messages.properties есть свойства:
stub.maxDelay.custom.error=Property [{0}] must be bigger than value of minDelay
stub.minDelay.label=Min. delay (ms)
stub.maxDelay.label=Max. delay (ms)
Как я могу использовать значение stub.minDelay.label
имущества вместо статического текста? сообщения об ошибке следует читать как:
"Property [Max. delay (ms)] must be bigger than value of [Min. delay (ms)]"
Я пытался ссылаться на него как {stub.minDelay.label}
или ${stub.minDelay.label}
, но все, что я получаю ошибка синтаксического анализа от Грааль.
Возможно, я подхожу к этому не так, можно ли вводить метку с помощью числового параметра в валидаторе? Как, например, если сообщение об ошибке было:
stub.maxDelay.custom.error=Property [{0}] must be bigger than value of [{1}]
Не повезло, я попробовал ваше предложение, и оно отобразит значения свойств объекта, а не имена ярлыков. Например, 'Свойство [10] должно быть больше значения [5000]' –
oh, вам просто нужно, чтобы оно было 'Property [Max. delay (ms)] должно быть больше значения [Мин. delay (ms)] "', без значений? Так почему бы вам просто не написать его как есть? –
Я пытаюсь отделить метку свойства minDelay от любых других сообщений, ссылающихся на нее. Это также понадобится для других ситуаций где сообщение i18n должно включать в себя другие сообщения. –