小编Eri*_*aan的帖子

ZF2.3翻译验证消息

我试图将验证消息翻译成另一种语言.我正在使用ZF 2.3和骨架应用程序.

我配置了翻译器:

'translator' => array(
    'locale' => 'nl_NL',
    'translation_file_patterns' => array(
        array(
            'type'     => 'gettext',
            'base_dir' => __DIR__ . '/../language',
            'pattern'  => '%s.mo',
        ),
        array(
            'type'     => 'phpArray',
            'base_dir' => __DIR__ . '/../data/language',
            'pattern'  => '%s.php',
        ),
    ),
),
Run Code Online (Sandbox Code Playgroud)

但是我的视图文件中没有翻译以下字符串(并确保此字符串包含在我的语言文件中):

echo $this->translate('Invalid type given. String, integer or float expected');
Run Code Online (Sandbox Code Playgroud)

此外,来自验证器的消息仍然是默认/未翻译.

我到处寻找解决方案,但似乎翻译已经在ZF 2.3中进行了重构,我找到的所有解决方案都适用于旧版本.

以下文档页面应提供解决方案:http: //framework.zend.com/manual/2.3/en/modules/zend.validator.messages.html

但是"使用预翻译验证消息"下的代码无效:

$translator = new Zend\Mvc\I18n\Translator();
$translator->addTranslationFile(
    'phpArray',
    'resources/languages/en.php',
    'default',
    'en_US'
);

Zend\Validator\AbstractValidator::setDefaultTranslator($translator);
Run Code Online (Sandbox Code Playgroud)

这将导致致命错误:

Catchable fatal error: Argument 1 passed to Zend\Mvc\I18n\Translator::__construct() must implement …
Run Code Online (Sandbox Code Playgroud)

php zend-framework2

6
推荐指数
1
解决办法
5475
查看次数

标签 统计

php ×1

zend-framework2 ×1