2012-04-04 1 views
2

При настройке атрибута title в Zend_Form это не переводится. (Лейбл & ошибки переводятся штраф)Zend_Form setAttrib title не переводится с 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

Я не помню, что атрибут setter действительно переводил. Похоже, ваше ожидание ошибочно. Вместо этого установите переведенное значение. – hakre

ответ

1

Это нормальное поведение, в этом нет ничего плохого.

setAttrib() метод не переводит его параметр значение, так что вам нужно использовать Zend_Translate адаптер следующим образом:

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

Это должно исправить вашу проблему.

Для получения дополнительной информации см. Standard I18n Targets.

Теперь, когда вы прикрепили объект перевода, что именно вы можете сделать перевести по умолчанию?

  • Сообщения об ошибках проверки.
  • Этикетки.
  • Полевые легенды.
  • Форма и элементы описания.
  • Многофункциональные значения.
  • Отправить и кнопки этикетки.
+0

Спасибо, отлично работал :). Я не видел этого в документации? –