我正在使用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__);
我错过了什么吗?我真的坚持这个,并会感谢任何建议。此外,如果您需要更多代码或有其他问题,请告诉我:)
谢谢