zf2 - 预翻译的验证消息对我不起作用

时间:2013-08-13 14:37:12

标签: forms validation zend-framework2 message

我已经阅读并研究了这些链接而没有结果:

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 /

我的错误在哪里?

2 个答案:

答案 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',
        ],
    ],
],