我已经阅读并研究了这些链接而没有结果:
http://framework.zend.com/manual/2.2/en/modules/zend.validator.messages.html
ZF2 Use non-en default locale for default Validator messages
所以,这是我的代码。我刚刚从ZendSkeletonApplication开始。
这是类模块中的onBootstrap():
public function onBootstrap(MvcEvent $e)
{
$eventManager = $e->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager);
\Locale ::setDefault('fr_FR');
$translator = new \Zend\Mvc\I18n\Translator();
$translator->addTranslationFile(
'phpArray',
'resources/languages/fr/Zend_Validate.php',
__NAMESPACE__,
'fr_FR'
);
\Zend\Validator\AbstractValidator::setDefaultTranslator($translator);
}
这是module.config.php的一部分:
'service_manager' => array(
'abstract_factories' => array(
'Zend\Cache\Service\StorageCacheAbstractServiceFactory',
'Zend\Log\LoggerAbstractServiceFactory',
),
'aliases' => array(
'translator' => 'MvcTranslator',
),
),
'translator' => array(
'locale' => 'fr_FR',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo',
),
),
),
所有验证信息都是英文的! Zend_Validate.php在vendor / zendframework / zendframework / resources / languages / fr /
中我的错误在哪里?
答案 0 :(得分:0)
我遇到了同样的问题。
我在命名空间Application的onBootstrap Module.php方法中使用了你的代码。
虽然它在我测试的地方不起作用,在这里搜索相关主题,在stack overflow.com,我发现这个代码使用'default'而不是 NAMESPACE 作为第三个参数$文本模式
然后,当我将 NAMESPACE 常量更改为'default'时,发生了文件的路径错误。
我不知道如何解决这个问题,但我还没有找到解决办法。但是,我认为您可以使用我使用的相同解决方案,即放置资源目录的完整路径。
示例代码(默认): Zend Framework 2 - Translate Standard Form Validation and Error messages
这里的方法文档(addTranslationFile): http://framework.zend.com/apidoc/2.2/classes/Zend.Mvc.I18n.Translator.html
答案 1 :(得分:0)
加入 module.config.php
'translator' => [
'locale' => 'fr_FR',
'translation_file_patterns' => [
[
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo',
], [
'type' => 'phpArray',
'base_dir' => './vendor/zendframework/zendframework/resources/languages',
'pattern' => '%.2s/Zend_Validate.php',
],
],
],