0
是否有可能在grails中的其他國際化消息中包含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}
但我得到的是從Grails的解析錯誤。
也許我以錯誤的方式來解決這個問題,是否可以通過驗證器中的數字參數注入標籤?像例如,如果錯誤信息是:
stub.maxDelay.custom.error=Property [{0}] must be bigger than value of [{1}]
沒有運氣,我試過你的建議,它會呈現對象的屬性值,而不是標籤名稱。例如'Property [10]必須大於[5000]' –
的值,你只需要它是一個'Property [Max。延遲(毫秒)]必須大於[最小值]。延遲(毫秒)]「',沒有值?那麼你爲什麼不直接寫它? –
我試圖將minDelay屬性標籤與其他任何引用它的消息分開。國際消息必須包含其他消息。 –