1

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

我知道如果我在注册表和 Zend_Form 中设置了它,它应该会自动拾取它,但是 poedit 是如何看到它的呢?

我的引导程序(相关部分):

    // 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'); 

在其他任何地方都可以工作,但在这里不行

4

1 回答 1

1

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

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

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

于 2012-08-14T14:39:10.913 回答