1

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

http://framework.zend.com/manual/2.2/en/modules/zend.validator.messages.html

ZF2 对默认验证器消息使用非英语默认语言环境

所以,这是我的代码。我刚刚从 ZendSkeletonApplication 开始。

这是 Class Module 中的 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/

我的错误在哪里?

4

2 回答 2

0

我有同样的问题。

我在命名空间应用程序的 onBootstrap Module.php 方法中使用了您的代码。

虽然它在我测试的地方不起作用,但在 stackoverflow.com 上搜索相关主题,我发现这段代码使用“默认”而不是NAMESPACE作为第三个参数 $textMode。

然后,当我通过“默认”更改我的NAMESPACE常量时,发生了文件路径错误。

我不知道如何解决这个问题,我还没有找到如何去做。但是,我认为您可以使用我使用的相同解决方案,即放置资源目录的完整路径。

示例代码(默认): Zend Framework 2 - 翻译标准表单验证和错误消息

方法的文档在这里(addTranslationFile): http ://framework.zend.com/apidoc/2.2/classes/Zend.Mvc.I18n.Translator.html

于 2013-09-11T03:21:06.217 回答
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',
        ],
    ],
],
于 2015-04-13T20:51:54.777 回答