Zend 2 - 为所有视图设置翻译文本域

时间:2013-09-03 14:30:21

标签: internationalization zend-framework2 zend-form

在所有视图中,有没有办法为所有表单元素设置翻译文本域? 例如,为了翻译我的表单标签,我需要设置第一个文本域:$this->formLabel()->setTranslatorTextDomain('mytextdomain'); 我需要在每个视图中添加此代码来翻译表单标签。

所以我尝试为所有视图设置文本域:

public function getViewHelperConfig()
{
    return array(
        // Change the View Helper Text Domain for ALL modules
        'initializers' => array(
            'injectTranslatorTextDomain' => function($helper) {
                if ($helper instanceof TranslatorAwareInterface) {
                    $helper->setTranslatorTextDomain('mytextdomain');
                }
            },
        ),
    );
}

它可以工作,但它会重写AbstractValidator消息(在我注入翻译文本域后,默认验证消息不会被翻译)。

1 个答案:

答案 0 :(得分:1)

这个问题的解决方案是为验证器和视图助手添加相同的“textdomain”。此外,“default”可用于两者。