Zend framework2 Zend framework 2翻译图像验证码消息
我有这个图像验证码,它工作正常,但我无法翻译“badCaptcha”验证错误 我用PoEdit在我的.po文件中翻译了密钥验证码值错误 这是我的验证码表单元素:Zend framework2 Zend framework 2翻译图像验证码消息,zend-framework2,translation,captcha,zend-form-element,Zend Framework2,Translation,Captcha,Zend Form Element,我有这个图像验证码,它工作正常,但我无法翻译“badCaptcha”验证错误 我用PoEdit在我的.po文件中翻译了密钥验证码值错误 这是我的验证码表单元素: $this->form->add(array( 'name' => 'captcha', 'type' => 'Zend\Form\Element\Captcha', 'options' => array( 'captcha'
$this->form->add(array(
'name' => 'captcha',
'type' => 'Zend\Form\Element\Captcha',
'options' => array(
'captcha' => new \Zend\Captcha\Image(array(
'imgDir' => './public/assets/images/captcha',
'ImgUrl' => '/assets/images/captcha',
'width' => 330,
'height' => 90,
'wordlen' => 3,
'dotNoiseLevel' => 30,
'lineNoiseLevel' => 3,
'font' => './data/captcha/font/monofont.ttf',
'fontSize' => 52,
'expiration' => 600,
)),
'messages' => array(
'badCaptcha' => $this->getTranslatorHelper()->translate('Captcha value is wrong', 'csnuser'),
),
),
));
PS:$this->getTranslatorHelper()检索MVCtrTranslator服务。ZF2已经翻译了所有表单消息zend_validate.php和captacha_validate.php已经翻译了它们 你可以在这里找到它们: 供应商\zendframework\zendframework\resources\languages\fr 将这些文件复制到应用程序langage文件夹中,并将它们调用到配置文件中
'translator' => array(
'locale' => 'fr_FR',
'translation_files' => array(
array(
'type' => 'phpArray',
'filename' => 'resources/languages/fr.php'
),
),
),
比如说
您可以同时拥有php翻译文件和po文件
编辑:
'translator' => array(
'locale' => 'fr_FR',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo', //<-%s is important
),
array(
'type' => 'phpArray',
'base_dir' => './module/Application/language/Zend_Validate/',
'pattern' => '%s-Zend_Validate.php',
),
),
),
'translator'=>数组(
'locale'=>'fr\u fr',
“翻译文件模式”=>数组(
排列(
'类型'=>'获取文本',
“基本目录”=>“基本目录”/../language”,
'模式'=>'%s.mo',//'phpArray',
'base_dir'=>'。/module/Application/language/Zend_Validate/',
'pattern'=>“%s-Zend_Validate.php”,
),
),
),
如果要处理多个lang,则必须根据lang选项加载不同的文件。%让我们看一下“语言环境”
检查是否是您的问题:)这完全是错误的……本主题中的ZF2文档至少不准确 您可以通过以下方式激活此非常基本的功能: 在您的应用程序中(是的,我使用的是Skeleton App)模块配置文件(module.config.php) 之后,您可以在module.php文件中创建Application module onBootstrap事件侦听器,如下所示:
public function onBootstrap(MvcEvent $event)
{
...
...
\Zend\Validator\AbstractValidator::setDefaultTranslator($event->getApplication()->getServiceManager()->get('MvcTranslator'));
...
...
}
这样我得到的验证码值是错误的 不重命名nescecary:
'pattern' => '%2.2s/Zend_Validate.php'
嗨,我知道这个文件,但我想知道是否有可能有一个.po文件的方式做翻译。谢谢你的建议。好吧,这很奇怪…在我的框架应用程序模块中,复制了西班牙语验证翻译文件,将其重命名为es.php,从英文文件中添加了缺少的captcha翻译密钥,然后将其翻译为西班牙语,但captcha验证错误消息保留了英文!。正在加载es.php文件,因为ZF2 translator没有抱怨找不到该文件。是的,已经尝试过,在我的翻译文件模式键中,我有一个数组,带有:“type'=>“phparray”,“base'=>dir.”//language/validation/,'pattern'=>'%s-Zend_Validate.php',但我仍然无法翻译“Captcha值错误”消息!谢谢我为此花了4个小时。
'pattern' => '%2.2s/Zend_Validate.php'