我有这样的自定义消息:
'options' => array(
'min' => $min,
'max' => $date->format('Y-m-d'),
'inclusive' => true,
'messages' => array(
Between::NOT_BETWEEN => "The input is not between '%min%' and '%max%', inclusively",
),
),
我将此字符串放在.po
文件中并生成.mo
,但邮件无法翻译。对于没有变量的所有其他消息,它可以正常工作。
答案 0 :(得分:0)
如果你给出了更多解释,那就太好了。 通常如果string包含变量,则必须用字符串格式化程序替换它们。
在你的情况下,msgid"输入不在%s和%s&#34之间;
我希望它能解决你的问题。
答案 1 :(得分:0)
您可以阅读in the ZF2 official documentation了解如何执行此操作。
验证程序的翻译文件位于/resources/languages
。您只需使用这些资源文件将翻译器附加到Zend\Validator\AbstractValidator
,或者在您的情况下使用您自己的文件附加自定义消息。
$validator->setDefaultTranslator($translator);
我误解了你的问题,这里是一个编辑
在绑定变量之前,你不能翻译消息:
$translator = ...translator...
'options' => array(
'min' => $min,
'max' => $date->format('Y-m-d'),
'inclusive' => true,
'messages' => array(
Between::NOT_BETWEEN => $translator->translate(
"The input is not between '%min%' and '%max%', inclusively"
),
),
),