Zend Framework 2 formLabel翻译

时间:2014-02-07 09:03:04

标签: php zend-framework2 zend-form

我正在使用Zend Framework 2开发一个项目。现在我在尝试翻译视图中的表单标签时遇到了问题。一般来说,通过MvcTranslator进行的翻译适用于使用$ this-> translate('foo')的每个元素。但是现在关闭,表格标签就像他们定义的那样。

这是我的设置atm(shortend):

module / App / config / module.config.php(Config)

'service_manager'                   => array(
    'aliases'                       => array(
        'translator'                => 'MvcTranslator',
    ),
),
'translator'                        => array(
    'locale'                        => 'en_US',
    'translation_file_patterns'     => array(
        array(
            'type'                  => 'gettext',
            'base_dir'              => __DIR__ . '/../language',
            'pattern'               => '%s.mo',
            'text_domain'           => __NAMESPACE__,
        ),
    ),
),

module / App / Foo / Form / BarForm.php(表格)

     $this->add(array(
        'name' => 'bar',
        'attributes' => array(
            'type'  => 'text',
        ),
        'options' => array(
            'label' => 'Bar',
        ),
    ));

module / App / Foo / view / foo / index / index.phtml(View)

echo $this->form()->openTag($form);
echo $this->formLabel($form->get('bar'));
echo $this->form()->closeTag();

我使用Poedit手动将“bar”的翻译添加到我的语言文件中,但标签不会被翻译。

===到目前为止我尝试了什么===

除了确保所有内容都以正确的方式设置外,我还尝试了以下方法:

如果我使用

$this->translate('Bar')

在我的视图脚本中,该值将被翻译,但有任何问题。

我尝试使用

为formLabel设置TextDomain
$this->formLabel()->setTranslatorTextDomain(__NAMESPACE__);

不会改变任何东西。

我检查过翻译器是否在视图中可用,并且确实如此。作为旁注,我也在使用Zend \ Navigation,所有元素都将使用

进行翻译
$this->navigation('navigation')->setTranslatorTextDomain(__NAMESPACE__);

我错过了什么吗?我真的坚持这个,并会感谢任何建议。此外,如果您需要更多代码或有其他问题,请告诉我:)

谢谢

0 个答案:

没有答案