我们在顶级Web应用程序资源包中有一些自定义验证消息:
StringValidator.range=${label} must be between ${minimum} and ${maximum} characters long.
StringValidator.minimum=${label} must be at least ${minimum} characters long.
StringValidator.maximum=${label} must be at most ${maximum} characters long.
对缺少复数格式的代码的审查通知我,我们忘记了在这里正确地复制“字符”。我的第一个想法是,“也许字符永远不会是1”,但后来我意识到只有英语才有这样天真的复数规则,如果我们不解决这个问题,我们的阿拉伯语本地化可能会受到影响。
所以我去寻找它如何格式化文本并最终在FormComponent#getString
内结束 - 看起来内置的Wicket格式化错误消息毕竟不能做正确的复数。它使用的字符串插值代码实际上只能将值插入到字符串中,它没有MessageFormat
的任何内容。
所以我想知道的是 - 是否有一种优雅的方法来插入MessageFormat
以获取这些和其他验证错误消息?
我已经知道我可以重写整个StringValidator
来获取自定义消息格式,但这似乎只是为了更改一些字符串。