2

在 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

预期结果:用户名

4

1 回答 1

1

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

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

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

这应该可以解决您的问题。

有关详细信息,请参阅标准 I18n 目标

现在您已经附加了一个翻译对象,默认情况下您可以翻译什么?

  • 验证错误消息。
  • 标签。
  • 字段集图例。
  • 表单和元素描述。
  • 多选项值。
  • 提交和按钮标签。
于 2012-04-04T16:57:36.347 回答