ZF2对默认的Validator消息使用非en默认语言环境

时间:2013-08-09 15:38:31

标签: zend-framework2

我正在与ZF2抗争,强制为任何传入的浏览器语言环境转换一个特定的验证消息。 所以我只想让ZF2始终使用它自己提供的错误消息的翻译到俄语,这个文件: \vendor\zendframework\zendframework\resources\languages\ru\Zend_Validate.php

我已尝试创建转换程序并将其设置为默认值onBootstrap

$translator = new \Zend\Mvc\I18n\Translator();
$translator->addTranslationFile(
    'phpArray',
    'vendor/zendframework/zendframework/resources/languages/ru/Zend_Validate.php',
    'default',
    'ru_RU'
);
AbstractValidator::setDefaultTranslator($translator);

正如本主题所示 - Zend Framework 2 - Translate Standard Form Validation and Error messages但没有效果!

我尝试在模块配置中强制使用相同的无效结果:

'translator' => array(
    'locale' => 'ru_RU'
),

我不确定,翻译文件网址可能有问题吗?因为当我尝试Z-Dumb翻译时,它声称有0个消息注册了1个文件。

无论如何,强制默认验证器翻译的最简单方法是什么,总是俄语?

非常感谢!

1 个答案:

答案 0 :(得分:1)

您提到的路径为\resources\languages\ru\Zend_Validate.php,但配置中的路径为\resources\languages\Zend_Validate.php。注意文件夹ru的区别。

我希望这已经产生了很大的不同。如果没有,你可以尝试强制添加在onBootstrap()中的语言环境:

Locale::setDefault('ru_RU');