在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
预期结果:用户名
答案 0 :(得分:1)
这是一种正常行为,没有任何问题。
setAttrib()
方法不会转换其值参数,因此您需要使用Zend_Translate适配器,如下所示:
$email->setAttrib('title', $this->getTranslator()->translate('auth.form.login.username'))
这可以解决您的问题。
有关详细信息,请参阅Standard I18n Targets。
现在你已经附加了一个翻译对象,你到底能做什么 默认情况下翻译?
- 验证错误消息。
- 标签。
- Fieldset Legends。
- 表格和元素说明。
- 多选项值。
- 提交和按钮标签。