Я думаю, что вместо addError () для элемента формы (который делает именно то, что вы просили), вы хотите установить параметр «messages» для вашего валидатора.
Не уверен, что вы можете сделать это на "строительстве", но что-то вроде:
$firstname->getValidator('StringLength')->setMessages(array(
'stringLengthTooShort' => '%value% whatever message'
));
Плюс - вы, кажется, проверяете, является ли строка пустой, проверяя ее по крайней мере на 1 символ. Возможно, вы захотите переключиться на «NotEmpty» - уверен, что это будет работать:
$firstname->addValidator('NotEmpty',true, array('messages'=>'Please Provide your First Name'));