2012-08-14 93 views
1

嗨我有一個表單元素錯誤,並且當我將它包裝在翻譯函數中時它會一直打破它。我正在使用gettext進行翻譯。Zend-Framework -Forms和翻譯

據我所知,如果我已經在註冊表中設置了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'); 

作品在其他地方,但不是在這裏

回答

1

用法在我的一種形式之內sed中的最後一個項目是

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

這是僅用於minorly,因爲我們有自動檢測資源的路徑,所以我們並不需要調用它。你想使用它的方式確實有些不同。我建議在getView()之後添加額外的調用,因爲它可能是解決方案。