我从 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
正如我上面提到的那样,这样做确实将我的文本从英语翻译成德语等等。
我缺少什么来翻译我的表单错误?感谢您就这种情况提供任何指导。