Запретить Zend переводить сообщение подтверждения

У меня есть собственный валидатор Zend. Этот валидатор запустит внешнюю программу, которая вернет сообщение об ошибке в формате printf вместе с массивом аргументов.

У меня есть шаблон сообщения для сообщений из этой внешней программы:

const MSG_IMPORTER_ERROR = 'importerError';

В моей isValid-функции в моем собственном валидаторе я делаю следующее:

// $err contains the error from the external program
$this->setMessage(
    vsprintf($v->translate($err['template']), $err['args']),
    self::MSG_IMPORTER_ERROR
);
$this->_error(self::MSG_IMPORTER_ERROR);
return false;

Поскольку Zend запускает сообщение через перевод, я снова переведу уже переведенный текст. Я хочу избежать этого. Итак, мой вопрос:

Как отключить перевод сообщения проверки?


person ANisus    schedule 14.09.2012    source источник


Ответы (1)


Нашел ответ. Перевод валидатора просто деактивируется добавлением приведенного ниже кода внутрь валидатора при настройке сообщения на предварительно переведенное сообщение:

$this->setDisableTranslator(true);

Глупо, что я пропустил это.

person ANisus    schedule 14.09.2012