有什么办法可以在动作文件中使用format_number_choice
函数。实际上我需要将它用于Form错误消息。
'max_size' => 'File is too large (maximum is %max_size% bytes).',
在英语中,它只是“字节”,但在其他语言中,语法在某个值之后发生变化(例如,如果数字大于20,则为:“20 bytes”)。
当然,我可以使用括号,但如果框架为执行此特定操作提供支持,为什么不使用它?!
答案 0 :(得分:0)
当前在1.4分支中实现的方式,您可以使用il18n XML文件为每条消息定义一个翻译。
您可以做的是创建一个自定义验证程序,它继承当前验证程序(在您的示例中为sfValidatorFile
),并在调用其父程序之前在doClean
方法中进行大小检查。
我建议您查看来源,了解其工作原理:sfValidatorFile
答案 1 :(得分:0)
处理翻译号码范围的正确方法是explained here in the Definitive Guide。我不会在这里重现它,因为文档本身清晰简洁。但请注意,i18n-extract任务不会自动提取字符串,因此您需要手动添加它 - 再次,文档解释了这一点。
是的,您可以在操作中使用format_number_choice()
函数 - 您只需要在操作中加载帮助程序,如下所示:
sfContext::getInstance()->getConfiguration()->loadHelpers('I18N');