ZF-5086: Zend_Form_Element_File && Zend_Validate_File_*

Description

Валидаторы Zend_Validate_File_*, не переводятся на другие языки, если их загружать в элемент формы Zend_Form_Element_File.

Validators Zend_Validate_File_* are not translates into other languages if I load them into Zend_Form_Element_File. Sorry for my bad English;)

Here is my code: // It is a part of code $data = array ( Zend_Validate_File_Upload::INI_SIZE => "Файл '%value%' превышает заданый размер", Zend_Validate_File_Upload::FORM_SIZE => "Файл '%value%' превышает заданый лимит размера файла", Zend_Validate_File_Upload::PARTIAL => "Файл '%value%' был загружен частично", Zend_Validate_File_Upload::NO_FILE => "Файл '%value%' не был загружен", Zend_Validate_File_Upload::NO_TMP_DIR => "Не было найдено временной директории для файла '%value%'", Zend_Validate_File_Upload::CANT_WRITE => "Файл '%value%' не может быть записан", Zend_Validate_File_Upload::EXTENSION => "Дополнение вернуло ошибку, переслав файл '%value%'", Zend_Validate_File_Upload::ATTACK => "Файл '%value%' был загружен неразрешенным методом", Zend_Validate_File_Upload::FILE_NOT_FOUND => "Файл '%value%' не был найден", Zend_Validate_File_Upload::UNKNOWN => "Возникла неизвестная ошибка при загрузке файла '%value%'", Zend_Validate_File_Size::TOO_BIG => "Файл '%value%' имеет слишком большой размер", Zend_Validate_File_Size::TOO_SMALL => "Файл '%value%' слишком маленького размера", Zend_Validate_File_Size::NOT_FOUND => "Файл '%value%' не найден", Zend_Validate_File_ImageSize::WIDTH_TOO_BIG => "Ширина загруженного файла '%value%' слишком большая", Zend_Validate_File_ImageSize::WIDTH_TOO_SMALL => "Ширина загруженного файла '%value%' слишком маленькая", Zend_Validate_File_ImageSize::HEIGHT_TOO_BIG => "Высота загруженного файла '%value%' слишком большая", Zend_Validate_File_ImageSize::HEIGHT_TOO_SMALL => "Высота загруженного файла '%value%' слишком маленькая", Zend_Validate_File_ImageSize::NOT_DETECTED => "Размеры загруженного файла '%value%' определить невозможно", Zend_Validate_File_ImageSize::NOT_READABLE => "Рисунок '%value%' невозможно считать", Zend_Validate_File_FilesSize::TOO_BIG => "Размеры загруженных файлов в сумме имеют размер больше разрешенного", Zend_Validate_File_FilesSize::TOO_SMALL => "Размеры загруженных файлов в сумме имеют слишком маленький объем", Zend_Validate_File_FilesSize::NOT_READABLE => "Один или несколько файлов неудается считать", Zend_Validate_File_Count::TOO_MUCH => "Слишк������м много файлов загружено, разрешено только '%value%'", Zend_Validate_File_Count::TOO_LESS => "Слишком мало файлов загружено, минимальное допустимое число файлов '%value%'", Zend_Validate_File_Extension::FALSE_EXTENSION => "Загруженый файл '%value%' имеет неразрешенное расширение", Zend_Validate_File_Extension::NOT_FOUND => "Файл '%value%' не найден" );

$form = new Zend_Form; $form->setMethod(Fooup_Form::METHOD_POST)->setAttrib('enctype','multipart/form-data'); $form->setTranslator(new Zend_Translate_Adapter_Array($data)); $image = $form->createElement( 'image', 'image', array( 'label'=>'Ваш текущий логотип: ' ) ); $logo = $form->createElement( 'file', 'logo', array( 'required'=>true, 'label'=>'Загрузить новый логотип: ' ) ); $logo->addValidator('Count', false, array(1))->addValidator('Size', false, array(20480))->addValidator('Extension', false, array('jpg')); $logo->getTransferAdapter()->setTranslator($form->getTranslator()); $submit = $form->createElement( 'submit', 'submit', array( 'required'=>true, 'label'=>'Сохранить' )); $form->addElements(array($image,$logo,$submit));

And now error messages outputs into English language, but not in Russian as other form elements.

I'm sorry, it is my mistake. I HAVE CORRECTED MY CODE......

P.S. Why I can't write a comments?

Comments

As with all elements you have to use "setTranslator". Otherwise the validator messages will not be translated.

According to manual setTranslator has to be used. Unittests show no problem.

Feel free to give us code for reproduction.

It's impossible for your code to work. setTranslator is not assigned to the form and not to the validators.