Zend-Framework -Forms and Translation

时间:2012-08-14 14:23:04

标签: php zend-framework zend-form zend-translate

嗨我有一个表单元素错误,当我将它包装在翻译函数中时它会不断破坏它。我正在使用gettext进行翻译。

据我所知,如果我在注册表和Zend_Form中设置它,它应该自动选择它,但是poedit如何看待它呢?

My Bootstrap(相关部分):

    // Set the instance of Zend_Translate in the registry
    $registry->set('Zend_Translate', $translate);
    // Set an instance of Zend Translate object for validators
    Zend_Form::setDefaultTranslator($translate);

我的错误表单:

public function formErrors(Zend_Form $form)
{       
        $registry = Zend_Registry::getInstance();
        $translate = $registry->get('Zend_Translate');
        $form->setTranslator($translate);

    if ($form->getMessages()) {
        $error = '<p class="errorBox">Error text here</p>';
        $error->setTranslator($translate);
        $error->getView()->translate($error);
        return $error;
    }
    return '';
}

注意:

 $this->translate('string to translate'); or $this->getView()->translate('string'); 

在其他地方工作但不在这里

1 个答案:

答案 0 :(得分:1)

我在上一个项目中使用的表单中的用法是

$this->getTranslator()->translate('text to translate')

由于我们有自动检测资源路径所以只使用了很少,所以我们不需要调用它。您想要使用它的方式确实略有不同。我建议在getView()之后添加额外的调用,因为它可能是解决方案。