Zend_Form setAttrib标题不能用Zend_Translate翻译

时间:2012-04-04 16:13:03

标签: php zend-framework zend-form zend-translate

在Zend_Form中设置title属性时,这不会被翻译。 (标签和错误被翻译得很好)

//表单文件

$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

预期结果:用户名

1 个答案:

答案 0 :(得分:1)

这是一种正常行为,没有任何问题。

setAttrib()方法不会转换其值参数,因此您需要使用Zend_Translate适配器,如下所示:

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

这可以解决您的问题。

有关详细信息,请参阅Standard I18n Targets

  

现在你已经附加了一个翻译对象,你到底能做什么   默认情况下翻译?

     
      
  • 验证错误消息。
  •   
  • 标签。
  •   
  • Fieldset Legends。
  •   
  • 表格和元素说明。
  •   
  • 多选项值。
  •   
  • 提交和按钮标签。
  •