翻译表单错误消息



我从alpha开始就一直在使用ZF2,所以我并不是一个全新的人。然而,为了不打扰我目前的项目,我设置了一个新的SkeletonApp,它正在工作。我已经添加了我需要的英语和德语翻译,它们正在按预期工作。但是,表单错误消息没有被翻译成德语或任何其他语言。

我已经阅读了手册,但它只涵盖了如何基于工厂设置翻译,而没有关于如何在module.config.php内部设置的详细信息。就像在ZF1中一样,ZF2也有一个资源/语言文件夹,其中包含所有已经翻译的表单验证错误消息。我想用那些!这就是我的问题所在。我不知道如何添加配置,使其适用于我的所有表单。

在我基于SkeletonApp的module.config.php文件中,它已经支持翻译,所以我采用了该配置并添加了另一个数组,假设这会起作用。

'translator' => array( 
'locale' => 'en_US', 
'translation_file_patterns' => array( 
array( 
'type'        => 'gettext', 
'base_dir'    => __DIR__ . '/../language', 
'pattern'     => '%s.mo' 
), 
array( 
'type'        => 'phparray', 
'base_dir'    => __DIR__ . '/../resources/languages', 
'pattern'     => '%s.php' 
) 
) 
), 

然而,这并没有起到任何作用。在我的控制器中,我有一个eventManager,我在这里设置我的区域设置如下:

$self->getServiceLocator()->get('translator')->setLocale('en_US');//更改为德国的de_de

如上所述,这样做确实可以将我的文本从英语翻译成德语等等

我缺少什么来翻译我的表单错误?感谢您对这种情况的指导。

两个源使用相同的文本域,gettext源具有更高的优先级。这意味着它将从gettext源加载您的区域设置,然后停止,因为区域设置+文本域组合已经加载。

解决方案:对每个源使用不同的文本域。

最新更新