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 に答える