2012-04-04 110 views
2

在Zend_Form中設置標題屬性時,這不會被翻譯。 (標籤&錯誤被罰款翻譯)Zend_Form setAttrib標題不能用Zend_Translate翻譯

//表單文件

$email = new Zend_Form_Element_Text('username'); 
$email->setLabel('auth.form.login.username') 
     ->setRequired(true) 
     ->addFilter('StripTags') 
     ->addFilter('StringTrim') 
     ->addFilter('StringToLower') 
     ->addValidator('NotEmpty') 
     ->setAttrib('title', 'auth.form.login.username'); 

//資源文件

... 
<tu tuid='auth.form.login.username'> 
    <tuv xml:lang="en"><seg>Username</seg></tuv> 
</tu> 
... 

當前的結果:auth.form.login.username

預期結果:用戶名

+0

我不記得屬性設置器是否做了翻譯。看起來你的期望是錯誤的。而是設置翻譯後的值。 – hakre 2012-04-04 16:15:37

回答

1

這是一個正常的行爲,沒有錯。

setAttrib()方法,所以你需要使用一個Zend_Translate適配器如下不翻譯它的價值參數,:

$email->setAttrib('title', $this->getTranslator()->translate('auth.form.login.username'))

這應該可以解決您的問題。

請參閱Standard I18n Targets瞭解更多信息。

既然您已經附加了一個翻譯對象,那麼默認情況下,您究竟可以翻譯哪些內容?

  • 驗證錯誤消息。
  • 標籤。
  • Fieldset Legends。
  • 表格和元素描述。
  • 多選項值。
  • 提交和按鈕標籤。
+0

謝謝,完美的工作:)。我沒有在文檔中看到這個? – 2012-04-04 17:07:51