Превеждане на validation messages чрез Zend Translate
В това видео ще ви покажа най-новия метод за превод на грешки в Zend Form.

Разбира се това са унифицирани грешки, дори преведени на български, така че ще се налага понякога да ползвате setMessage за да специфицирате определена грешка.
Коментирай
 
Потребител : *
Сайт (URL) :
Коментар : *
Въведи текста : *
  _____    __   __  __    __    ______   _    _   
 / ____||  \ \\/ // \ \\ / //  /_   _// | |  | || 
/ //---`'   \ ` //   \ \/ //    -| ||-  | |/\| || 
\ \\___      | ||     \  //     _| ||_  |  /\  || 
 \_____||    |_||      \//     /_____// |_// \_|| 
  `----`     `-`'       `      `-----`  `-`   `-` 
                                                  
 
преди 11 месеца
Добре разбрах какъв е проблема:)

Пробвай да добавиш това в файла в който са преводите.

'Captcha value is wrong' => 'грешка голяма'

Ако нямаш такъв файл сложи си понеже е по удобно понеже в доста случай грешките са еднакви на различните места.

Може да си добавяш така всяка грешка която липсва в файла. Примерно тези липсват наистина. Може да си ги добавиш както съм показал по нагоре.

protected $_messageTemplates = array(
self::MISSING_VALUE => 'Empty captcha value',
self::MISSING_ID => 'Captcha ID field is missing',
self::BAD_CAPTCHA => 'Captcha value is wrong',
);
преди 11 месеца
Ами не помня видеото точно, но може да сложиш в някои плъгин $translator = new Zend_Translate(
'array',
APPLICATION_PATH . '/configs/validate',
'bg',
array('scan' => Zend_Translate::LOCALE_DIRECTORY)
);
Zend_Validate_Abstract::setDefaultTranslator($translator);

Като в application/config/validate/ - слагаш файла в който си транслираш сам както намериш за добре грешките.

Примерен файове на много езици има в главната папка на Zend->resources->languages->en или ru. Говоря за проекта които сваляш от страницата на Zend.
Там от едната страна е на английски, от другата на езика който избереш. Ако там смениш от дясната страна превода с български примерно ще има транслирани всички грешки за всеки проект който правиш. Като шаблон.
Там би трябвало да има и за captcha.

Ако пишеш формата в html вариант и ползваш само имената на полетата заради валидизацията на Zend_Form то може да ползваш и следното:
<?php if($this->captcha->getMessages()): ?>
<?php foreach($this->captcha->getMessages() as $key => $value): ?>
<ul class="errors"><li><?php echo $value; ?></li></ul>
<?php endforeach; ?>
<?php endif; ?>

Тоест начини много.

Разбира се може да направиш "грешно име" и т.н. Посредством къстъм валидатор или ->addValidator(new Zend_Validate_Db_NoRecordExists(array('table' => 'users','field' => 'username')))

Което ако юзера съществува ще върне грешка и името.
vbogoev
преди 11 месеца
Здравей,

да питам как се транслират грешки от кепчи, защото нямат валидатори те, и си излиза директно на английски.
Ако пък му задам някакво съобщение с setMessage ми го изкарва 2 пъти на екрана... (error errorSeparator error)

И има ли начин за даден инпут да изведе определено име, например при инпут име да изведе - грешно име, а при инпут фамилия - грешна фамилия etc.
Предложи тема
Предложение от : *
Тема : *
Описание : *