Представьте себе ситуацию: Вы участвуете в разработке крупного проекта, исполняя обязанности программиста.
Вам надлежит запрограммировать порядка 50-ти форм для пользователей.
Вам немного повезло – верстальщик должен Вам помочь их сверстать, но как быть с программной частью, ведь программировать формы – такая рутинная работа. Вот тут Вы и вспомните о Zend_Form.
Он значительно упрощает их программинг, позволяя программисту делать лишь свою прямую работу – программировать. В этой статье я не буду рассказывать Вам о том, как использовать Zend_Form, в мануале всё очень красиво расписано.
Я расскажу Вам о том, как заставить Zend_Form, выводить сообщения об ошибках на русском языке и предоставлю Вам уже переведённый материал. Поэтому усаживаемся поудобнее, концентрируем своё внимание на статье и поехали ;)
Проблема
По-умолчанию, Zend_Form выводит сообщения об ошибках на английском языке, нужно «научить» его выводить эти сообщения на русском.
Решение
Для решения данного вопроса я воспользуюсь стандартными методами работы с мультиязычной поддержкой в Zend Framework – Zend_Translate. Zend_Form имеет очень удобный и довольно простой механизм для работы с Zend_Translate, но об этом в мануале вспоминается как-то вскользь, поэтому я решил в полной мере осветить эту тему у себя на блоге.
Итак, для начала, нам нужно перевести все возможные сообщения об ошибках на русский язык. Покопавшись в исходниках Zend_Validate (именно эти классы проверяют форму и передают найденные ошибки), я нашел 64 сообщения об ошибках. Поработав над их переводом, у меня получился ассоциативный массив следующего содержания:
А что далее? Следующим нашим шагом будет настройка и заполнение информацией экземпляра класса Zend_Translate. Раз уж я сделал перевод в виде массива данных, то нам надо создать экземпляр класса Zend_Translate_Adapter_Array и наполнить его переведённым материалом. После этого, нам надо передать Zend_Translate форме, а дальше за Вас всё сделает Zend.
Итак, код, который иллюстрирует выше описанные действия:
Теперь Вы можете сделать тестовую форму с валидаторами и полюбоваться полученным результатом. А если грамотно продумать Ваше приложение, то Вы можете унаследовать Zend_Form и дописать к Вашим формам дополнительный код, который упростит Вам жизнь, предоставляя удобный интерфейс для реализации необходимого функционала.
Таким образом не придется делать одинаковые операции для каждой формы. Это сэкономит Ваши время и силы.
И в завершение
Переведённый материал Вы можете взять здесь. Если Вы обнаружили ошибку или какую-то неточность в переводе – сообщите мне, пожалуйста, в комментариях к статье.




