i18nのプロパティ値をgrailsの他の国際化メッセージに含めることはできますか?grails i18nラベルは相互参照していますか?
"minDelay"と "maxDelay"という2つのプロパティを持つドメインクラスがあり、その両方を参照する国際化メッセージを書きたいと思います。
私は(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。 delay(ms)]の値が[Min。あなたはそれを書いていませんでしたか? –
minDelayプロパティラベルを参照する他のメッセージから分離しようとしています。他の状況でも必要になりますi18nメッセージには他のメッセージが含まれている必要があります。 –