根据Zend Framework 2手册,您必须使用以下代码:
// Module.php
public function onBootstrap(MvcEvent $e)
{
$eventManager = $e->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager);
//$this->bootstrapSession($e);
date_default_timezone_set('Europe/Madrid');
$translator = new \Zend\Mvc\I18n\Translator();
$translator->addTranslationFile(
'phpArray',
'vendor/zendframework/zendframework/resources/languages/es/Zend_Validate.php',
'default',
'es_ES'
);
\Zend\Validator\AbstractValidator::setDefaultTranslator($translator);
}
翻译标准验证错误消息但在我的情况下它不起作用。
有人知道我在这里缺少什么吗?
答案 0 :(得分:0)
我忘了说我已经解决了这个问题。我做了一些更改,我的代码现在看起来像这样:
\Locale::setDefault('es_ES'); //<- this line is new
$translator = new \Zend\Mvc\I18n\Translator();
$translator->addTranslationFile(
'phpArray',
'lang/es/Zend_Validate.php',
'default',
'es_ES'
);
\Zend\Validator\AbstractValidator::setDefaultTranslator($translator);
然而翻译不起作用,因为Zend Framework提供的Zend_Validate.php(在我的西班牙语案例中为vendor / zendframework / zendframework / resources / languages / es / Zend_Validate.php)是obsolet,我不得不更改错误消息。
即。对于EmailAddress验证器类
我改变了这个:
“指定的类型无效,值应为字符串”=&gt;
到此
“给定的类型无效。字符串预期”=&gt;
因为EmailAddress类的静态变量是:
self :: INVALID =&gt; “给出了无效的类型。字符串预期”,
而不是
self :: INVALID =&gt; “给定的类型无效,值应为字符串”,