2012-04-04 114 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