1

我很难在 Zend 2 中为错误消息(尝试提交无效表单时显示)设置默认语言。我已经从快速入门教程下载了代码,并将以下行添加到 ..module\Album\config\模块.config.php:

 //[...]
'translator' => array(
     'locale' => 'de_DE',
     'translation_patterns' => array(
        array(
            'type' => 'gettext',
            'base_dir' => __DIR__ . '/../language',
            'pattern' => '%s.mo',
        ),
    ),
),

    $translator = $this->getServiceLocator()->get('translator');
    $translator->setLocale('de_DE');

在我的控制器中。两者似乎都不起作用。在...\vendor\zendframework\zendframework\resources\languages 中有一些翻译。我没有安装 Intl PHP 扩展,但我非常希望在没有这个扩展的情况下翻译也能正常工作。

谢谢你的帮助,

安德烈亚斯

4

1 回答 1

1

经过一番研究,似乎确实需要 Intl PHP Extension。使用 Intl Extension,您可以将默认 Translator 设置为抽象验证器。从文档

$translator = new Zend\I18n\Translator\Translator();
$translator->addTranslationFile(
   'phpArray',
   'resources/languages/en.php',
   'default',
   'en_US'
);
Zend\Validator\AbstractValidator::setDefaultTranslator($translator);
于 2013-01-16T21:32:22.820 回答